erc20-demurrage-token

ERC20 token with redistributed continual demurrage
Log | Files | Refs | README

commit c5de0e330018b9227473aff7bfa5a5a17c7ffd7b
parent cc1a84f8189fbf24af312f2795fa9aba970aec54
Author: lash <dev@holbrook.no>
Date:   Sat, 28 May 2022 09:28:10 +0000

Reactivate test, expose sinkaddress

Diffstat:
Mpython/erc20_demurrage_token/data/DemurrageTokenSingleNocap.bin | 4++--
Mpython/erc20_demurrage_token/data/DemurrageTokenSingleNocap.json | 2+-
Mpython/run_tests.sh | 2+-
Msolidity/DemurrageTokenSingleNocap.sol | 2+-
4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/python/erc20_demurrage_token/data/DemurrageTokenSingleNocap.bin b/python/erc20_demurrage_token/data/DemurrageTokenSingleNocap.bin @@ -1 +1 @@ -61010060405264e8d4a510006a52b7d2dcc80cd2e400000062000023919062000407565b6080908152503480156200003657600080fd5b50604051620034483803806200344883398181016040528101906200005c919062000726565b33600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555085600690805190602001906200012f9291906200031e565b508460079080519060200190620001489291906200031e565b508360ff166008819055504260038190555060035460a08181525050603c8262000173919062000407565b60c0818152505060646a52b7d2dcc80cd2e400000062000194919062000800565b600260006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550826fffffffffffffffffffffffffffffffff1660e081815250506000620002386000600260009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1660006001620002b1640100000000026401000000009004565b9050600081908060018154018082558091505060019003906000526020600020016000909190919091505581600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050620008b5565b6000807affffffffffffffffffffffffffff00000000000000000000000000606860ff16869060020a0216600102811790506cffffffffffffffffff00000000602060ff16859060020a02166001028117905063ffffffff83166001028117905080915050949350505050565b8280546200032c9062000880565b90600052602060002090601f0160209004810192826200035057600085556200039c565b82601f106200036b57805160ff19168380011785556200039c565b828001600101855582156200039c579182015b828111156200039b5782518255916020019190600101906200037e565b5b509050620003ab9190620003af565b5090565b5b80821115620003ca576000816000905550600101620003b0565b5090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200041482620003ce565b91506200042183620003ce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200045d576200045c620003d8565b5b828202905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004d18262000486565b810181811067ffffffffffffffff82111715620004f357620004f262000497565b5b80604052505050565b60006200050862000468565b9050620005168282620004c6565b919050565b600067ffffffffffffffff82111562000539576200053862000497565b5b620005448262000486565b9050602081019050919050565b60005b838110156200057157808201518184015260208101905062000554565b8381111562000581576000848401525b50505050565b60006200059e62000598846200051b565b620004fc565b905082815260208101848484011115620005bd57620005bc62000481565b5b620005ca84828562000551565b509392505050565b600082601f830112620005ea57620005e96200047c565b5b8151620005fc84826020860162000587565b91505092915050565b600060ff82169050919050565b6200061d8162000605565b81146200062957600080fd5b50565b6000815190506200063d8162000612565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6200066a8162000643565b81146200067657600080fd5b50565b6000815190506200068a816200065f565b92915050565b6200069b81620003ce565b8114620006a757600080fd5b50565b600081519050620006bb8162000690565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006ee82620006c1565b9050919050565b6200070081620006e1565b81146200070c57600080fd5b50565b6000815190506200072081620006f5565b92915050565b60008060008060008060c0878903121562000746576200074562000472565b5b600087015167ffffffffffffffff81111562000767576200076662000477565b5b6200077589828a01620005d2565b965050602087015167ffffffffffffffff81111562000799576200079862000477565b5b620007a789828a01620005d2565b9550506040620007ba89828a016200062c565b9450506060620007cd89828a0162000679565b9350506080620007e089828a01620006aa565b92505060a0620007f389828a016200070f565b9150509295509295509295565b60006200080d8262000643565b91506200081a8362000643565b9250816fffffffffffffffffffffffffffffffff0483118215151615620008465762000845620003d8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200089957607f821691505b602082108103620008af57620008ae62000851565b5b50919050565b60805160a05160c05160e051612b1a6200092e60003960008181610cc701528181610f170152611bb901526000818161116701528181611a2a0152611c5801526000818161119301528181611c790152611cbe01526000818161120001528181611238015281816112b00152611a060152612b1a6000f3fe608060405234801561001057600080fd5b5060043610610286576000357c01000000000000000000000000000000000000000000000000000000009004806370a082311161016e578063a9059cbb116100e0578063e3ab207a116100a4578063e3ab207a14610847578063e54d63f714610877578063e8095295146108a7578063eda4e6d6146108c5578063f2fde38b146108e3578063f83da35d1461091357610286565b8063a9059cbb1461078d578063ab28cea0146107bd578063b470aade146107db578063c0ab7077146107f9578063d340ef8a1461082957610286565b80638da5cb5b116101325780638da5cb5b146106b75780638f0b2d5d146106d55780638f1df6bc146106f157806395d89b411461070f578063983b2d561461072d5780639da7d8ba1461075d57610286565b806370a08231146105fd578063731f237c1461062d57806374bedb951461064b57806379ba5097146106695780638d34855a1461068757610286565b8063313ce5671161020757806351b4541c116101cb57806351b4541c146104ef57806358b2833b1461051f5780636721d4ef1461053d5780636787a9be1461056d5780636a2d094e1461059d5780636ffa8a05146105cd57610286565b8063313ce5671461041157806340452d911461042f578063449a52f81461045f57806347a505171461048f5780634abfbba2146104bf57610286565b80631989c6a81161024e5780631989c6a814610345578063229ba1971461036357806323b872dd146103815780633092afd5146103b157806331333487146103e157610286565b806301ffc9a71461028b57806306fdde03146102bb578063095ea7b3146102d957806309f28f3c1461030957806318160ddd14610327575b600080fd5b6102a560048036038101906102a0919061225c565b610943565b6040516102b291906122a4565b60405180910390f35b6102c3610ae9565b6040516102d09190612358565b60405180910390f35b6102f360048036038101906102ee919061240e565b610b77565b60405161030091906122a4565b60405180910390f35b610311610c91565b60405161031e9190612479565b60405180910390f35b61032f610cb3565b60405161033c91906124a3565b60405180910390f35b61034d610cb9565b60405161035a91906124a3565b60405180910390f35b61036b610cc5565b60405161037891906124a3565b60405180910390f35b61039b600480360381019061039691906124be565b610ce9565b6040516103a891906122a4565b60405180910390f35b6103cb60048036038101906103c69190612511565b610e09565b6040516103d891906122a4565b60405180910390f35b6103fb60048036038101906103f6919061253e565b610efc565b60405161040891906124a3565b60405180910390f35b610419610fb0565b60405161042691906124a3565b60405180910390f35b6104496004803603810190610444919061257e565b610fb6565b60405161045691906125c4565b60405180910390f35b6104796004803603810190610474919061240e565b610fda565b60405161048691906122a4565b60405180910390f35b6104a960048036038101906104a49190612511565b61111a565b6040516104b691906124a3565b60405180910390f35b6104d960048036038101906104d4919061257e565b611163565b6040516104e691906124a3565b60405180910390f35b6105096004803603810190610504919061257e565b6111c3565b60405161051691906124a3565b60405180910390f35b6105276111e4565b60405161053491906124a3565b60405180910390f35b6105576004803603810190610552919061253e565b6111ea565b60405161056491906124a3565b60405180910390f35b6105876004803603810190610582919061257e565b61126b565b60405161059491906124a3565b60405180910390f35b6105b760048036038101906105b2919061257e565b6112eb565b6040516105c491906124a3565b60405180910390f35b6105e760048036038101906105e2919061260b565b61130c565b6040516105f491906124a3565b60405180910390f35b61061760048036038101906106129190612511565b611346565b60405161062491906124a3565b60405180910390f35b6106356113fe565b60405161064291906122a4565b60405180910390f35b61065361140f565b60405161066091906124a3565b60405180910390f35b610671611415565b60405161067e91906122a4565b60405180910390f35b6106a1600480360381019061069c919061260b565b6115bc565b6040516106ae91906124a3565b60405180910390f35b6106bf6115ea565b6040516106cc9190612647565b60405180910390f35b6106ef60048036038101906106ea9190612511565b611610565b005b6106f96116ae565b60405161070691906122a4565b60405180910390f35b6107176117f7565b6040516107249190612358565b60405180910390f35b61074760048036038101906107429190612511565b611885565b60405161075491906122a4565b60405180910390f35b6107776004803603810190610772919061260b565b611942565b60405161078491906124a3565b60405180910390f35b6107a760048036038101906107a2919061240e565b61196e565b6040516107b491906122a4565b60405180910390f35b6107c5611a04565b6040516107d291906124a3565b60405180910390f35b6107e3611a28565b6040516107f091906124a3565b60405180910390f35b610813600480360381019061080e919061257e565b611a4c565b60405161082091906122a4565b60405180910390f35b610831611b84565b60405161083e91906124a3565b60405180910390f35b610861600480360381019061085c919061260b565b611b8a565b60405161086e91906124a3565b60405180910390f35b610891600480360381019061088c919061253e565b611b9e565b60405161089e91906124a3565b60405180910390f35b6108af611c52565b6040516108bc9190612479565b60405180910390f35b6108cd611cbc565b6040516108da91906124a3565b60405180910390f35b6108fd60048036038101906108f89190612511565b611ce0565b60405161090a91906122a4565b60405180910390f35b61092d60048036038101906109289190612662565b611d82565b60405161093a91906125c4565b60405180910390f35b600063c6bb4b707c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036109975760019050610ae4565b63449a52f87c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036109e95760019050610ae4565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610a3b5760019050610ae4565b639493f8b27c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610a8d5760019050610ae4565b6337a47be47c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610adf5760019050610ae4565b600090505b919050565b60068054610af6906126f8565b80601f0160208091040260200160405190810160405280929190818152602001828054610b22906126f8565b8015610b6f5780601f10610b4457610100808354040283529160200191610b6f565b820191906000526020600020905b815481529060010190602001808311610b5257829003601f168201915b505050505081565b600080610b826116ae565b50610b8c8361126b565b905080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c1a9190612758565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610c7e91906124a3565b60405180910390a3600191505092915050565b600260009054906101000a90046fffffffffffffffffffffffffffffffff1681565b60095481565b60008080549050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000610cf66116ae565b50610d008461126b565b915081600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d8b57600080fd5b610d96868684611def565b90508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610df591906124a3565b60405180910390a380925050509392505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e9257503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b610e9b57600080fd5b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b600080600064e8d4a5100091506a52b7d2dcc80cd2e40000007f0000000000000000000000000000000000000000000000000000000000000000610f4091906127dd565b905060005b84811015610f895764e8d4a510008284610f5f919061280e565b610f6991906127dd565b83610f749190612868565b92508080610f819061289c565b915050610f45565b5064e8d4a510008583610f9c919061280e565b610fa691906127dd565b9250505092915050565b60085481565b60008181548110610fc657600080fd5b906000526020600020016000915090505481565b600080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106090612930565b60405180910390fd5b6110716116ae565b5061107b8361126b565b9050826009600082825461108f9190612758565b925050819055506110a08482611e14565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8856040516110fe91906124a3565b60405180910390a361110e611ed8565b50600191505092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60007f000000000000000000000000000000000000000000000000000000000000000082611191919061280e565b7f00000000000000000000000000000000000000000000000000000000000000006111bc9190612758565b9050919050565b6000603c82426111d39190612868565b6111dd91906127dd565b9050919050565b60035481565b6000806402540be400836111fe919061280e565b7f00000000000000000000000000000000000000000000000000000000000000006112299190612868565b84611234919061280e565b90507f00000000000000000000000000000000000000000000000000000000000000008161126291906127dd565b91505092915050565b60006402540be400600260009054906101000a90046fffffffffffffffffffffffffffffffff1661129c9190612950565b6fffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000836112da919061280e565b6112e491906127dd565b9050919050565b6000603c82426112fb9190612868565b61130591906127dd565b9050919050565b6000606860ff167affffffffffffffffffffffffffff00000000000000000000000000836001900416908060020a82049150509050919050565b6000806000806113558561111a565b92506113626003546111c3565b90506113ae6402540be400600260009054906101000a90046fffffffffffffffffffffffffffffffff166113969190612950565b6fffffffffffffffffffffffffffffffff1682610efc565b6fffffffffffffffffffffffffffffffff16915064e8d4a510006a52b7d2dcc80cd2e40000006113de919061280e565b82846113ea919061280e565b6113f491906127dd565b9350505050919050565b600061140a6000611a4c565b905090565b600b5481565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461147257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35090565b60008060006115ca84611942565b91506115d58461130c565b90506115e182826111ea565b92505050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461166a57600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060008060008060006116c46113fe565b506116cd611f7a565b9750600060010288036116eb576000985050505050505050506117f4565b6116f488611b8a565b95506001866117039190612758565b905061170e86611163565b9150600260009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16945061174c826112eb565b92506000831115611768576117618584611b9e565b935061176c565b8493505b61177b60008560095484611d82565b965060008790806001815401808255809150506001900390600052602060002001600090919091909150556117af87612066565b507f55d243082e019fce4009ccea5368b92e436c17586a1e793c7deda16df4e5d675816040516117df91906124a3565b60405180910390a16001985050505050505050505b90565b60078054611804906126f8565b80601f0160208091040260200160405190810160405280929190818152602001828054611830906126f8565b801561187d5780601f106118525761010080835404028352916020019161187d565b820191906000526020600020905b81548152906001019060200180831161186057829003601f168201915b505050505081565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118e157600080fd5b6001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000602060ff166cffffffffffffffffff00000000836001900416908060020a82049150509050919050565b600080600061197b6116ae565b506119858461126b565b9150611992338684611def565b90508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516119f191906124a3565b60405180910390a3809250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000611a5c6003546111c3565b915060008203611a7157600092505050611b7f565b600260009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050600084118015611ab357508184105b15611abc578391505b611ac68183610efc565b600260006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550603c82611b0b919061280e565b600354611b189190612758565b60038190555080826003547fa0717e54e02bd9829db5e6e998aec0ae9de796b8d150a3cc46a92ab869697755600260009054906101000a90046fffffffffffffffffffffffffffffffff16604051611b7091906129d5565b60405180910390a46001925050505b919050565b600a5481565b600063ffffffff8260019004169050919050565b600080600064e8d4a5100091506a52b7d2dcc80cd2e40000007f0000000000000000000000000000000000000000000000000000000000000000611be291906127dd565b905060005b84811015611c2b5764e8d4a510008284611c01919061280e565b611c0b91906127dd565b83611c169190612758565b92508080611c239061289c565b915050611be7565b5064e8d4a510008583611c3e919061280e565b611c4891906127dd565b9250505092915050565b600060017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000042611ca39190612868565b611cad91906127dd565b611cb79190612758565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d3c57600080fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b6000807affffffffffffffffffffffffffff00000000000000000000000000606860ff16869060020a0216600102811790506cffffffffffffffffff00000000602060ff16859060020a02166001028117905063ffffffff83166001028117905080915050949350505050565b600080611dfc85846120f8565b50611e078484611e14565b5060019150509392505050565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008503611e705760009350505050611ed2565b611e798661111a565b92508483611e879190612758565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600193505050505b92915050565b6000806000600954905060006001600080549050611ef69190612868565b81548110611f0757611f066129f0565b5b90600052602060002001546001900491506cffffffffffffffffff000000001982169150602060ff16819060020a02821791508160010260006001600080549050611f529190612868565b81548110611f6357611f626129f0565b5b906000526020600020018190555060019250505090565b600080600080600a5481548110611f9457611f936129f0565b5b906000526020600020015491503073ffffffffffffffffffffffffffffffffffffffff1663e80952956040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381865afa158015612008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202c9190612a4b565b6fffffffffffffffffffffffffffffffff16905061204982611b8a565b811161205d57600060010292505050612063565b81925050505b90565b6000806000612074846115bc565b9150600b546120828361126b565b61208c9190612868565b90506120ba600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611e14565b506001600a60008282546120ce9190612758565b9250508190555080600b60008282546120e79190612758565b925050819055508192505050919050565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000850361215457600093505050506121f9565b61215d8661111a565b9250848310156121a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219990612ac4565b60405180910390fd5b84836121ae9190612868565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600193505050505b92915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61223981612204565b811461224457600080fd5b50565b60008135905061225681612230565b92915050565b600060208284031215612272576122716121ff565b5b600061228084828501612247565b91505092915050565b60008115159050919050565b61229e81612289565b82525050565b60006020820190506122b96000830184612295565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122f95780820151818401526020810190506122de565b83811115612308576000848401525b50505050565b6000601f19601f8301169050919050565b600061232a826122bf565b61233481856122ca565b93506123448185602086016122db565b61234d8161230e565b840191505092915050565b60006020820190508181036000830152612372818461231f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123a58261237a565b9050919050565b6123b58161239a565b81146123c057600080fd5b50565b6000813590506123d2816123ac565b92915050565b6000819050919050565b6123eb816123d8565b81146123f657600080fd5b50565b600081359050612408816123e2565b92915050565b60008060408385031215612425576124246121ff565b5b6000612433858286016123c3565b9250506020612444858286016123f9565b9150509250929050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6124738161244e565b82525050565b600060208201905061248e600083018461246a565b92915050565b61249d816123d8565b82525050565b60006020820190506124b86000830184612494565b92915050565b6000806000606084860312156124d7576124d66121ff565b5b60006124e5868287016123c3565b93505060206124f6868287016123c3565b9250506040612507868287016123f9565b9150509250925092565b600060208284031215612527576125266121ff565b5b6000612535848285016123c3565b91505092915050565b60008060408385031215612555576125546121ff565b5b6000612563858286016123f9565b9250506020612574858286016123f9565b9150509250929050565b600060208284031215612594576125936121ff565b5b60006125a2848285016123f9565b91505092915050565b6000819050919050565b6125be816125ab565b82525050565b60006020820190506125d960008301846125b5565b92915050565b6125e8816125ab565b81146125f357600080fd5b50565b600081359050612605816125df565b92915050565b600060208284031215612621576126206121ff565b5b600061262f848285016125f6565b91505092915050565b6126418161239a565b82525050565b600060208201905061265c6000830184612638565b92915050565b6000806000806080858703121561267c5761267b6121ff565b5b600061268a878288016123f9565b945050602061269b878288016123f9565b93505060406126ac878288016123f9565b92505060606126bd878288016123f9565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061271057607f821691505b602082108103612723576127226126c9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612763826123d8565b915061276e836123d8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127a3576127a2612729565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006127e8826123d8565b91506127f3836123d8565b925082612803576128026127ae565b5b828204905092915050565b6000612819826123d8565b9150612824836123d8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561285d5761285c612729565b5b828202905092915050565b6000612873826123d8565b915061287e836123d8565b92508282101561289157612890612729565b5b828203905092915050565b60006128a7826123d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128d9576128d8612729565b5b600182019050919050565b7f4552525f41434345535300000000000000000000000000000000000000000000600082015250565b600061291a600a836122ca565b9150612925826128e4565b602082019050919050565b600060208201905081810360008301526129498161290d565b9050919050565b600061295b8261244e565b91506129668361244e565b9250816fffffffffffffffffffffffffffffffff048311821515161561298f5761298e612729565b5b828202905092915050565b6000819050919050565b60006129bf6129ba6129b58461244e565b61299a565b6123d8565b9050919050565b6129cf816129a4565b82525050565b60006020820190506129ea60008301846129c6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b612a288161244e565b8114612a3357600080fd5b50565b600081519050612a4581612a1f565b92915050565b600060208284031215612a6157612a606121ff565b5b6000612a6f84828501612a36565b91505092915050565b7f4552525f4f5645525350454e4400000000000000000000000000000000000000600082015250565b6000612aae600d836122ca565b9150612ab982612a78565b602082019050919050565b60006020820190508181036000830152612add81612aa1565b905091905056fea2646970667358221220bcb99f52b4848eb84e80d8d1b7b81e0847d43a502df1061e5e47000b246eae6464736f6c634300080d0033 -\ No newline at end of file +61010060405264e8d4a510006a52b7d2dcc80cd2e400000062000023919062000407565b6080908152503480156200003657600080fd5b50604051620034973803806200349783398181016040528101906200005c919062000726565b33600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555085600690805190602001906200012f9291906200031e565b508460079080519060200190620001489291906200031e565b508360ff166008819055504260038190555060035460a08181525050603c8262000173919062000407565b60c0818152505060646a52b7d2dcc80cd2e400000062000194919062000800565b600260006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550826fffffffffffffffffffffffffffffffff1660e081815250506000620002386000600260009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1660006001620002b1640100000000026401000000009004565b9050600081908060018154018082558091505060019003906000526020600020016000909190919091505581600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050620008b5565b6000807affffffffffffffffffffffffffff00000000000000000000000000606860ff16869060020a0216600102811790506cffffffffffffffffff00000000602060ff16859060020a02166001028117905063ffffffff83166001028117905080915050949350505050565b8280546200032c9062000880565b90600052602060002090601f0160209004810192826200035057600085556200039c565b82601f106200036b57805160ff19168380011785556200039c565b828001600101855582156200039c579182015b828111156200039b5782518255916020019190600101906200037e565b5b509050620003ab9190620003af565b5090565b5b80821115620003ca576000816000905550600101620003b0565b5090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200041482620003ce565b91506200042183620003ce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200045d576200045c620003d8565b5b828202905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004d18262000486565b810181811067ffffffffffffffff82111715620004f357620004f262000497565b5b80604052505050565b60006200050862000468565b9050620005168282620004c6565b919050565b600067ffffffffffffffff82111562000539576200053862000497565b5b620005448262000486565b9050602081019050919050565b60005b838110156200057157808201518184015260208101905062000554565b8381111562000581576000848401525b50505050565b60006200059e62000598846200051b565b620004fc565b905082815260208101848484011115620005bd57620005bc62000481565b5b620005ca84828562000551565b509392505050565b600082601f830112620005ea57620005e96200047c565b5b8151620005fc84826020860162000587565b91505092915050565b600060ff82169050919050565b6200061d8162000605565b81146200062957600080fd5b50565b6000815190506200063d8162000612565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6200066a8162000643565b81146200067657600080fd5b50565b6000815190506200068a816200065f565b92915050565b6200069b81620003ce565b8114620006a757600080fd5b50565b600081519050620006bb8162000690565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006ee82620006c1565b9050919050565b6200070081620006e1565b81146200070c57600080fd5b50565b6000815190506200072081620006f5565b92915050565b60008060008060008060c0878903121562000746576200074562000472565b5b600087015167ffffffffffffffff81111562000767576200076662000477565b5b6200077589828a01620005d2565b965050602087015167ffffffffffffffff81111562000799576200079862000477565b5b620007a789828a01620005d2565b9550506040620007ba89828a016200062c565b9450506060620007cd89828a0162000679565b9350506080620007e089828a01620006aa565b92505060a0620007f389828a016200070f565b9150509295509295509295565b60006200080d8262000643565b91506200081a8362000643565b9250816fffffffffffffffffffffffffffffffff0483118215151615620008465762000845620003d8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200089957607f821691505b602082108103620008af57620008ae62000851565b5b50919050565b60805160a05160c05160e051612b696200092e60003960008181610cf001528181610f400152611c0801526000818161119001528181611a790152611ca70152600081816111bc01528181611cc80152611d0d01526000818161122901528181611261015281816112d90152611a550152612b696000f3fe608060405234801561001057600080fd5b5060043610610291576000357c010000000000000000000000000000000000000000000000000000000090048063731f237c1161016e578063a9059cbb116100e0578063e3ab207a116100a4578063e3ab207a14610870578063e54d63f7146108a0578063e8095295146108d0578063eda4e6d6146108ee578063f2fde38b1461090c578063f83da35d1461093c57610291565b8063a9059cbb146107b6578063ab28cea0146107e6578063b470aade14610804578063c0ab707714610822578063d340ef8a1461085257610291565b80638da5cb5b116101325780638da5cb5b146106e05780638f0b2d5d146106fe5780638f1df6bc1461071a57806395d89b4114610738578063983b2d56146107565780639da7d8ba1461078657610291565b8063731f237c1461063857806374bedb951461065657806379ba50971461067457806384dde4af146106925780638d34855a146106b057610291565b806340452d911161020757806358b2833b116101cb57806358b2833b1461052a5780636721d4ef146105485780636787a9be146105785780636a2d094e146105a85780636ffa8a05146105d857806370a082311461060857610291565b806340452d911461043a578063449a52f81461046a57806347a505171461049a5780634abfbba2146104ca57806351b4541c146104fa57610291565b80631989c6a8116102595780631989c6a814610350578063229ba1971461036e57806323b872dd1461038c5780633092afd5146103bc57806331333487146103ec578063313ce5671461041c57610291565b806301ffc9a71461029657806306fdde03146102c6578063095ea7b3146102e457806309f28f3c1461031457806318160ddd14610332575b600080fd5b6102b060048036038101906102ab91906122ab565b61096c565b6040516102bd91906122f3565b60405180910390f35b6102ce610b12565b6040516102db91906123a7565b60405180910390f35b6102fe60048036038101906102f9919061245d565b610ba0565b60405161030b91906122f3565b60405180910390f35b61031c610cba565b60405161032991906124c8565b60405180910390f35b61033a610cdc565b60405161034791906124f2565b60405180910390f35b610358610ce2565b60405161036591906124f2565b60405180910390f35b610376610cee565b60405161038391906124f2565b60405180910390f35b6103a660048036038101906103a1919061250d565b610d12565b6040516103b391906122f3565b60405180910390f35b6103d660048036038101906103d19190612560565b610e32565b6040516103e391906122f3565b60405180910390f35b6104066004803603810190610401919061258d565b610f25565b60405161041391906124f2565b60405180910390f35b610424610fd9565b60405161043191906124f2565b60405180910390f35b610454600480360381019061044f91906125cd565b610fdf565b6040516104619190612613565b60405180910390f35b610484600480360381019061047f919061245d565b611003565b60405161049191906122f3565b60405180910390f35b6104b460048036038101906104af9190612560565b611143565b6040516104c191906124f2565b60405180910390f35b6104e460048036038101906104df91906125cd565b61118c565b6040516104f191906124f2565b60405180910390f35b610514600480360381019061050f91906125cd565b6111ec565b60405161052191906124f2565b60405180910390f35b61053261120d565b60405161053f91906124f2565b60405180910390f35b610562600480360381019061055d919061258d565b611213565b60405161056f91906124f2565b60405180910390f35b610592600480360381019061058d91906125cd565b611294565b60405161059f91906124f2565b60405180910390f35b6105c260048036038101906105bd91906125cd565b611314565b6040516105cf91906124f2565b60405180910390f35b6105f260048036038101906105ed919061265a565b611335565b6040516105ff91906124f2565b60405180910390f35b610622600480360381019061061d9190612560565b61136f565b60405161062f91906124f2565b60405180910390f35b610640611427565b60405161064d91906122f3565b60405180910390f35b61065e611438565b60405161066b91906124f2565b60405180910390f35b61067c61143e565b60405161068991906122f3565b60405180910390f35b61069a6115e5565b6040516106a79190612696565b60405180910390f35b6106ca60048036038101906106c5919061265a565b61160b565b6040516106d791906124f2565b60405180910390f35b6106e8611639565b6040516106f59190612696565b60405180910390f35b61071860048036038101906107139190612560565b61165f565b005b6107226116fd565b60405161072f91906122f3565b60405180910390f35b610740611846565b60405161074d91906123a7565b60405180910390f35b610770600480360381019061076b9190612560565b6118d4565b60405161077d91906122f3565b60405180910390f35b6107a0600480360381019061079b919061265a565b611991565b6040516107ad91906124f2565b60405180910390f35b6107d060048036038101906107cb919061245d565b6119bd565b6040516107dd91906122f3565b60405180910390f35b6107ee611a53565b6040516107fb91906124f2565b60405180910390f35b61080c611a77565b60405161081991906124f2565b60405180910390f35b61083c600480360381019061083791906125cd565b611a9b565b60405161084991906122f3565b60405180910390f35b61085a611bd3565b60405161086791906124f2565b60405180910390f35b61088a6004803603810190610885919061265a565b611bd9565b60405161089791906124f2565b60405180910390f35b6108ba60048036038101906108b5919061258d565b611bed565b6040516108c791906124f2565b60405180910390f35b6108d8611ca1565b6040516108e591906124c8565b60405180910390f35b6108f6611d0b565b60405161090391906124f2565b60405180910390f35b61092660048036038101906109219190612560565b611d2f565b60405161093391906122f3565b60405180910390f35b610956600480360381019061095191906126b1565b611dd1565b6040516109639190612613565b60405180910390f35b600063c6bb4b707c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036109c05760019050610b0d565b63449a52f87c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610a125760019050610b0d565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610a645760019050610b0d565b639493f8b27c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610ab65760019050610b0d565b6337a47be47c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610b085760019050610b0d565b600090505b919050565b60068054610b1f90612747565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4b90612747565b8015610b985780601f10610b6d57610100808354040283529160200191610b98565b820191906000526020600020905b815481529060010190602001808311610b7b57829003601f168201915b505050505081565b600080610bab6116fd565b50610bb583611294565b905080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c4391906127a7565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610ca791906124f2565b60405180910390a3600191505092915050565b600260009054906101000a90046fffffffffffffffffffffffffffffffff1681565b60095481565b60008080549050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000610d1f6116fd565b50610d2984611294565b915081600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610db457600080fd5b610dbf868684611e3e565b90508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610e1e91906124f2565b60405180910390a380925050509392505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ebb57503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b610ec457600080fd5b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b600080600064e8d4a5100091506a52b7d2dcc80cd2e40000007f0000000000000000000000000000000000000000000000000000000000000000610f69919061282c565b905060005b84811015610fb25764e8d4a510008284610f88919061285d565b610f92919061282c565b83610f9d91906128b7565b92508080610faa906128eb565b915050610f6e565b5064e8d4a510008583610fc5919061285d565b610fcf919061282c565b9250505092915050565b60085481565b60008181548110610fef57600080fd5b906000526020600020016000915090505481565b600080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611092576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110899061297f565b60405180910390fd5b61109a6116fd565b506110a483611294565b905082600960008282546110b891906127a7565b925050819055506110c98482611e63565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f88560405161112791906124f2565b60405180910390a3611137611f27565b50600191505092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60007f0000000000000000000000000000000000000000000000000000000000000000826111ba919061285d565b7f00000000000000000000000000000000000000000000000000000000000000006111e591906127a7565b9050919050565b6000603c82426111fc91906128b7565b611206919061282c565b9050919050565b60035481565b6000806402540be40083611227919061285d565b7f000000000000000000000000000000000000000000000000000000000000000061125291906128b7565b8461125d919061285d565b90507f00000000000000000000000000000000000000000000000000000000000000008161128b919061282c565b91505092915050565b60006402540be400600260009054906101000a90046fffffffffffffffffffffffffffffffff166112c5919061299f565b6fffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000083611303919061285d565b61130d919061282c565b9050919050565b6000603c824261132491906128b7565b61132e919061282c565b9050919050565b6000606860ff167affffffffffffffffffffffffffff00000000000000000000000000836001900416908060020a82049150509050919050565b60008060008061137e85611143565b925061138b6003546111ec565b90506113d76402540be400600260009054906101000a90046fffffffffffffffffffffffffffffffff166113bf919061299f565b6fffffffffffffffffffffffffffffffff1682610f25565b6fffffffffffffffffffffffffffffffff16915064e8d4a510006a52b7d2dcc80cd2e4000000611407919061285d565b8284611413919061285d565b61141d919061282c565b9350505050919050565b60006114336000611a9b565b905090565b600b5481565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461149b57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600061161984611991565b915061162484611335565b90506116308282611213565b92505050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116b957600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000806000806000806000611713611427565b5061171c611fc9565b97506000600102880361173a57600098505050505050505050611843565b61174388611bd9565b955060018661175291906127a7565b905061175d8661118c565b9150600260009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16945061179b82611314565b925060008311156117b7576117b08584611bed565b93506117bb565b8493505b6117ca60008560095484611dd1565b965060008790806001815401808255809150506001900390600052602060002001600090919091909150556117fe876120b5565b507f55d243082e019fce4009ccea5368b92e436c17586a1e793c7deda16df4e5d6758160405161182e91906124f2565b60405180910390a16001985050505050505050505b90565b6007805461185390612747565b80601f016020809104026020016040519081016040528092919081815260200182805461187f90612747565b80156118cc5780601f106118a1576101008083540402835291602001916118cc565b820191906000526020600020905b8154815290600101906020018083116118af57829003601f168201915b505050505081565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461193057600080fd5b6001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000602060ff166cffffffffffffffffff00000000836001900416908060020a82049150509050919050565b60008060006119ca6116fd565b506119d484611294565b91506119e1338684611e3e565b90508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611a4091906124f2565b60405180910390a3809250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000611aab6003546111ec565b915060008203611ac057600092505050611bce565b600260009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050600084118015611b0257508184105b15611b0b578391505b611b158183610f25565b600260006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550603c82611b5a919061285d565b600354611b6791906127a7565b60038190555080826003547fa0717e54e02bd9829db5e6e998aec0ae9de796b8d150a3cc46a92ab869697755600260009054906101000a90046fffffffffffffffffffffffffffffffff16604051611bbf9190612a24565b60405180910390a46001925050505b919050565b600a5481565b600063ffffffff8260019004169050919050565b600080600064e8d4a5100091506a52b7d2dcc80cd2e40000007f0000000000000000000000000000000000000000000000000000000000000000611c31919061282c565b905060005b84811015611c7a5764e8d4a510008284611c50919061285d565b611c5a919061282c565b83611c6591906127a7565b92508080611c72906128eb565b915050611c36565b5064e8d4a510008583611c8d919061285d565b611c97919061282c565b9250505092915050565b600060017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000042611cf291906128b7565b611cfc919061282c565b611d0691906127a7565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d8b57600080fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b6000807affffffffffffffffffffffffffff00000000000000000000000000606860ff16869060020a0216600102811790506cffffffffffffffffff00000000602060ff16859060020a02166001028117905063ffffffff83166001028117905080915050949350505050565b600080611e4b8584612147565b50611e568484611e63565b5060019150509392505050565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008503611ebf5760009350505050611f21565b611ec886611143565b92508483611ed691906127a7565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600193505050505b92915050565b6000806000600954905060006001600080549050611f4591906128b7565b81548110611f5657611f55612a3f565b5b90600052602060002001546001900491506cffffffffffffffffff000000001982169150602060ff16819060020a02821791508160010260006001600080549050611fa191906128b7565b81548110611fb257611fb1612a3f565b5b906000526020600020018190555060019250505090565b600080600080600a5481548110611fe357611fe2612a3f565b5b906000526020600020015491503073ffffffffffffffffffffffffffffffffffffffff1663e80952956040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381865afa158015612057573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207b9190612a9a565b6fffffffffffffffffffffffffffffffff16905061209882611bd9565b81116120ac576000600102925050506120b2565b81925050505b90565b60008060006120c38461160b565b9150600b546120d183611294565b6120db91906128b7565b9050612109600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611e63565b506001600a600082825461211d91906127a7565b9250508190555080600b600082825461213691906127a7565b925050819055508192505050919050565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600085036121a35760009350505050612248565b6121ac86611143565b9250848310156121f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e890612b13565b60405180910390fd5b84836121fd91906128b7565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600193505050505b92915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61228881612253565b811461229357600080fd5b50565b6000813590506122a58161227f565b92915050565b6000602082840312156122c1576122c061224e565b5b60006122cf84828501612296565b91505092915050565b60008115159050919050565b6122ed816122d8565b82525050565b600060208201905061230860008301846122e4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561234857808201518184015260208101905061232d565b83811115612357576000848401525b50505050565b6000601f19601f8301169050919050565b60006123798261230e565b6123838185612319565b935061239381856020860161232a565b61239c8161235d565b840191505092915050565b600060208201905081810360008301526123c1818461236e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123f4826123c9565b9050919050565b612404816123e9565b811461240f57600080fd5b50565b600081359050612421816123fb565b92915050565b6000819050919050565b61243a81612427565b811461244557600080fd5b50565b60008135905061245781612431565b92915050565b600080604083850312156124745761247361224e565b5b600061248285828601612412565b925050602061249385828601612448565b9150509250929050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6124c28161249d565b82525050565b60006020820190506124dd60008301846124b9565b92915050565b6124ec81612427565b82525050565b600060208201905061250760008301846124e3565b92915050565b6000806000606084860312156125265761252561224e565b5b600061253486828701612412565b935050602061254586828701612412565b925050604061255686828701612448565b9150509250925092565b6000602082840312156125765761257561224e565b5b600061258484828501612412565b91505092915050565b600080604083850312156125a4576125a361224e565b5b60006125b285828601612448565b92505060206125c385828601612448565b9150509250929050565b6000602082840312156125e3576125e261224e565b5b60006125f184828501612448565b91505092915050565b6000819050919050565b61260d816125fa565b82525050565b60006020820190506126286000830184612604565b92915050565b612637816125fa565b811461264257600080fd5b50565b6000813590506126548161262e565b92915050565b6000602082840312156126705761266f61224e565b5b600061267e84828501612645565b91505092915050565b612690816123e9565b82525050565b60006020820190506126ab6000830184612687565b92915050565b600080600080608085870312156126cb576126ca61224e565b5b60006126d987828801612448565b94505060206126ea87828801612448565b93505060406126fb87828801612448565b925050606061270c87828801612448565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061275f57607f821691505b60208210810361277257612771612718565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127b282612427565b91506127bd83612427565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127f2576127f1612778565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061283782612427565b915061284283612427565b925082612852576128516127fd565b5b828204905092915050565b600061286882612427565b915061287383612427565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128ac576128ab612778565b5b828202905092915050565b60006128c282612427565b91506128cd83612427565b9250828210156128e0576128df612778565b5b828203905092915050565b60006128f682612427565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361292857612927612778565b5b600182019050919050565b7f4552525f41434345535300000000000000000000000000000000000000000000600082015250565b6000612969600a83612319565b915061297482612933565b602082019050919050565b600060208201905081810360008301526129988161295c565b9050919050565b60006129aa8261249d565b91506129b58361249d565b9250816fffffffffffffffffffffffffffffffff04831182151516156129de576129dd612778565b5b828202905092915050565b6000819050919050565b6000612a0e612a09612a048461249d565b6129e9565b612427565b9050919050565b612a1e816129f3565b82525050565b6000602082019050612a396000830184612a15565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b612a778161249d565b8114612a8257600080fd5b50565b600081519050612a9481612a6e565b92915050565b600060208284031215612ab057612aaf61224e565b5b6000612abe84828501612a85565b91505092915050565b7f4552525f4f5645525350454e4400000000000000000000000000000000000000600082015250565b6000612afd600d83612319565b9150612b0882612ac7565b602082019050919050565b60006020820190508181036000830152612b2c81612af0565b905091905056fea264697066735822122065b90287fa7f2775639ada07b04e464a1dddb8f8c5f37cf825ec850b55ac7deb64736f6c634300080d0033 +\ No newline at end of file diff --git a/python/erc20_demurrage_token/data/DemurrageTokenSingleNocap.json b/python/erc20_demurrage_token/data/DemurrageTokenSingleNocap.json @@ -1 +1 @@ -[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"uint128","name":"_taxLevelMinute","type":"uint128"},{"internalType":"uint256","name":"_periodMinutes","type":"uint256"},{"internalType":"address","name":"_defaultSinkAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_foo","type":"bytes32"}],"name":"Debug","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_period","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_periodCount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_oldAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_newAmount","type":"uint256"}],"name":"Decayed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_minter","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_period","type":"uint256"}],"name":"Period","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":true,"internalType":"uint256","name":"_period","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Redistribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"actualPeriod","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"addMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applyDemurrage","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rounds","type":"uint256"}],"name":"applyDemurrageLimited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"baseBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"changePeriod","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"decayBy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"demurrageAmount","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"}],"name":"demurrageCycles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"demurrageTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_supply","type":"uint256"},{"internalType":"uint256","name":"_demurrageAmount","type":"uint256"}],"name":"getDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_redistribution","type":"bytes32"}],"name":"getDistributionFromRedistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lastTimestamp","type":"uint256"}],"name":"getMinutesDelta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_periodCount","type":"uint256"}],"name":"getPeriodTimeDelta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"growBy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mintTo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redistributionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"redistributions","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"removeMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resolutionFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sinkAddress","type":"address"}],"name":"setSinkAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"toBaseAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_participants","type":"uint256"},{"internalType":"uint256","name":"_demurrageModifierPpm","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"toRedistribution","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"redistribution","type":"bytes32"}],"name":"toRedistributionDemurrageModifier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"redistribution","type":"bytes32"}],"name":"toRedistributionPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"redistribution","type":"bytes32"}],"name":"toRedistributionSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSink","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] +[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"uint128","name":"_taxLevelMinute","type":"uint128"},{"internalType":"uint256","name":"_periodMinutes","type":"uint256"},{"internalType":"address","name":"_defaultSinkAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_foo","type":"bytes32"}],"name":"Debug","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_period","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_periodCount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_oldAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_newAmount","type":"uint256"}],"name":"Decayed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_minter","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_period","type":"uint256"}],"name":"Period","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":true,"internalType":"uint256","name":"_period","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Redistribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"actualPeriod","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"addMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applyDemurrage","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rounds","type":"uint256"}],"name":"applyDemurrageLimited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"baseBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"changePeriod","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"decayBy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"demurrageAmount","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"}],"name":"demurrageCycles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"demurrageTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_supply","type":"uint256"},{"internalType":"uint256","name":"_demurrageAmount","type":"uint256"}],"name":"getDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_redistribution","type":"bytes32"}],"name":"getDistributionFromRedistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lastTimestamp","type":"uint256"}],"name":"getMinutesDelta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_periodCount","type":"uint256"}],"name":"getPeriodTimeDelta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"growBy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mintTo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redistributionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"redistributions","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"removeMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resolutionFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sinkAddress","type":"address"}],"name":"setSinkAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sinkAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"toBaseAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_participants","type":"uint256"},{"internalType":"uint256","name":"_demurrageModifierPpm","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"toRedistribution","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"redistribution","type":"bytes32"}],"name":"toRedistributionDemurrageModifier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"redistribution","type":"bytes32"}],"name":"toRedistributionPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"redistribution","type":"bytes32"}],"name":"toRedistributionSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSink","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] diff --git a/python/run_tests.sh b/python/run_tests.sh @@ -22,7 +22,7 @@ done modes=(SingleNocap) # other contracts need to be updted for m in ${modes[@]}; do ERC20_DEMURRAGE_TOKEN_TEST_MODE=$m python tests/test_redistribution_unit.py - #ERC20_DEMURRAGE_TOKEN_TEST_MODE=$m python tests/test_redistribution_single.py + ERC20_DEMURRAGE_TOKEN_TEST_MODE=$m python tests/test_redistribution_single.py done modes=(MultiCap SingleCap) diff --git a/solidity/DemurrageTokenSingleNocap.sol b/solidity/DemurrageTokenSingleNocap.sol @@ -72,7 +72,7 @@ contract DemurrageTokenSingleCap { mapping (address => mapping (address => uint256 ) ) allowance; // holder -> spender -> amount (amount is subject to demurrage) // Address to send unallocated redistribution tokens - address sinkAddress; + address public sinkAddress; // Implements ERC20 event Transfer(address indexed _from, address indexed _to, uint256 _value);