erc20-transfer-authorization

Simple approval escrow for ERC20 spending
Log | Files | Refs

commit da016579a5e32eacfaf6b42b33afb185f8d31bc7
parent 7cb9e0baf0ab5db2dff71d2fb7279e2218e3cad0
Author: lash <dev@holbrook.no>
Date:   Fri, 17 Mar 2023 22:19:04 +0000

Remove solidity compile warnings

Diffstat:
Mpython/CHANGELOG | 5++++-
Mpython/erc20_transfer_authorization/data/ERC20TransferAuthorization.bin | 4++--
Mpython/setup.cfg | 2+-
Msolidity/ERC20TransferAuthorization.sol | 7+++++--
4 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/python/CHANGELOG b/python/CHANGELOG @@ -1,4 +1,7 @@ - +- 0.4.2 + * Remove solidity compile warnings +- 0.4.1 + * Upgrade deps - 0.3.2-pending * Move to chainlib-eth - 0.3.1-unreleased diff --git a/python/erc20_transfer_authorization/data/ERC20TransferAuthorization.bin b/python/erc20_transfer_authorization/data/ERC20TransferAuthorization.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260146101000a81548163ffffffff021916908363ffffffff1602179055506001600260186101000a81548163ffffffff021916908363ffffffff160217905550620000b133620000d6640100000000026401000000009004565b50620000cf60016000620002ef640100000000026401000000009004565b50620005e7565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146200016b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001629062000481565b60405180910390fd5b60001515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151462000201576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001f890620004f3565b60405180910390fd5b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003600881819054906101000a900463ffffffff16809291906200027d9062000554565b91906101000a81548163ffffffff021916908363ffffffff160217905550507f6ff3aa2ea7b53070f6d9d07a445d338d89e8edef44250ffa8be19f53910d4a2e82604051620002cd9190620005ca565b60405180910390a1600360089054906101000a900463ffffffff169050919050565b6000600360089054906101000a900463ffffffff1663ffffffff168363ffffffff1611156200031d57600080fd5b60008363ffffffff16116200033157600080fd5b600360089054906101000a900463ffffffff1663ffffffff168263ffffffff1611156200035d57600080fd5b82600360006101000a81548163ffffffff021916908363ffffffff16021790555081600360046101000a81548163ffffffff021916908363ffffffff160217905550600360089054906101000a900463ffffffff1663ffffffff16600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff167fe77378573ac0f86c7fa8dd116b1fa17cf9c328a09a0c56a2c42d786103ac5bc360405160405180910390a46001905092915050565b600082825260208201905092915050565b7f4552525f41434345535300000000000000000000000000000000000000000000600082015250565b600062000469600a8362000420565b9150620004768262000431565b602082019050919050565b600060208201905081810360008301526200049c816200045a565b9050919050565b7f4552525f4e4f54464f554e440000000000000000000000000000000000000000600082015250565b6000620004db600c8362000420565b9150620004e882620004a3565b602082019050919050565b600060208201905081810360008301526200050e81620004cc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff82169050919050565b6000620005618262000544565b915063ffffffff82036200057a576200057962000515565b5b600182019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005b28262000585565b9050919050565b620005c481620005a5565b82525050565b6000602082019050620005e16000830184620005b9565b92915050565b61284580620005f76000396000f3fe608060405234801561001057600080fd5b5060043610610154576000357c010000000000000000000000000000000000000000000000000000000090048063614f427f116100d55780637ca548c6116100995780637ca548c6146103d65780637f4dbec1146103f45780638da5cb5b14610424578063da2824a814610442578063ed71262a14610472578063fdd33d68146104a257610154565b8063614f427f146102f8578063655c013114610316578063669cd53b1461034657806366a5267214610376578063736c0d5b146103a657610154565b80631703a0181161011c5780631703a0181461022c5780632b29ba231461024a578063476ce3ad1461027a5780635356dddc146102aa57806357ec347a146102da57610154565b806306661abd1461015957806308ae6377146101775780630ab469b0146101955780630ac94000146101cc57806310858c67146101fc575b600080fd5b6101616104d2565b60405161016e9190612044565b60405180910390f35b61017f6104e8565b60405161018c9190612044565b60405180910390f35b6101af60048036038101906101aa9190612090565b6105df565b6040516101c3989796959493929190612133565b60405180910390f35b6101e660048036038101906101e19190612090565b6106c4565b6040516101f391906121cc565b60405180910390f35b61021660048036038101906102119190612090565b610a12565b6040516102239190612044565b60405180910390f35b610234610b37565b6040516102419190612044565b60405180910390f35b610264600480360381019061025f9190612213565b610b4d565b60405161027191906121cc565b60405180910390f35b610294600480360381019061028f9190612090565b610ba3565b6040516102a19190612044565b60405180910390f35b6102c460048036038101906102bf9190612213565b610e2d565b6040516102d19190612044565b60405180910390f35b6102e26110e9565b6040516102ef9190612044565b60405180910390f35b61030061110f565b60405161030d9190612044565b60405180910390f35b610330600480360381019061032b9190612240565b611125565b60405161033d919061229c565b60405180910390f35b610360600480360381019061035b91906122b7565b611154565b60405161036d91906121cc565b60405180910390f35b610390600480360381019061038b9190612323565b611282565b60405161039d9190612350565b60405180910390f35b6103c060048036038101906103bb9190612213565b6112c1565b6040516103cd91906121cc565b60405180910390f35b6103de6112e1565b6040516103eb9190612044565b60405180910390f35b61040e60048036038101906104099190612090565b6112f7565b60405161041b9190612044565b60405180910390f35b61042c6115a0565b6040516104399190612350565b60405180910390f35b61045c60048036038101906104579190612213565b6115c6565b6040516104699190612044565b60405180910390f35b61048c6004803603810190610487919061236b565b6117d5565b6040516104999190612044565b60405180910390f35b6104bc60048036038101906104b79190612090565b611ad4565b6040516104c991906121cc565b60405180910390f35b6002601c9054906101000a900463ffffffff1681565b600080600260189054906101000a900463ffffffff16600260149054906101000a900463ffffffff1661051b9190612401565b63ffffffff16036105c6576001600260149054906101000a900463ffffffff1663ffffffff160361054f57600090506105dc565b600060016000600260189054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020905060008160040160009054906101000a900460ff1660ff1611156105bc57600260189054906101000a900463ffffffff169150506105dc565b60009150506105dc565b600260189054906101000a900463ffffffff1690505b90565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160149054906101000a900463ffffffff16908060030160189054906101000a900463ffffffff169080600301601c9054906101000a900463ffffffff16908060040160009054906101000a900460ff16905088565b600080600160008463ffffffff1663ffffffff168152602001908152602001600020905060008160030160149054906101000a900463ffffffff1663ffffffff1611610745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073c90612496565b60405180910390fd5b6003600b8260040160009054906101000a900460ff161660ff161461079f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079690612502565b60405180910390fd5b6107bc8160030160149054906101000a900463ffffffff16611e99565b5060088160040160008282829054906101000a900460ff161792506101000a81548160ff021916908360ff1602179055506000808260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856000015460405160240161088c93929190612522565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161091691906125ca565b6000604051808303816000865af19150503d8060008114610953576040519150601f19603f3d011682016040523d82523d6000602084013e610958565b606091505b5091509150811561099f577fa80d5e3445b11533e6c584c506299aa14168f2ad1fe65b0266e7d622c5461c30856040516109929190612044565b60405180910390a1610a07565b60108360040160008282829054906101000a900460ff161792506101000a81548160ff021916908360ff1602179055507f8f15e24c8a8ecaa6b067f0cd2c220532e6496f53b2ac3263129d1496cb6f192e856040516109fe9190612044565b60405180910390a15b819350505050919050565b600080600260149054906101000a900463ffffffff1663ffffffff16600260189054906101000a900463ffffffff1663ffffffff1603610a56576000915050610b32565b6000600260189054906101000a900463ffffffff1690505b600260149054906101000a900463ffffffff1663ffffffff168163ffffffff161015610b2b576000600160008363ffffffff1663ffffffff1681526020019081526020016000209050600160078260040160009054906101000a900460ff161660ff1603610b17578463ffffffff168363ffffffff1603610b08578060030160149054906101000a900463ffffffff169350505050610b32565b8280610b13906125e1565b9350505b508080610b23906125e1565b915050610a6e565b5060009150505b919050565b600360009054906101000a900463ffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890612659565b60405180910390fd5b60008060008463ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460000b60000b14610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd6906126c5565b60405180910390fd5b6000600160008463ffffffff1663ffffffff168152602001908152602001600020905060018160040160009054906101000a900460ff1660ff1614610d2357600080fd5b60016000808360030160149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360000b60ff16021790555080600301601881819054906101000a900463ffffffff1680929190610dd3906125e1565b91906101000a81548163ffffffff021916908363ffffffff16021790555050610e0f8160030160149054906101000a900463ffffffff16611ad4565b508060030160189054906101000a900463ffffffff16915050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690612659565b60405180910390fd5b60011515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610f52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4990612731565b60405180910390fd5b600360009054906101000a900463ffffffff1663ffffffff16600360089054906101000a900463ffffffff1663ffffffff16118015610fc05750600360049054906101000a900463ffffffff1663ffffffff16600360089054906101000a900463ffffffff1663ffffffff16115b610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff69061279d565b60405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003600881819054906101000a900463ffffffff1680929190611079906127bd565b91906101000a81548163ffffffff021916908363ffffffff160217905550507f86e5bbceda94081c32220d685f37cc4e3ea7bb0be2dfbf0cb703579505a5390e826040516110c79190612350565b60405180910390a1600360089054906101000a900463ffffffff169050919050565b60006001600260149054906101000a900463ffffffff1661110a9190612401565b905090565b600360049054906101000a900463ffffffff1681565b60006020528160005260406000206020528060005260406000206000915091509054906101000a900460000b81565b6000600360089054906101000a900463ffffffff1663ffffffff168363ffffffff16111561118157600080fd5b60008363ffffffff161161119457600080fd5b600360089054906101000a900463ffffffff1663ffffffff168263ffffffff1611156111bf57600080fd5b82600360006101000a81548163ffffffff021916908363ffffffff16021790555081600360046101000a81548163ffffffff021916908363ffffffff160217905550600360089054906101000a900463ffffffff1663ffffffff16600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff167fe77378573ac0f86c7fa8dd116b1fa17cf9c328a09a0c56a2c42d786103ac5bc360405160405180910390a46001905092915050565b6005818154811061129257600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b600360089054906101000a900463ffffffff1681565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137c90612659565b60405180910390fd5b60008060008463ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460000b60000b14611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a906126c5565b60405180910390fd5b6000600160008463ffffffff1663ffffffff168152602001908152602001600020905060018160040160009054906101000a900460ff1660ff161461147757600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000808360030160149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360000b60ff16021790555080600301601c81819054906101000a900463ffffffff1680929190611546906125e1565b91906101000a81548163ffffffff021916908363ffffffff160217905550506115828160030160149054906101000a900463ffffffff16611ad4565b5080600301601c9054906101000a900463ffffffff16915050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f90612659565b60405180910390fd5b60001515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e290612731565b60405180910390fd5b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003600881819054906101000a900463ffffffff1680929190611765906125e1565b91906101000a81548163ffffffff021916908363ffffffff160217905550507f6ff3aa2ea7b53070f6d9d07a445d338d89e8edef44250ffa8be19f53910d4a2e826040516117b39190612350565b60405180910390a1600360089054906101000a900463ffffffff169050919050565b60008060016000600260149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000209050600260149054906101000a900463ffffffff168160030160146101000a81548163ffffffff021916908363ffffffff160217905550848160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550858160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082816000018190555060018160040160006101000a81548160ff021916908360ff1602179055506002601c81819054906101000a900463ffffffff1680929190611952906125e1565b91906101000a81548163ffffffff021916908363ffffffff160217905550506002601481819054906101000a900463ffffffff1680929190611993906125e1565b91906101000a81548163ffffffff021916908363ffffffff160217905550508060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f3ba7a259b57ae3d653287762394374c856528591f691ecd6494021fdcea00f2484600001548560030160149054906101000a900463ffffffff16604051611aac9291906127e6565b60405180910390a48060030160149054906101000a900463ffffffff16915050949350505050565b6000806000600160008563ffffffff1663ffffffff168152602001908152602001600020905060018160040160009054906101000a900460ff1660ff161080611b345750600060068260040160009054906101000a900460ff161660ff16115b15611b43578192505050611e94565b600360009054906101000a900463ffffffff1663ffffffff168160030160189054906101000a900463ffffffff1663ffffffff1610611c325760028160040160008282829054906101000a900460ff161792506101000a81548160ff021916908360ff16021790555080600301601c9054906101000a900463ffffffff1663ffffffff168160030160189054906101000a900463ffffffff1663ffffffff168260030160149054906101000a900463ffffffff1663ffffffff167f7a17acca3819c1012204b2d019c0ee13bb7e5cf151111030329219582ba83f3160405160405180910390a460019150611e8e565b6000600360049054906101000a900463ffffffff1663ffffffff16118015611c8c5750600360049054906101000a900463ffffffff1663ffffffff1681600301601c9054906101000a900463ffffffff1663ffffffff1610155b15611d655760048160040160008282829054906101000a900460ff161792506101000a81548160ff021916908360ff160217905550611cde8160030160149054906101000a900463ffffffff16611e99565b5080600301601c9054906101000a900463ffffffff1663ffffffff168160030160189054906101000a900463ffffffff1663ffffffff168260030160149054906101000a900463ffffffff1663ffffffff167f4bdd2d0e6caefafbf833eda0d32f2dcb0e7a621e3e7b87b2a17c12090edbc0d660405160405180910390a460019150611e8d565b600360009054906101000a900463ffffffff1663ffffffff1681600301601c9054906101000a900463ffffffff16600360089054906101000a900463ffffffff16611db09190612401565b63ffffffff161015611e8c5760048160040160008282829054906101000a900460ff161792506101000a81548160ff021916908360ff160217905550611e098160030160149054906101000a900463ffffffff16611e99565b5080600301601c9054906101000a900463ffffffff1663ffffffff168160030160189054906101000a900463ffffffff1663ffffffff168260030160149054906101000a900463ffffffff1663ffffffff167f3c478de516aa199022ddcd594a6e3b7f03a3e23bfcafd6143adceb687a8e38ea60405160405180910390a4600191505b5b5b81925050505b919050565b60006002601c81819054906101000a900463ffffffff1680929190611ebd906127bd565b91906101000a81548163ffffffff021916908363ffffffff1602179055505060006002601c9054906101000a900463ffffffff1663ffffffff161115611f9f57600260189054906101000a900463ffffffff1663ffffffff168263ffffffff1603611f9a576000611f2e6000610a12565b905060008163ffffffff1603611f7657600260149054906101000a900463ffffffff16600260186101000a81548163ffffffff021916908363ffffffff160217905550611f98565b80600260186101000a81548163ffffffff021916908363ffffffff1602179055505b505b61200b565b600260149054906101000a900463ffffffff1663ffffffff16600260189054906101000a900463ffffffff1663ffffffff161461200a57600260149054906101000a900463ffffffff16600260186101000a81548163ffffffff021916908363ffffffff1602179055505b5b600260189054906101000a900463ffffffff169050919050565b600063ffffffff82169050919050565b61203e81612025565b82525050565b60006020820190506120596000830184612035565b92915050565b600080fd5b61206d81612025565b811461207857600080fd5b50565b60008135905061208a81612064565b92915050565b6000602082840312156120a6576120a561205f565b5b60006120b48482850161207b565b91505092915050565b6000819050919050565b6120d0816120bd565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612101826120d6565b9050919050565b612111816120f6565b82525050565b600060ff82169050919050565b61212d81612117565b82525050565b600061010082019050612149600083018b6120c7565b612156602083018a612108565b6121636040830189612108565b6121706060830188612108565b61217d6080830187612035565b61218a60a0830186612035565b61219760c0830185612035565b6121a460e0830184612124565b9998505050505050505050565b60008115159050919050565b6121c6816121b1565b82525050565b60006020820190506121e160008301846121bd565b92915050565b6121f0816120f6565b81146121fb57600080fd5b50565b60008135905061220d816121e7565b92915050565b6000602082840312156122295761222861205f565b5b6000612237848285016121fe565b91505092915050565b600080604083850312156122575761225661205f565b5b60006122658582860161207b565b9250506020612276858286016121fe565b9150509250929050565b60008160000b9050919050565b61229681612280565b82525050565b60006020820190506122b1600083018461228d565b92915050565b600080604083850312156122ce576122cd61205f565b5b60006122dc8582860161207b565b92505060206122ed8582860161207b565b9150509250929050565b612300816120bd565b811461230b57600080fd5b50565b60008135905061231d816122f7565b92915050565b6000602082840312156123395761233861205f565b5b60006123478482850161230e565b91505092915050565b60006020820190506123656000830184612108565b92915050565b600080600080608085870312156123855761238461205f565b5b6000612393878288016121fe565b94505060206123a4878288016121fe565b93505060406123b5878288016121fe565b92505060606123c68782880161230e565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061240c82612025565b915061241783612025565b9250828203905063ffffffff811115612433576124326123d2565b5b92915050565b600082825260208201905092915050565b7f4552525f494e56414c49445f5245515545535400000000000000000000000000600082015250565b6000612480601383612439565b915061248b8261244a565b602082019050919050565b600060208201905081810360008301526124af81612473565b9050919050565b7f4552525f4e4f545f454e444f5253454400000000000000000000000000000000600082015250565b60006124ec601083612439565b91506124f7826124b6565b602082019050919050565b6000602082019050818103600083015261251b816124df565b9050919050565b60006060820190506125376000830186612108565b6125446020830185612108565b61255160408301846120c7565b949350505050565b600081519050919050565b600081905092915050565b60005b8381101561258d578082015181840152602081019050612572565b60008484015250505050565b60006125a482612559565b6125ae8185612564565b93506125be81856020860161256f565b80840191505092915050565b60006125d68284612599565b915081905092915050565b60006125ec82612025565b915063ffffffff8203612602576126016123d2565b5b600182019050919050565b7f4552525f41434345535300000000000000000000000000000000000000000000600082015250565b6000612643600a83612439565b915061264e8261260d565b602082019050919050565b6000602082019050818103600083015261267281612636565b9050919050565b7f4552525f414c5245414459564f54454400000000000000000000000000000000600082015250565b60006126af601083612439565b91506126ba82612679565b602082019050919050565b600060208201905081810360008301526126de816126a2565b9050919050565b7f4552525f4e4f54464f554e440000000000000000000000000000000000000000600082015250565b600061271b600c83612439565b9150612726826126e5565b602082019050919050565b6000602082019050818103600083015261274a8161270e565b9050919050565b7f4552525f5245445543455f5448524553484f4c445f4649525354000000000000600082015250565b6000612787601a83612439565b915061279282612751565b602082019050919050565b600060208201905081810360008301526127b68161277a565b9050919050565b60006127c882612025565b9150600082036127db576127da6123d2565b5b600182039050919050565b60006040820190506127fb60008301856120c7565b6128086020830184612035565b939250505056fea26469706673582212202cc5839cf3734f7f04d95e61219fc5e69a1a116202984ee674eb387bbaaa9b1764736f6c63430008110033 -\ No newline at end of file +60806040523480156200001157600080fd5b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260146101000a81548163ffffffff021916908363ffffffff1602179055506001600260186101000a81548163ffffffff021916908363ffffffff160217905550620000b133620000d6640100000000026401000000009004565b50620000cf60016000620002ef640100000000026401000000009004565b50620005e7565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146200016b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001629062000481565b60405180910390fd5b60001515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151462000201576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001f890620004f3565b60405180910390fd5b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003600881819054906101000a900463ffffffff16809291906200027d9062000554565b91906101000a81548163ffffffff021916908363ffffffff160217905550507f6ff3aa2ea7b53070f6d9d07a445d338d89e8edef44250ffa8be19f53910d4a2e82604051620002cd9190620005ca565b60405180910390a1600360089054906101000a900463ffffffff169050919050565b6000600360089054906101000a900463ffffffff1663ffffffff168363ffffffff1611156200031d57600080fd5b60008363ffffffff16116200033157600080fd5b600360089054906101000a900463ffffffff1663ffffffff168263ffffffff1611156200035d57600080fd5b82600360006101000a81548163ffffffff021916908363ffffffff16021790555081600360046101000a81548163ffffffff021916908363ffffffff160217905550600360089054906101000a900463ffffffff1663ffffffff16600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff167fe77378573ac0f86c7fa8dd116b1fa17cf9c328a09a0c56a2c42d786103ac5bc360405160405180910390a46001905092915050565b600082825260208201905092915050565b7f4552525f41434345535300000000000000000000000000000000000000000000600082015250565b600062000469600a8362000420565b9150620004768262000431565b602082019050919050565b600060208201905081810360008301526200049c816200045a565b9050919050565b7f4552525f4e4f54464f554e440000000000000000000000000000000000000000600082015250565b6000620004db600c8362000420565b9150620004e882620004a3565b602082019050919050565b600060208201905081810360008301526200050e81620004cc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff82169050919050565b6000620005618262000544565b915063ffffffff82036200057a576200057962000515565b5b600182019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005b28262000585565b9050919050565b620005c481620005a5565b82525050565b6000602082019050620005e16000830184620005b9565b92915050565b6129c380620005f76000396000f3fe608060405234801561001057600080fd5b5060043610610154576000357c010000000000000000000000000000000000000000000000000000000090048063614f427f116100d55780637ca548c6116100995780637ca548c6146103d65780637f4dbec1146103f45780638da5cb5b14610424578063da2824a814610442578063ed71262a14610472578063fdd33d68146104a257610154565b8063614f427f146102f8578063655c013114610316578063669cd53b1461034657806366a5267214610376578063736c0d5b146103a657610154565b80631703a0181161011c5780631703a0181461022c5780632b29ba231461024a578063476ce3ad1461027a5780635356dddc146102aa57806357ec347a146102da57610154565b806306661abd1461015957806308ae6377146101775780630ab469b0146101955780630ac94000146101cc57806310858c67146101fc575b600080fd5b6101616104d2565b60405161016e9190612127565b60405180910390f35b61017f6104e8565b60405161018c9190612127565b60405180910390f35b6101af60048036038101906101aa9190612173565b6105df565b6040516101c3989796959493929190612216565b60405180910390f35b6101e660048036038101906101e19190612173565b6106c4565b6040516101f391906122af565b60405180910390f35b61021660048036038101906102119190612173565b610af5565b6040516102239190612127565b60405180910390f35b610234610c1a565b6040516102419190612127565b60405180910390f35b610264600480360381019061025f91906122f6565b610c30565b60405161027191906122af565b60405180910390f35b610294600480360381019061028f9190612173565b610c86565b6040516102a19190612127565b60405180910390f35b6102c460048036038101906102bf91906122f6565b610f10565b6040516102d19190612127565b60405180910390f35b6102e26111cc565b6040516102ef9190612127565b60405180910390f35b6103006111f2565b60405161030d9190612127565b60405180910390f35b610330600480360381019061032b9190612323565b611208565b60405161033d919061237f565b60405180910390f35b610360600480360381019061035b919061239a565b611237565b60405161036d91906122af565b60405180910390f35b610390600480360381019061038b9190612406565b611365565b60405161039d9190612433565b60405180910390f35b6103c060048036038101906103bb91906122f6565b6113a4565b6040516103cd91906122af565b60405180910390f35b6103de6113c4565b6040516103eb9190612127565b60405180910390f35b61040e60048036038101906104099190612173565b6113da565b60405161041b9190612127565b60405180910390f35b61042c611683565b6040516104399190612433565b60405180910390f35b61045c600480360381019061045791906122f6565b6116a9565b6040516104699190612127565b60405180910390f35b61048c6004803603810190610487919061244e565b6118b8565b6040516104999190612127565b60405180910390f35b6104bc60048036038101906104b79190612173565b611bb7565b6040516104c991906122af565b60405180910390f35b6002601c9054906101000a900463ffffffff1681565b600080600260189054906101000a900463ffffffff16600260149054906101000a900463ffffffff1661051b91906124e4565b63ffffffff16036105c6576001600260149054906101000a900463ffffffff1663ffffffff160361054f57600090506105dc565b600060016000600260189054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020905060008160040160009054906101000a900460ff1660ff1611156105bc57600260189054906101000a900463ffffffff169150506105dc565b60009150506105dc565b600260189054906101000a900463ffffffff1690505b90565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160149054906101000a900463ffffffff16908060030160189054906101000a900463ffffffff169080600301601c9054906101000a900463ffffffff16908060040160009054906101000a900460ff16905088565b600080600160008463ffffffff1663ffffffff168152602001908152602001600020905060008160030160149054906101000a900463ffffffff1663ffffffff1611610745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073c90612579565b60405180910390fd5b6003600b8260040160009054906101000a900460ff161660ff161461079f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610796906125e5565b60405180910390fd5b6107bc8160030160149054906101000a900463ffffffff16611f7c565b5060088160040160008282829054906101000a900460ff161792506101000a81548160ff021916908360ff1602179055506000808260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856000015460405160240161088c93929190612605565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161091691906126ad565b6000604051808303816000865af19150503d8060008114610953576040519150601f19603f3d011682016040523d82523d6000602084013e610958565b606091505b50915091508161099d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099490612710565b60405180910390fd5b60017f01000000000000000000000000000000000000000000000000000000000000000281601f815181106109d5576109d4612730565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610a82577fa80d5e3445b11533e6c584c506299aa14168f2ad1fe65b0266e7d622c5461c3085604051610a759190612127565b60405180910390a1610aea565b60108360040160008282829054906101000a900460ff161792506101000a81548160ff021916908360ff1602179055507f8f15e24c8a8ecaa6b067f0cd2c220532e6496f53b2ac3263129d1496cb6f192e85604051610ae19190612127565b60405180910390a15b819350505050919050565b600080600260149054906101000a900463ffffffff1663ffffffff16600260189054906101000a900463ffffffff1663ffffffff1603610b39576000915050610c15565b6000600260189054906101000a900463ffffffff1690505b600260149054906101000a900463ffffffff1663ffffffff168163ffffffff161015610c0e576000600160008363ffffffff1663ffffffff1681526020019081526020016000209050600160078260040160009054906101000a900460ff161660ff1603610bfa578463ffffffff168363ffffffff1603610beb578060030160149054906101000a900463ffffffff169350505050610c15565b8280610bf69061275f565b9350505b508080610c069061275f565b915050610b51565b5060009150505b919050565b600360009054906101000a900463ffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b906127d7565b60405180910390fd5b60008060008463ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460000b60000b14610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990612843565b60405180910390fd5b6000600160008463ffffffff1663ffffffff168152602001908152602001600020905060018160040160009054906101000a900460ff1660ff1614610e0657600080fd5b60016000808360030160149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360000b60ff16021790555080600301601881819054906101000a900463ffffffff1680929190610eb69061275f565b91906101000a81548163ffffffff021916908363ffffffff16021790555050610ef28160030160149054906101000a900463ffffffff16611bb7565b508060030160189054906101000a900463ffffffff16915050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906127d7565b60405180910390fd5b60011515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102c906128af565b60405180910390fd5b600360009054906101000a900463ffffffff1663ffffffff16600360089054906101000a900463ffffffff1663ffffffff161180156110a35750600360049054906101000a900463ffffffff1663ffffffff16600360089054906101000a900463ffffffff1663ffffffff16115b6110e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d99061291b565b60405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003600881819054906101000a900463ffffffff168092919061115c9061293b565b91906101000a81548163ffffffff021916908363ffffffff160217905550507f86e5bbceda94081c32220d685f37cc4e3ea7bb0be2dfbf0cb703579505a5390e826040516111aa9190612433565b60405180910390a1600360089054906101000a900463ffffffff169050919050565b60006001600260149054906101000a900463ffffffff166111ed91906124e4565b905090565b600360049054906101000a900463ffffffff1681565b60006020528160005260406000206020528060005260406000206000915091509054906101000a900460000b81565b6000600360089054906101000a900463ffffffff1663ffffffff168363ffffffff16111561126457600080fd5b60008363ffffffff161161127757600080fd5b600360089054906101000a900463ffffffff1663ffffffff168263ffffffff1611156112a257600080fd5b82600360006101000a81548163ffffffff021916908363ffffffff16021790555081600360046101000a81548163ffffffff021916908363ffffffff160217905550600360089054906101000a900463ffffffff1663ffffffff16600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff167fe77378573ac0f86c7fa8dd116b1fa17cf9c328a09a0c56a2c42d786103ac5bc360405160405180910390a46001905092915050565b6005818154811061137557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b600360089054906101000a900463ffffffff1681565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f906127d7565b60405180910390fd5b60008060008463ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460000b60000b14611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612843565b60405180910390fd5b6000600160008463ffffffff1663ffffffff168152602001908152602001600020905060018160040160009054906101000a900460ff1660ff161461155a57600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000808360030160149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360000b60ff16021790555080600301601c81819054906101000a900463ffffffff16809291906116299061275f565b91906101000a81548163ffffffff021916908363ffffffff160217905550506116658160030160149054906101000a900463ffffffff16611bb7565b5080600301601c9054906101000a900463ffffffff16915050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461173b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611732906127d7565b60405180910390fd5b60001515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c5906128af565b60405180910390fd5b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003600881819054906101000a900463ffffffff16809291906118489061275f565b91906101000a81548163ffffffff021916908363ffffffff160217905550507f6ff3aa2ea7b53070f6d9d07a445d338d89e8edef44250ffa8be19f53910d4a2e826040516118969190612433565b60405180910390a1600360089054906101000a900463ffffffff169050919050565b60008060016000600260149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000209050600260149054906101000a900463ffffffff168160030160146101000a81548163ffffffff021916908363ffffffff160217905550848160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550858160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082816000018190555060018160040160006101000a81548160ff021916908360ff1602179055506002601c81819054906101000a900463ffffffff1680929190611a359061275f565b91906101000a81548163ffffffff021916908363ffffffff160217905550506002601481819054906101000a900463ffffffff1680929190611a769061275f565b91906101000a81548163ffffffff021916908363ffffffff160217905550508060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f3ba7a259b57ae3d653287762394374c856528591f691ecd6494021fdcea00f2484600001548560030160149054906101000a900463ffffffff16604051611b8f929190612964565b60405180910390a48060030160149054906101000a900463ffffffff16915050949350505050565b6000806000600160008563ffffffff1663ffffffff168152602001908152602001600020905060018160040160009054906101000a900460ff1660ff161080611c175750600060068260040160009054906101000a900460ff161660ff16115b15611c26578192505050611f77565b600360009054906101000a900463ffffffff1663ffffffff168160030160189054906101000a900463ffffffff1663ffffffff1610611d155760028160040160008282829054906101000a900460ff161792506101000a81548160ff021916908360ff16021790555080600301601c9054906101000a900463ffffffff1663ffffffff168160030160189054906101000a900463ffffffff1663ffffffff168260030160149054906101000a900463ffffffff1663ffffffff167f7a17acca3819c1012204b2d019c0ee13bb7e5cf151111030329219582ba83f3160405160405180910390a460019150611f71565b6000600360049054906101000a900463ffffffff1663ffffffff16118015611d6f5750600360049054906101000a900463ffffffff1663ffffffff1681600301601c9054906101000a900463ffffffff1663ffffffff1610155b15611e485760048160040160008282829054906101000a900460ff161792506101000a81548160ff021916908360ff160217905550611dc18160030160149054906101000a900463ffffffff16611f7c565b5080600301601c9054906101000a900463ffffffff1663ffffffff168160030160189054906101000a900463ffffffff1663ffffffff168260030160149054906101000a900463ffffffff1663ffffffff167f4bdd2d0e6caefafbf833eda0d32f2dcb0e7a621e3e7b87b2a17c12090edbc0d660405160405180910390a460019150611f70565b600360009054906101000a900463ffffffff1663ffffffff1681600301601c9054906101000a900463ffffffff16600360089054906101000a900463ffffffff16611e9391906124e4565b63ffffffff161015611f6f5760048160040160008282829054906101000a900460ff161792506101000a81548160ff021916908360ff160217905550611eec8160030160149054906101000a900463ffffffff16611f7c565b5080600301601c9054906101000a900463ffffffff1663ffffffff168160030160189054906101000a900463ffffffff1663ffffffff168260030160149054906101000a900463ffffffff1663ffffffff167f3c478de516aa199022ddcd594a6e3b7f03a3e23bfcafd6143adceb687a8e38ea60405160405180910390a4600191505b5b5b81925050505b919050565b60006002601c81819054906101000a900463ffffffff1680929190611fa09061293b565b91906101000a81548163ffffffff021916908363ffffffff1602179055505060006002601c9054906101000a900463ffffffff1663ffffffff16111561208257600260189054906101000a900463ffffffff1663ffffffff168263ffffffff160361207d5760006120116000610af5565b905060008163ffffffff160361205957600260149054906101000a900463ffffffff16600260186101000a81548163ffffffff021916908363ffffffff16021790555061207b565b80600260186101000a81548163ffffffff021916908363ffffffff1602179055505b505b6120ee565b600260149054906101000a900463ffffffff1663ffffffff16600260189054906101000a900463ffffffff1663ffffffff16146120ed57600260149054906101000a900463ffffffff16600260186101000a81548163ffffffff021916908363ffffffff1602179055505b5b600260189054906101000a900463ffffffff169050919050565b600063ffffffff82169050919050565b61212181612108565b82525050565b600060208201905061213c6000830184612118565b92915050565b600080fd5b61215081612108565b811461215b57600080fd5b50565b60008135905061216d81612147565b92915050565b60006020828403121561218957612188612142565b5b60006121978482850161215e565b91505092915050565b6000819050919050565b6121b3816121a0565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121e4826121b9565b9050919050565b6121f4816121d9565b82525050565b600060ff82169050919050565b612210816121fa565b82525050565b60006101008201905061222c600083018b6121aa565b612239602083018a6121eb565b61224660408301896121eb565b61225360608301886121eb565b6122606080830187612118565b61226d60a0830186612118565b61227a60c0830185612118565b61228760e0830184612207565b9998505050505050505050565b60008115159050919050565b6122a981612294565b82525050565b60006020820190506122c460008301846122a0565b92915050565b6122d3816121d9565b81146122de57600080fd5b50565b6000813590506122f0816122ca565b92915050565b60006020828403121561230c5761230b612142565b5b600061231a848285016122e1565b91505092915050565b6000806040838503121561233a57612339612142565b5b60006123488582860161215e565b9250506020612359858286016122e1565b9150509250929050565b60008160000b9050919050565b61237981612363565b82525050565b60006020820190506123946000830184612370565b92915050565b600080604083850312156123b1576123b0612142565b5b60006123bf8582860161215e565b92505060206123d08582860161215e565b9150509250929050565b6123e3816121a0565b81146123ee57600080fd5b50565b600081359050612400816123da565b92915050565b60006020828403121561241c5761241b612142565b5b600061242a848285016123f1565b91505092915050565b600060208201905061244860008301846121eb565b92915050565b6000806000806080858703121561246857612467612142565b5b6000612476878288016122e1565b9450506020612487878288016122e1565b9350506040612498878288016122e1565b92505060606124a9878288016123f1565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124ef82612108565b91506124fa83612108565b9250828203905063ffffffff811115612516576125156124b5565b5b92915050565b600082825260208201905092915050565b7f4552525f494e56414c49445f5245515545535400000000000000000000000000600082015250565b600061256360138361251c565b915061256e8261252d565b602082019050919050565b6000602082019050818103600083015261259281612556565b9050919050565b7f4552525f4e4f545f454e444f5253454400000000000000000000000000000000600082015250565b60006125cf60108361251c565b91506125da82612599565b602082019050919050565b600060208201905081810360008301526125fe816125c2565b9050919050565b600060608201905061261a60008301866121eb565b61262760208301856121eb565b61263460408301846121aa565b949350505050565b600081519050919050565b600081905092915050565b60005b83811015612670578082015181840152602081019050612655565b60008484015250505050565b60006126878261263c565b6126918185612647565b93506126a1818560208601612652565b80840191505092915050565b60006126b9828461267c565b915081905092915050565b7f4552525f5452414e534645525f4641494c000000000000000000000000000000600082015250565b60006126fa60118361251c565b9150612705826126c4565b602082019050919050565b60006020820190508181036000830152612729816126ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061276a82612108565b915063ffffffff82036127805761277f6124b5565b5b600182019050919050565b7f4552525f41434345535300000000000000000000000000000000000000000000600082015250565b60006127c1600a8361251c565b91506127cc8261278b565b602082019050919050565b600060208201905081810360008301526127f0816127b4565b9050919050565b7f4552525f414c5245414459564f54454400000000000000000000000000000000600082015250565b600061282d60108361251c565b9150612838826127f7565b602082019050919050565b6000602082019050818103600083015261285c81612820565b9050919050565b7f4552525f4e4f54464f554e440000000000000000000000000000000000000000600082015250565b6000612899600c8361251c565b91506128a482612863565b602082019050919050565b600060208201905081810360008301526128c88161288c565b9050919050565b7f4552525f5245445543455f5448524553484f4c445f4649525354000000000000600082015250565b6000612905601a8361251c565b9150612910826128cf565b602082019050919050565b60006020820190508181036000830152612934816128f8565b9050919050565b600061294682612108565b915060008203612959576129586124b5565b5b600182039050919050565b600060408201905061297960008301856121aa565b6129866020830184612118565b939250505056fea2646970667358221220a60852e66a5c08e1e8ec5876c0492ca8878d8e71b9dbe80d58d4c3f90b7e626264736f6c63430008120033 +\ No newline at end of file diff --git a/python/setup.cfg b/python/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = erc20-transfer-authorization -version = 0.4.1 +version = 0.4.2 description = Simple approval escrow for ERC20 spend approval author = Louis Holbrook author_email = dev@holbrook.no diff --git a/solidity/ERC20TransferAuthorization.sol b/solidity/ERC20TransferAuthorization.sol @@ -46,7 +46,7 @@ contract ERC20TransferAuthorization { event Approved(uint32 indexed _serial, uint32 indexed _yays, uint32 indexed _nays); event Rejected(uint32 indexed _serial, uint32 indexed _yays, uint32 indexed _nays); - constructor() public { + constructor() { owner = msg.sender; hi = 1; lo = 1; @@ -250,7 +250,10 @@ contract ERC20TransferAuthorization { //txx.blockNumber = block.number; //requestSenderIndex[txx.sender].push(txx.serial); //requestRecipientIndex[txx.recipient].push(txx.serial); - if (success) { + if (!success) { + revert('ERR_TRANSFER_FAIL'); + } + if (_r[31] == 0x01) { emit Executed(_serial); } else { txx.result |= 16; // this edit is for convenience only. since bit 4 is already set, it is not re-entrant.