evm-tokenvote

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit d1e667118b1cc33fa97afe41222f8c872227db4f
parent 11d2beb2dd6dec99e6242b54744926cf1d861f98
Author: lash <dev@holbrook.no>
Date:   Sat,  6 May 2023 23:59:07 +0100

Correct proposal index in event

Diffstat:
Mpython/evm_tokenvote/data/Voter.bin | 4++--
Mpython/evm_tokenvote/data/Voter.metadata.json | 2+-
Mpython/requirements.txt | 2+-
Mpython/test_requirements.txt | 2+-
Msolidity/Voter.sol | 2+-
5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/python/evm_tokenvote/data/Voter.bin b/python/evm_tokenvote/data/Voter.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b506040516200352e3803806200352e8339818101604052810190620000379190620003da565b6200004162000217565b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001819080600181540180825580915050600190039060005260206000209060070201600090919091909150600082015181600001556020820151816001019080519060200190620001169291906200028e565b50604082015181600201908051906020019062000135929190620002e0565b50606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548162ffffff021916908362ffffff16021790555060e08201518160060160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160176101000a81548160ff021916908360ff1602179055506101208201518160060160186101000a81548160ff021916908360ff1602179055505050600160038190555050505062000421565b604051806101400160405280600080191681526020016060815260200160608152602001600081526020016000815260200160008152602001600062ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060ff168152602001600060ff1681525090565b828054828255906000526020600020908101928215620002cd579160200282015b82811115620002cc578251825591602001919060010190620002af565b5b509050620002dc919062000332565b5090565b8280548282559060005260206000209081019282156200031f579160200282015b828111156200031e57825182559160200191906001019062000301565b5b5090506200032e919062000351565b5090565b5b808211156200034d57600081600090555060010162000333565b5090565b5b808211156200036c57600081600090555060010162000352565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003a28262000375565b9050919050565b620003b48162000395565b8114620003c057600080fd5b50565b600081519050620003d481620003a9565b92915050565b60008060408385031215620003f457620003f362000370565b5b60006200040485828601620003c3565b92505060206200041785828601620003c3565b9150509250929050565b6130fd80620004316000396000f3fe608060405234801561001057600080fd5b5060043610610107576000357c01000000000000000000000000000000000000000000000000000000009004806384385191116100a9578063ba32941411610083578063ba329414146102b6578063c7f758a8146102e6578063e99a943e14610316578063fc0c546a1461034657610107565b806384385191146102265780638bb5221314610256578063b05c65ba1461028657610107565b806341ec6870116100e557806341ec68701461018a5780634bb278f3146101a8578063509bd337146101c657806370a08231146101f657610107565b80630121b93f1461010c5780631ce309271461013c5780633ccfd60b1461016c575b600080fd5b61012660048036038101906101219190611f14565b610364565b6040516101339190611f5c565b60405180910390f35b61015660048036038101906101519190611f77565b610378565b6040516101639190611fd0565b60405180910390f35b6101746103d4565b6040516101819190611ffa565b60405180910390f35b61019261075d565b60405161019f91906122ed565b60405180910390f35b6101b0610985565b6040516101bd9190611f5c565b60405180910390f35b6101e060048036038101906101db9190611f77565b610b52565b6040516101ed9190611f5c565b60405180910390f35b610210600480360381019061020b919061233b565b61102e565b60405161021d9190611ffa565b60405180910390f35b610240600480360381019061023b9190611f14565b611046565b60405161024d9190611ffa565b60405180910390f35b610270600480360381019061026b9190612394565b611088565b60405161027d9190611f5c565b60405180910390f35b6102a0600480360381019061029b9190612585565b61133d565b6040516102ad9190611ffa565b60405180910390f35b6102d060048036038101906102cb9190611f77565b61162b565b6040516102dd9190611ffa565b60405180910390f35b61030060048036038101906102fb9190611f14565b6116e7565b60405161030d91906122ed565b60405180910390f35b610330600480360381019061032b9190612608565b6118ba565b60405161033d9190611ffa565b60405180910390f35b61034e6118d4565b60405161035b919061266a565b60405180910390f35b6000610371600083610b52565b9050919050565b6000806001808561038991906126b4565b8154811061039a576103996126e8565b5b906000526020600020906007020190508060010183815481106103c0576103bf6126e8565b5b906000526020600020015491505092915050565b600080600060606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036105145760016003548154811061047d5761047c6126e8565b5b90600052602060002090600702019350438460050154116104f757600060028560060160179054906101000a900460ff161660ff16116104f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e990612774565b60405180910390fd5b610513565b8084600401600082825461050b9190612794565b925050819055505b5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1633826040516024016105e89291906127c8565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516106729190612862565b6000604051808303816000865af19150503d80600081146106af576040519150601f19603f3d011682016040523d82523d6000602084013e6106b4565b606091505b508093508194505050826106fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f4906128c5565b60405180910390fd5b818060200190518101906107119190612911565b925082610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074a9061298a565b60405180910390fd5b8094505050505090565b610765611d7f565b600060016003548154811061077d5761077c6126e8565b5b90600052602060002090600702019050600060018260060160179054906101000a900460ff161660ff16116107e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107de906129f6565b60405180910390fd5b8060405180610140016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561084d57602002820191906000526020600020905b815481526020019060010190808311610839575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156108a557602002820191906000526020600020905b815481526020019060010190808311610891575b505050505081526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900462ffffff1662ffffff1662ffffff1681526020016006820160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160179054906101000a900460ff1660ff1660ff1681526020016006820160189054906101000a900460ff1660ff1660ff168152505091505090565b60008060006001600354815481106109a05761099f6126e8565b5b90600052602060002090600702019150600060028360060160179054906101000a900460ff161660ff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0190612a62565b60405180910390fd5b600060048360060160179054906101000a900460ff161660ff1611610a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5b90612ace565b60405180910390fd5b6000610a6f836118f8565b03610a7f57600092505050610b4f565b60028260060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff160217905550600160036000828254610ac291906126b4565b92505081905550620f42408260040154610adc9190612aee565b90508160060160009054906101000a900462ffffff1662ffffff16826003015482610b079190612b5f565b1015610b485760088260060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff160217905550600092505050610b4f565b6001925050505b90565b60008060006060610b6233611b63565b600160035481548110610b7857610b776126e8565b5b90600052602060002090600702019250600060018460060160179054906101000a900460ff161660ff1611610be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd990612bdc565b60405180910390fd5b6000610bed846118f8565b03610bfe5760009350505050611028565b43836005015411610c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3b90612c48565b60405180910390fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610d1057600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690612cb4565b60405180910390fd5b5b600083600101805490501115610d6a5782600101805490508610610d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6090612d20565b60405180910390fd5b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16333087604051602401610db693929190612d9f565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e409190612862565b6000604051808303816000865af19150503d8060008114610e7d576040519150601f19603f3d011682016040523d82523d6000602084013e610e82565b606091505b50809250819350505081610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec2906128c5565b60405180910390fd5b80806020019051810190610edf9190612911565b915081610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f189061298a565b60405180910390fd5b600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fb691906126b4565b9250508190555084836004016000828254610fd191906126b4565b925050819055506000836001018054905011156110205784836002018781548110610fff57610ffe6126e8565b5b90600052602060002001600082825461101891906126b4565b925050819055505b600193505050505b92915050565b60046020528060005260406000206000915090505481565b6000806001808461105791906126b4565b81548110611068576110676126e8565b5b906000526020600020906007020190508060010180549050915050919050565b6000806000806000806000806001808b6110a291906126b4565b815481106110b3576110b26126e8565b5b90600052602060002090600702019650438760050154111561110a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110190612774565b60405180910390fd5b600060048860060160179054906101000a900460ff161660ff16111561113a576000975050505050505050611337565b60008760010180549050036111895760048760060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff1602179055506001975050505050505050611337565b8660060160189054906101000a900460ff169150866001018054905089836111b19190612dd6565b60ff1611156111d0578187600101805490506111cd9190612e0b565b98505b81896111dc9190612dd6565b98508660060160179054906101000a900460ff1690508195505b8860ff168660ff16101561128557866002018660ff168154811061121d5761121c6126e8565b5b9060005260206000200154925060008311801561123957508383145b1561124957601081179050611263565b83831115611262578293508560ff169450601019811690505b5b6001826112709190612dd6565b9150858061127d90612e40565b9650506111f6565b818760060160186101000a81548160ff021916908360ff160217905550808760060160176101000a81548160ff021916908360ff16021790555086600101805490508760060160189054906101000a900460ff1660ff16106113125760048760060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff1602179055505b600060048860060160179054906101000a900460ff161660ff16119750505050505050505b92915050565b6000611347611d7f565b60008061010087511061138f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138690612eb5565b60405180910390fd5b338360e0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087836000018181525050868360200181905250865167ffffffffffffffff8111156113f5576113f4612416565b5b6040519080825280602002602001820160405280156114235781602001602082028036833780820191505090505b508360400181905250848360c0019062ffffff16908162ffffff1681525050854361144e91906126b4565b9050808360a00181815250506001805490509150600183610100019060ff16908160ff168152505060018390806001815401808255809150506001900390600052602060002090600702016000909190919091506000820151816000015560208201518160010190805190602001906114c8929190611df6565b5060408201518160020190805190602001906114e5929190611e43565b50606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548162ffffff021916908362ffffff16021790555060e08201518160060160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160176101000a81548160ff021916908360ff1602179055506101208201518160060160186101000a81548160ff021916908360ff16021790555050506115e0600183815481106115cd576115cc6126e8565b5b90600052602060002090600702016118f8565b836060018181525050818562ffffff16827f5a41400aa51d78e9e5ca645b0d045817eaa7d90e4344d773fdbe24ffb183d3ce60405160405180910390a4819350505050949350505050565b6000806001808561163c91906126b4565b8154811061164d5761164c6126e8565b5b9060005260206000209060070201905060008160010180549050036116bc57600083146116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a690612f21565b60405180910390fd5b80600401549150506116e1565b8060020183815481106116d2576116d16126e8565b5b90600052602060002001549150505b92915050565b6116ef611d7f565b600180836116fd91906126b4565b8154811061170e5761170d6126e8565b5b906000526020600020906007020160405180610140016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561178157602002820191906000526020600020905b81548152602001906001019080831161176d575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156117d957602002820191906000526020600020905b8154815260200190600101908083116117c5575b505050505081526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900462ffffff1662ffffff1662ffffff1681526020016006820160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160179054906101000a900460ff1660ff1660ff1681526020016006820160189054906101000a900460ff1660ff1660ff16815250509050919050565b600060606118ca8582868661133d565b9150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f18160ddd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516119c79190612862565b6000604051808303816000865af19150503d8060008114611a04576040519150601f19603f3d011682016040523d82523d6000602084013e611a09565b606091505b50809350819450505082611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a49906128c5565b60405180910390fd5b81806020019051810190611a669190612f56565b905060008111611aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa290612fcf565b60405180910390fd5b6000856003015403611ac557808560030181905550611b57565b84600301548114611b565760208560060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff16021790555060028560060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff160217905550600160036000828254611b4391906126b4565b9250508190555060009350505050611b5e565b5b8093505050505b919050565b60006060600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611bc4575050611d7c565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051602401611c0e919061266a565b6040516020818303038152906040527f3ef25013000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c989190612862565b6000604051808303816000865af19150503d8060008114611cd5576040519150601f19603f3d011682016040523d82523d6000602084013e611cda565b606091505b50809250819350505081611d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1a9061303b565b60405180910390fd5b80806020019051810190611d379190612911565b915081611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d70906130a7565b60405180910390fd5b50505b50565b604051806101400160405280600080191681526020016060815260200160608152602001600081526020016000815260200160008152602001600062ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060ff168152602001600060ff1681525090565b828054828255906000526020600020908101928215611e32579160200282015b82811115611e31578251825591602001919060010190611e16565b5b509050611e3f9190611e90565b5090565b828054828255906000526020600020908101928215611e7f579160200282015b82811115611e7e578251825591602001919060010190611e63565b5b509050611e8c9190611ead565b5090565b5b80821115611ea9576000816000905550600101611e91565b5090565b5b80821115611ec6576000816000905550600101611eae565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b611ef181611ede565b8114611efc57600080fd5b50565b600081359050611f0e81611ee8565b92915050565b600060208284031215611f2a57611f29611ed4565b5b6000611f3884828501611eff565b91505092915050565b60008115159050919050565b611f5681611f41565b82525050565b6000602082019050611f716000830184611f4d565b92915050565b60008060408385031215611f8e57611f8d611ed4565b5b6000611f9c85828601611eff565b9250506020611fad85828601611eff565b9150509250929050565b6000819050919050565b611fca81611fb7565b82525050565b6000602082019050611fe56000830184611fc1565b92915050565b611ff481611ede565b82525050565b600060208201905061200f6000830184611feb565b92915050565b61201e81611fb7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600061205c8383612015565b60208301905092915050565b6000602082019050919050565b600061208082612024565b61208a818561202f565b935061209583612040565b8060005b838110156120c65781516120ad8882612050565b97506120b883612068565b925050600181019050612099565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61210881611ede565b82525050565b600061211a83836120ff565b60208301905092915050565b6000602082019050919050565b600061213e826120d3565b61214881856120de565b9350612153836120ef565b8060005b8381101561218457815161216b888261210e565b975061217683612126565b925050600181019050612157565b5085935050505092915050565b600062ffffff82169050919050565b6121a981612191565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121da826121af565b9050919050565b6121ea816121cf565b82525050565b600060ff82169050919050565b612206816121f0565b82525050565b6000610140830160008301516122256000860182612015565b506020830151848203602086015261223d8282612075565b915050604083015184820360408601526122578282612133565b915050606083015161226c60608601826120ff565b50608083015161227f60808601826120ff565b5060a083015161229260a08601826120ff565b5060c08301516122a560c08601826121a0565b5060e08301516122b860e08601826121e1565b506101008301516122cd6101008601826121fd565b506101208301516122e26101208601826121fd565b508091505092915050565b60006020820190508181036000830152612307818461220c565b905092915050565b612318816121cf565b811461232357600080fd5b50565b6000813590506123358161230f565b92915050565b60006020828403121561235157612350611ed4565b5b600061235f84828501612326565b91505092915050565b612371816121f0565b811461237c57600080fd5b50565b60008135905061238e81612368565b92915050565b600080604083850312156123ab576123aa611ed4565b5b60006123b985828601611eff565b92505060206123ca8582860161237f565b9150509250929050565b6123dd81611fb7565b81146123e857600080fd5b50565b6000813590506123fa816123d4565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61244e82612405565b810181811067ffffffffffffffff8211171561246d5761246c612416565b5b80604052505050565b6000612480611eca565b905061248c8282612445565b919050565b600067ffffffffffffffff8211156124ac576124ab612416565b5b602082029050602081019050919050565b600080fd5b60006124d56124d084612491565b612476565b905080838252602082019050602084028301858111156124f8576124f76124bd565b5b835b81811015612521578061250d88826123eb565b8452602084019350506020810190506124fa565b5050509392505050565b600082601f8301126125405761253f612400565b5b81356125508482602086016124c2565b91505092915050565b61256281612191565b811461256d57600080fd5b50565b60008135905061257f81612559565b92915050565b6000806000806080858703121561259f5761259e611ed4565b5b60006125ad878288016123eb565b945050602085013567ffffffffffffffff8111156125ce576125cd611ed9565b5b6125da8782880161252b565b93505060406125eb87828801611eff565b92505060606125fc87828801612570565b91505092959194509250565b60008060006060848603121561262157612620611ed4565b5b600061262f868287016123eb565b935050602061264086828701611eff565b925050604061265186828701612570565b9150509250925092565b612664816121cf565b82525050565b600060208201905061267f600083018461265b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126bf82611ede565b91506126ca83611ede565b92508282019050808211156126e2576126e1612685565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f4552525f5052454d415455524500000000000000000000000000000000000000600082015250565b600061275e600d83612717565b915061276982612728565b602082019050919050565b6000602082019050818103600083015261278d81612751565b9050919050565b600061279f82611ede565b91506127aa83611ede565b92508282039050818111156127c2576127c1612685565b5b92915050565b60006040820190506127dd600083018561265b565b6127ea6020830184611feb565b9392505050565b600081519050919050565b600081905092915050565b60005b8381101561282557808201518184015260208101905061280a565b60008484015250505050565b600061283c826127f1565b61284681856127fc565b9350612856818560208601612807565b80840191505092915050565b600061286e8284612831565b915081905092915050565b7f4552525f544f4b454e0000000000000000000000000000000000000000000000600082015250565b60006128af600983612717565b91506128ba82612879565b602082019050919050565b600060208201905081810360008301526128de816128a2565b9050919050565b6128ee81611f41565b81146128f957600080fd5b50565b60008151905061290b816128e5565b92915050565b60006020828403121561292757612926611ed4565b5b6000612935848285016128fc565b91505092915050565b7f4552525f5452414e534645520000000000000000000000000000000000000000600082015250565b6000612974600c83612717565b915061297f8261293e565b602082019050919050565b600060208201905081810360008301526129a381612967565b9050919050565b7f4552525f4e4f5f43555252454e545f50524f504f53414c000000000000000000600082015250565b60006129e0601783612717565b91506129eb826129aa565b602082019050919050565b60006020820190508181036000830152612a0f816129d3565b9050919050565b7f4552525f414c52454144595f53544154455f46494e414c000000000000000000600082015250565b6000612a4c601783612717565b9150612a5782612a16565b602082019050919050565b60006020820190508181036000830152612a7b81612a3f565b9050919050565b7f4552525f5343414e5f4649525354000000000000000000000000000000000000600082015250565b6000612ab8600e83612717565b9150612ac382612a82565b602082019050919050565b60006020820190508181036000830152612ae781612aab565b9050919050565b6000612af982611ede565b9150612b0483611ede565b9250828202612b1281611ede565b91508282048414831517612b2957612b28612685565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b6a82611ede565b9150612b7583611ede565b925082612b8557612b84612b30565b5b828204905092915050565b7f4552525f50524f504f53414c5f494e4143544956450000000000000000000000600082015250565b6000612bc6601583612717565b9150612bd182612b90565b602082019050919050565b60006020820190508181036000830152612bf581612bb9565b9050919050565b7f4552525f444541444c494e450000000000000000000000000000000000000000600082015250565b6000612c32600c83612717565b9150612c3d82612bfc565b602082019050919050565b60006020820190508181036000830152612c6181612c25565b9050919050565b7f4552525f57495448445241575f46495253540000000000000000000000000000600082015250565b6000612c9e601283612717565b9150612ca982612c68565b602082019050919050565b60006020820190508181036000830152612ccd81612c91565b9050919050565b7f4552525f4f5054494f4e5f494e56414c49440000000000000000000000000000600082015250565b6000612d0a601283612717565b9150612d1582612cd4565b602082019050919050565b60006020820190508181036000830152612d3981612cfd565b9050919050565b6000819050919050565b6000612d65612d60612d5b846121af565b612d40565b6121af565b9050919050565b6000612d7782612d4a565b9050919050565b6000612d8982612d6c565b9050919050565b612d9981612d7e565b82525050565b6000606082019050612db4600083018661265b565b612dc16020830185612d90565b612dce6040830184611feb565b949350505050565b6000612de1826121f0565b9150612dec836121f0565b9250828201905060ff811115612e0557612e04612685565b5b92915050565b6000612e16826121f0565b9150612e21836121f0565b9250828203905060ff811115612e3a57612e39612685565b5b92915050565b6000612e4b826121f0565b915060ff8203612e5e57612e5d612685565b5b600182019050919050565b7f4552525f544f4f5f4d414e595f4f5054494f4e53000000000000000000000000600082015250565b6000612e9f601483612717565b9150612eaa82612e69565b602082019050919050565b60006020820190508181036000830152612ece81612e92565b9050919050565b7f4552525f4e4f5f4f5054494f4e53000000000000000000000000000000000000600082015250565b6000612f0b600e83612717565b9150612f1682612ed5565b602082019050919050565b60006020820190508181036000830152612f3a81612efe565b9050919050565b600081519050612f5081611ee8565b92915050565b600060208284031215612f6c57612f6b611ed4565b5b6000612f7a84828501612f41565b91505092915050565b7f4552525f5a45524f5f535550504c590000000000000000000000000000000000600082015250565b6000612fb9600f83612717565b9150612fc482612f83565b602082019050919050565b60006020820190508181036000830152612fe881612fac565b9050919050565b7f4552525f52454749535452590000000000000000000000000000000000000000600082015250565b6000613025600c83612717565b915061303082612fef565b602082019050919050565b6000602082019050818103600083015261305481613018565b9050919050565b7f4552525f554e415554485f4143434f554e540000000000000000000000000000600082015250565b6000613091601283612717565b915061309c8261305b565b602082019050919050565b600060208201905081810360008301526130c081613084565b905091905056fea26469706673582212203319577de9881fbe91a63514a2b535317c185299dd16cfe2bac5491db9cf227964736f6c63430008130033 -\ No newline at end of file +60806040523480156200001157600080fd5b506040516200353a3803806200353a8339818101604052810190620000379190620003da565b6200004162000217565b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001819080600181540180825580915050600190039060005260206000209060070201600090919091909150600082015181600001556020820151816001019080519060200190620001169291906200028e565b50604082015181600201908051906020019062000135929190620002e0565b50606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548162ffffff021916908362ffffff16021790555060e08201518160060160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160176101000a81548160ff021916908360ff1602179055506101208201518160060160186101000a81548160ff021916908360ff1602179055505050600160038190555050505062000421565b604051806101400160405280600080191681526020016060815260200160608152602001600081526020016000815260200160008152602001600062ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060ff168152602001600060ff1681525090565b828054828255906000526020600020908101928215620002cd579160200282015b82811115620002cc578251825591602001919060010190620002af565b5b509050620002dc919062000332565b5090565b8280548282559060005260206000209081019282156200031f579160200282015b828111156200031e57825182559160200191906001019062000301565b5b5090506200032e919062000351565b5090565b5b808211156200034d57600081600090555060010162000333565b5090565b5b808211156200036c57600081600090555060010162000352565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003a28262000375565b9050919050565b620003b48162000395565b8114620003c057600080fd5b50565b600081519050620003d481620003a9565b92915050565b60008060408385031215620003f457620003f362000370565b5b60006200040485828601620003c3565b92505060206200041785828601620003c3565b9150509250929050565b61310980620004316000396000f3fe608060405234801561001057600080fd5b5060043610610107576000357c01000000000000000000000000000000000000000000000000000000009004806384385191116100a9578063ba32941411610083578063ba329414146102b6578063c7f758a8146102e6578063e99a943e14610316578063fc0c546a1461034657610107565b806384385191146102265780638bb5221314610256578063b05c65ba1461028657610107565b806341ec6870116100e557806341ec68701461018a5780634bb278f3146101a8578063509bd337146101c657806370a08231146101f657610107565b80630121b93f1461010c5780631ce309271461013c5780633ccfd60b1461016c575b600080fd5b61012660048036038101906101219190611f20565b610364565b6040516101339190611f68565b60405180910390f35b61015660048036038101906101519190611f83565b610378565b6040516101639190611fdc565b60405180910390f35b6101746103d4565b6040516101819190612006565b60405180910390f35b61019261075d565b60405161019f91906122f9565b60405180910390f35b6101b0610985565b6040516101bd9190611f68565b60405180910390f35b6101e060048036038101906101db9190611f83565b610b52565b6040516101ed9190611f68565b60405180910390f35b610210600480360381019061020b9190612347565b61102e565b60405161021d9190612006565b60405180910390f35b610240600480360381019061023b9190611f20565b611046565b60405161024d9190612006565b60405180910390f35b610270600480360381019061026b91906123a0565b611088565b60405161027d9190611f68565b60405180910390f35b6102a0600480360381019061029b9190612591565b61133d565b6040516102ad9190612006565b60405180910390f35b6102d060048036038101906102cb9190611f83565b611637565b6040516102dd9190612006565b60405180910390f35b61030060048036038101906102fb9190611f20565b6116f3565b60405161030d91906122f9565b60405180910390f35b610330600480360381019061032b9190612614565b6118c6565b60405161033d9190612006565b60405180910390f35b61034e6118e0565b60405161035b9190612676565b60405180910390f35b6000610371600083610b52565b9050919050565b6000806001808561038991906126c0565b8154811061039a576103996126f4565b5b906000526020600020906007020190508060010183815481106103c0576103bf6126f4565b5b906000526020600020015491505092915050565b600080600060606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036105145760016003548154811061047d5761047c6126f4565b5b90600052602060002090600702019350438460050154116104f757600060028560060160179054906101000a900460ff161660ff16116104f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e990612780565b60405180910390fd5b610513565b8084600401600082825461050b91906127a0565b925050819055505b5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1633826040516024016105e89291906127d4565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610672919061286e565b6000604051808303816000865af19150503d80600081146106af576040519150601f19603f3d011682016040523d82523d6000602084013e6106b4565b606091505b508093508194505050826106fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f4906128d1565b60405180910390fd5b81806020019051810190610711919061291d565b925082610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074a90612996565b60405180910390fd5b8094505050505090565b610765611d8b565b600060016003548154811061077d5761077c6126f4565b5b90600052602060002090600702019050600060018260060160179054906101000a900460ff161660ff16116107e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107de90612a02565b60405180910390fd5b8060405180610140016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561084d57602002820191906000526020600020905b815481526020019060010190808311610839575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156108a557602002820191906000526020600020905b815481526020019060010190808311610891575b505050505081526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900462ffffff1662ffffff1662ffffff1681526020016006820160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160179054906101000a900460ff1660ff1660ff1681526020016006820160189054906101000a900460ff1660ff1660ff168152505091505090565b60008060006001600354815481106109a05761099f6126f4565b5b90600052602060002090600702019150600060028360060160179054906101000a900460ff161660ff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0190612a6e565b60405180910390fd5b600060048360060160179054906101000a900460ff161660ff1611610a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5b90612ada565b60405180910390fd5b6000610a6f83611904565b03610a7f57600092505050610b4f565b60028260060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff160217905550600160036000828254610ac291906126c0565b92505081905550620f42408260040154610adc9190612afa565b90508160060160009054906101000a900462ffffff1662ffffff16826003015482610b079190612b6b565b1015610b485760088260060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff160217905550600092505050610b4f565b6001925050505b90565b60008060006060610b6233611b6f565b600160035481548110610b7857610b776126f4565b5b90600052602060002090600702019250600060018460060160179054906101000a900460ff161660ff1611610be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd990612be8565b60405180910390fd5b6000610bed84611904565b03610bfe5760009350505050611028565b43836005015411610c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3b90612c54565b60405180910390fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610d1057600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690612cc0565b60405180910390fd5b5b600083600101805490501115610d6a5782600101805490508610610d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6090612d2c565b60405180910390fd5b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16333087604051602401610db693929190612dab565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e40919061286e565b6000604051808303816000865af19150503d8060008114610e7d576040519150601f19603f3d011682016040523d82523d6000602084013e610e82565b606091505b50809250819350505081610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec2906128d1565b60405180910390fd5b80806020019051810190610edf919061291d565b915081610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1890612996565b60405180910390fd5b600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fb691906126c0565b9250508190555084836004016000828254610fd191906126c0565b925050819055506000836001018054905011156110205784836002018781548110610fff57610ffe6126f4565b5b90600052602060002001600082825461101891906126c0565b925050819055505b600193505050505b92915050565b60046020528060005260406000206000915090505481565b6000806001808461105791906126c0565b81548110611068576110676126f4565b5b906000526020600020906007020190508060010180549050915050919050565b6000806000806000806000806001808b6110a291906126c0565b815481106110b3576110b26126f4565b5b90600052602060002090600702019650438760050154111561110a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110190612780565b60405180910390fd5b600060048860060160179054906101000a900460ff161660ff16111561113a576000975050505050505050611337565b60008760010180549050036111895760048760060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff1602179055506001975050505050505050611337565b8660060160189054906101000a900460ff169150866001018054905089836111b19190612de2565b60ff1611156111d0578187600101805490506111cd9190612e17565b98505b81896111dc9190612de2565b98508660060160179054906101000a900460ff1690508195505b8860ff168660ff16101561128557866002018660ff168154811061121d5761121c6126f4565b5b9060005260206000200154925060008311801561123957508383145b1561124957601081179050611263565b83831115611262578293508560ff169450601019811690505b5b6001826112709190612de2565b9150858061127d90612e4c565b9650506111f6565b818760060160186101000a81548160ff021916908360ff160217905550808760060160176101000a81548160ff021916908360ff16021790555086600101805490508760060160189054906101000a900460ff1660ff16106113125760048760060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff1602179055505b600060048860060160179054906101000a900460ff161660ff16119750505050505050505b92915050565b6000611347611d8b565b60008061010087511061138f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138690612ec1565b60405180910390fd5b338360e0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087836000018181525050868360200181905250865167ffffffffffffffff8111156113f5576113f4612422565b5b6040519080825280602002602001820160405280156114235781602001602082028036833780820191505090505b508360400181905250848360c0019062ffffff16908162ffffff1681525050854361144e91906126c0565b9050808360a00181815250506001805490509150600183610100019060ff16908160ff168152505060018390806001815401808255809150506001900390600052602060002090600702016000909190919091506000820151816000015560208201518160010190805190602001906114c8929190611e02565b5060408201518160020190805190602001906114e5929190611e4f565b50606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548162ffffff021916908362ffffff16021790555060e08201518160060160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160176101000a81548160ff021916908360ff1602179055506101208201518160060160186101000a81548160ff021916908360ff16021790555050506115e0600183815481106115cd576115cc6126f4565b5b9060005260206000209060070201611904565b8360600181815250506001826115f691906127a0565b8562ffffff16827f5a41400aa51d78e9e5ca645b0d045817eaa7d90e4344d773fdbe24ffb183d3ce60405160405180910390a4819350505050949350505050565b6000806001808561164891906126c0565b81548110611659576116586126f4565b5b9060005260206000209060070201905060008160010180549050036116c857600083146116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290612f2d565b60405180910390fd5b80600401549150506116ed565b8060020183815481106116de576116dd6126f4565b5b90600052602060002001549150505b92915050565b6116fb611d8b565b6001808361170991906126c0565b8154811061171a576117196126f4565b5b906000526020600020906007020160405180610140016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561178d57602002820191906000526020600020905b815481526020019060010190808311611779575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156117e557602002820191906000526020600020905b8154815260200190600101908083116117d1575b505050505081526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900462ffffff1662ffffff1662ffffff1681526020016006820160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160179054906101000a900460ff1660ff1660ff1681526020016006820160189054906101000a900460ff1660ff1660ff16815250509050919050565b600060606118d68582868661133d565b9150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f18160ddd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516119d3919061286e565b6000604051808303816000865af19150503d8060008114611a10576040519150601f19603f3d011682016040523d82523d6000602084013e611a15565b606091505b50809350819450505082611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a55906128d1565b60405180910390fd5b81806020019051810190611a729190612f62565b905060008111611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae90612fdb565b60405180910390fd5b6000856003015403611ad157808560030181905550611b63565b84600301548114611b625760208560060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff16021790555060028560060160178282829054906101000a900460ff161792506101000a81548160ff021916908360ff160217905550600160036000828254611b4f91906126c0565b9250508190555060009350505050611b6a565b5b8093505050505b919050565b60006060600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611bd0575050611d88565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051602401611c1a9190612676565b6040516020818303038152906040527f3ef25013000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ca4919061286e565b6000604051808303816000865af19150503d8060008114611ce1576040519150601f19603f3d011682016040523d82523d6000602084013e611ce6565b606091505b50809250819350505081611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2690613047565b60405180910390fd5b80806020019051810190611d43919061291d565b915081611d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7c906130b3565b60405180910390fd5b50505b50565b604051806101400160405280600080191681526020016060815260200160608152602001600081526020016000815260200160008152602001600062ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060ff168152602001600060ff1681525090565b828054828255906000526020600020908101928215611e3e579160200282015b82811115611e3d578251825591602001919060010190611e22565b5b509050611e4b9190611e9c565b5090565b828054828255906000526020600020908101928215611e8b579160200282015b82811115611e8a578251825591602001919060010190611e6f565b5b509050611e989190611eb9565b5090565b5b80821115611eb5576000816000905550600101611e9d565b5090565b5b80821115611ed2576000816000905550600101611eba565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b611efd81611eea565b8114611f0857600080fd5b50565b600081359050611f1a81611ef4565b92915050565b600060208284031215611f3657611f35611ee0565b5b6000611f4484828501611f0b565b91505092915050565b60008115159050919050565b611f6281611f4d565b82525050565b6000602082019050611f7d6000830184611f59565b92915050565b60008060408385031215611f9a57611f99611ee0565b5b6000611fa885828601611f0b565b9250506020611fb985828601611f0b565b9150509250929050565b6000819050919050565b611fd681611fc3565b82525050565b6000602082019050611ff16000830184611fcd565b92915050565b61200081611eea565b82525050565b600060208201905061201b6000830184611ff7565b92915050565b61202a81611fc3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006120688383612021565b60208301905092915050565b6000602082019050919050565b600061208c82612030565b612096818561203b565b93506120a18361204c565b8060005b838110156120d25781516120b9888261205c565b97506120c483612074565b9250506001810190506120a5565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61211481611eea565b82525050565b6000612126838361210b565b60208301905092915050565b6000602082019050919050565b600061214a826120df565b61215481856120ea565b935061215f836120fb565b8060005b83811015612190578151612177888261211a565b975061218283612132565b925050600181019050612163565b5085935050505092915050565b600062ffffff82169050919050565b6121b58161219d565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121e6826121bb565b9050919050565b6121f6816121db565b82525050565b600060ff82169050919050565b612212816121fc565b82525050565b6000610140830160008301516122316000860182612021565b50602083015184820360208601526122498282612081565b91505060408301518482036040860152612263828261213f565b9150506060830151612278606086018261210b565b50608083015161228b608086018261210b565b5060a083015161229e60a086018261210b565b5060c08301516122b160c08601826121ac565b5060e08301516122c460e08601826121ed565b506101008301516122d9610100860182612209565b506101208301516122ee610120860182612209565b508091505092915050565b600060208201905081810360008301526123138184612218565b905092915050565b612324816121db565b811461232f57600080fd5b50565b6000813590506123418161231b565b92915050565b60006020828403121561235d5761235c611ee0565b5b600061236b84828501612332565b91505092915050565b61237d816121fc565b811461238857600080fd5b50565b60008135905061239a81612374565b92915050565b600080604083850312156123b7576123b6611ee0565b5b60006123c585828601611f0b565b92505060206123d68582860161238b565b9150509250929050565b6123e981611fc3565b81146123f457600080fd5b50565b600081359050612406816123e0565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61245a82612411565b810181811067ffffffffffffffff8211171561247957612478612422565b5b80604052505050565b600061248c611ed6565b90506124988282612451565b919050565b600067ffffffffffffffff8211156124b8576124b7612422565b5b602082029050602081019050919050565b600080fd5b60006124e16124dc8461249d565b612482565b90508083825260208201905060208402830185811115612504576125036124c9565b5b835b8181101561252d578061251988826123f7565b845260208401935050602081019050612506565b5050509392505050565b600082601f83011261254c5761254b61240c565b5b813561255c8482602086016124ce565b91505092915050565b61256e8161219d565b811461257957600080fd5b50565b60008135905061258b81612565565b92915050565b600080600080608085870312156125ab576125aa611ee0565b5b60006125b9878288016123f7565b945050602085013567ffffffffffffffff8111156125da576125d9611ee5565b5b6125e687828801612537565b93505060406125f787828801611f0b565b92505060606126088782880161257c565b91505092959194509250565b60008060006060848603121561262d5761262c611ee0565b5b600061263b868287016123f7565b935050602061264c86828701611f0b565b925050604061265d8682870161257c565b9150509250925092565b612670816121db565b82525050565b600060208201905061268b6000830184612667565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126cb82611eea565b91506126d683611eea565b92508282019050808211156126ee576126ed612691565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f4552525f5052454d415455524500000000000000000000000000000000000000600082015250565b600061276a600d83612723565b915061277582612734565b602082019050919050565b600060208201905081810360008301526127998161275d565b9050919050565b60006127ab82611eea565b91506127b683611eea565b92508282039050818111156127ce576127cd612691565b5b92915050565b60006040820190506127e96000830185612667565b6127f66020830184611ff7565b9392505050565b600081519050919050565b600081905092915050565b60005b83811015612831578082015181840152602081019050612816565b60008484015250505050565b6000612848826127fd565b6128528185612808565b9350612862818560208601612813565b80840191505092915050565b600061287a828461283d565b915081905092915050565b7f4552525f544f4b454e0000000000000000000000000000000000000000000000600082015250565b60006128bb600983612723565b91506128c682612885565b602082019050919050565b600060208201905081810360008301526128ea816128ae565b9050919050565b6128fa81611f4d565b811461290557600080fd5b50565b600081519050612917816128f1565b92915050565b60006020828403121561293357612932611ee0565b5b600061294184828501612908565b91505092915050565b7f4552525f5452414e534645520000000000000000000000000000000000000000600082015250565b6000612980600c83612723565b915061298b8261294a565b602082019050919050565b600060208201905081810360008301526129af81612973565b9050919050565b7f4552525f4e4f5f43555252454e545f50524f504f53414c000000000000000000600082015250565b60006129ec601783612723565b91506129f7826129b6565b602082019050919050565b60006020820190508181036000830152612a1b816129df565b9050919050565b7f4552525f414c52454144595f53544154455f46494e414c000000000000000000600082015250565b6000612a58601783612723565b9150612a6382612a22565b602082019050919050565b60006020820190508181036000830152612a8781612a4b565b9050919050565b7f4552525f5343414e5f4649525354000000000000000000000000000000000000600082015250565b6000612ac4600e83612723565b9150612acf82612a8e565b602082019050919050565b60006020820190508181036000830152612af381612ab7565b9050919050565b6000612b0582611eea565b9150612b1083611eea565b9250828202612b1e81611eea565b91508282048414831517612b3557612b34612691565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b7682611eea565b9150612b8183611eea565b925082612b9157612b90612b3c565b5b828204905092915050565b7f4552525f50524f504f53414c5f494e4143544956450000000000000000000000600082015250565b6000612bd2601583612723565b9150612bdd82612b9c565b602082019050919050565b60006020820190508181036000830152612c0181612bc5565b9050919050565b7f4552525f444541444c494e450000000000000000000000000000000000000000600082015250565b6000612c3e600c83612723565b9150612c4982612c08565b602082019050919050565b60006020820190508181036000830152612c6d81612c31565b9050919050565b7f4552525f57495448445241575f46495253540000000000000000000000000000600082015250565b6000612caa601283612723565b9150612cb582612c74565b602082019050919050565b60006020820190508181036000830152612cd981612c9d565b9050919050565b7f4552525f4f5054494f4e5f494e56414c49440000000000000000000000000000600082015250565b6000612d16601283612723565b9150612d2182612ce0565b602082019050919050565b60006020820190508181036000830152612d4581612d09565b9050919050565b6000819050919050565b6000612d71612d6c612d67846121bb565b612d4c565b6121bb565b9050919050565b6000612d8382612d56565b9050919050565b6000612d9582612d78565b9050919050565b612da581612d8a565b82525050565b6000606082019050612dc06000830186612667565b612dcd6020830185612d9c565b612dda6040830184611ff7565b949350505050565b6000612ded826121fc565b9150612df8836121fc565b9250828201905060ff811115612e1157612e10612691565b5b92915050565b6000612e22826121fc565b9150612e2d836121fc565b9250828203905060ff811115612e4657612e45612691565b5b92915050565b6000612e57826121fc565b915060ff8203612e6a57612e69612691565b5b600182019050919050565b7f4552525f544f4f5f4d414e595f4f5054494f4e53000000000000000000000000600082015250565b6000612eab601483612723565b9150612eb682612e75565b602082019050919050565b60006020820190508181036000830152612eda81612e9e565b9050919050565b7f4552525f4e4f5f4f5054494f4e53000000000000000000000000000000000000600082015250565b6000612f17600e83612723565b9150612f2282612ee1565b602082019050919050565b60006020820190508181036000830152612f4681612f0a565b9050919050565b600081519050612f5c81611ef4565b92915050565b600060208284031215612f7857612f77611ee0565b5b6000612f8684828501612f4d565b91505092915050565b7f4552525f5a45524f5f535550504c590000000000000000000000000000000000600082015250565b6000612fc5600f83612723565b9150612fd082612f8f565b602082019050919050565b60006020820190508181036000830152612ff481612fb8565b9050919050565b7f4552525f52454749535452590000000000000000000000000000000000000000600082015250565b6000613031600c83612723565b915061303c82612ffb565b602082019050919050565b6000602082019050818103600083015261306081613024565b9050919050565b7f4552525f554e415554485f4143434f554e540000000000000000000000000000600082015250565b600061309d601283612723565b91506130a882613067565b602082019050919050565b600060208201905081810360008301526130cc81613090565b905091905056fea264697066735822122030203a12e5b129eb8d5e78a8864cc83722b605569b104295cf05367a05d6bf8764736f6c63430008130033 +\ No newline at end of file diff --git a/python/evm_tokenvote/data/Voter.metadata.json b/python/evm_tokenvote/data/Voter.metadata.json @@ -1 +1 @@ -{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_accountsRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_blockDeadline","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"voteTargetPpm","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_proposalIdx","type":"uint256"}],"name":"ProposalAdded","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalize","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentProposal","outputs":[{"components":[{"internalType":"bytes32","name":"description","type":"bytes32"},{"internalType":"bytes32[]","name":"options","type":"bytes32[]"},{"internalType":"uint256[]","name":"optionVotes","type":"uint256[]"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"blockDeadline","type":"uint256"},{"internalType":"uint24","name":"targetVotePpm","type":"uint24"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint8","name":"state","type":"uint8"},{"internalType":"uint8","name":"scanCursor","type":"uint8"}],"internalType":"struct ERC20Vote.Proposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalIdx","type":"uint256"},{"internalType":"uint256","name":"_optionIdx","type":"uint256"}],"name":"getOption","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalIdx","type":"uint256"}],"name":"getProposal","outputs":[{"components":[{"internalType":"bytes32","name":"description","type":"bytes32"},{"internalType":"bytes32[]","name":"options","type":"bytes32[]"},{"internalType":"uint256[]","name":"optionVotes","type":"uint256[]"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"blockDeadline","type":"uint256"},{"internalType":"uint24","name":"targetVotePpm","type":"uint24"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint8","name":"state","type":"uint8"},{"internalType":"uint8","name":"scanCursor","type":"uint8"}],"internalType":"struct ERC20Vote.Proposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalIdx","type":"uint256"}],"name":"optionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_description","type":"bytes32"},{"internalType":"uint256","name":"_blockWait","type":"uint256"},{"internalType":"uint24","name":"_targetVotePpm","type":"uint24"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_description","type":"bytes32"},{"internalType":"bytes32[]","name":"_options","type":"bytes32[]"},{"internalType":"uint256","name":"_blockWait","type":"uint256"},{"internalType":"uint24","name":"_targetVotePpm","type":"uint24"}],"name":"proposeMulti","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalIndex","type":"uint256"},{"internalType":"uint8","name":"_count","type":"uint8"}],"name":"scan","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"vote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalIdx","type":"uint256"},{"internalType":"uint256","name":"_optionIdx","type":"uint256"}],"name":"voteCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_optionIndex","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"voteOption","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"Voter.sol":"ERC20Vote"},"evmVersion":"byzantium","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"Voter.sol":{"keccak256":"0xfcbc7fd932a5d6e9446f080724b9021cf7f7cf00188ff771e5087a93f580406c","license":"AGPL-3.0-or-later","urls":["bzz-raw://cf8056fbc8ecc0bd0adee8958d0f887e559b694a5c55296eb15fcaf8d2abd21a","dweb:/ipfs/QmW8mPutHBTXe5CUJMERKaNbKpzHcejNc4La886yFw1skS"]}},"version":1} +{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_accountsRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_blockDeadline","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"voteTargetPpm","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_proposalIdx","type":"uint256"}],"name":"ProposalAdded","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalize","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentProposal","outputs":[{"components":[{"internalType":"bytes32","name":"description","type":"bytes32"},{"internalType":"bytes32[]","name":"options","type":"bytes32[]"},{"internalType":"uint256[]","name":"optionVotes","type":"uint256[]"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"blockDeadline","type":"uint256"},{"internalType":"uint24","name":"targetVotePpm","type":"uint24"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint8","name":"state","type":"uint8"},{"internalType":"uint8","name":"scanCursor","type":"uint8"}],"internalType":"struct ERC20Vote.Proposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalIdx","type":"uint256"},{"internalType":"uint256","name":"_optionIdx","type":"uint256"}],"name":"getOption","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalIdx","type":"uint256"}],"name":"getProposal","outputs":[{"components":[{"internalType":"bytes32","name":"description","type":"bytes32"},{"internalType":"bytes32[]","name":"options","type":"bytes32[]"},{"internalType":"uint256[]","name":"optionVotes","type":"uint256[]"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"blockDeadline","type":"uint256"},{"internalType":"uint24","name":"targetVotePpm","type":"uint24"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint8","name":"state","type":"uint8"},{"internalType":"uint8","name":"scanCursor","type":"uint8"}],"internalType":"struct ERC20Vote.Proposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalIdx","type":"uint256"}],"name":"optionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_description","type":"bytes32"},{"internalType":"uint256","name":"_blockWait","type":"uint256"},{"internalType":"uint24","name":"_targetVotePpm","type":"uint24"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_description","type":"bytes32"},{"internalType":"bytes32[]","name":"_options","type":"bytes32[]"},{"internalType":"uint256","name":"_blockWait","type":"uint256"},{"internalType":"uint24","name":"_targetVotePpm","type":"uint24"}],"name":"proposeMulti","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalIndex","type":"uint256"},{"internalType":"uint8","name":"_count","type":"uint8"}],"name":"scan","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"vote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalIdx","type":"uint256"},{"internalType":"uint256","name":"_optionIdx","type":"uint256"}],"name":"voteCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_optionIndex","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"voteOption","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"Voter.sol":"ERC20Vote"},"evmVersion":"byzantium","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"Voter.sol":{"keccak256":"0xb9caa4e34413aafaab82a8d14bc9a8960765a71d5fc7cdc10ea39fb52ed2a2c2","license":"AGPL-3.0-or-later","urls":["bzz-raw://83f759873e36a24f455c883d13bd3626d111a164e727220debace5b9da9b4cb8","dweb:/ipfs/QmNxDUpyYgHtJb6vs6Ntv15WKFbXQ5JRomyzWZKNvseeTY"]}},"version":1} diff --git a/python/requirements.txt b/python/requirements.txt @@ -1,2 +1,2 @@ eth-erc20~=0.7.3 -chainlib-eth~=0.5.0 +chainlib-eth~=0.4.19 diff --git a/python/test_requirements.txt b/python/test_requirements.txt @@ -1,4 +1,4 @@ eth_tester==0.5.0b3 py-evm==0.3.0a20 eth-interface==0.1.1 -eth-accounts-index~=0.5.1 +eth-accounts-index~=0.5.2 diff --git a/solidity/Voter.sol b/solidity/Voter.sol @@ -68,7 +68,7 @@ contract ERC20Vote { proposals.push(l_proposal); l_proposal.supply = checkSupply(proposals[l_proposalIndex]); - emit ProposalAdded(l_blockDeadline, _targetVotePpm, l_proposalIndex); + emit ProposalAdded(l_blockDeadline, _targetVotePpm, l_proposalIndex - 1); return l_proposalIndex; }