From f812790610f01f8f5996323b09886981403136fb Mon Sep 17 00:00:00 2001 From: Mohammed Sohail Date: Thu, 21 Mar 2024 12:55:45 +0800 Subject: [PATCH] feat: make useful variables public commit 283e3cd7bf8e0b2aa0332259ad17584bc0bb87f0 Author: Mohammed Sohail Date: Tue Mar 19 15:24:21 2024 +0800 feat: update compilation * hfork - istanbul * solc ver: 0.8.25 commit f31475bc302c9de382deacc9e32be82272ab15d2 Author: Mohammed Sohail Date: Tue Mar 19 15:24:02 2024 +0800 feat: make useful variables public --- python/erc20_pool/data/DecimalQuote.bin | 2 +- python/erc20_pool/data/DecimalQuote.metadata.json | 2 +- python/erc20_pool/data/SwapPool.bin | 2 +- python/erc20_pool/data/SwapPool.json | 2 +- python/erc20_pool/data/SwapPool.metadata.json | 2 +- solidity/Makefile | 14 +++++++------- solidity/SwapPool.sol | 10 +++++----- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/python/erc20_pool/data/DecimalQuote.bin b/python/erc20_pool/data/DecimalQuote.bin index f74d35b..188a9f8 100644 --- a/python/erc20_pool/data/DecimalQuote.bin +++ b/python/erc20_pool/data/DecimalQuote.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b50610aff806100206000396000f3fe608060405234801561001057600080fd5b5060043610610053576000357c01000000000000000000000000000000000000000000000000000000009004806301ffc9a714610058578063dbb21d4014610088575b600080fd5b610072600480360381019061006d91906104fa565b6100b8565b60405161007f9190610542565b60405180910390f35b6100a2600480360381019061009d91906105f1565b610168565b6040516100af9190610653565b60405180910390f35b60006301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361010c5760019050610163565b63dbb21d407c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361015e5760019050610163565b600090505b919050565b600080600080600060608873ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f313ce567000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161021991906106df565b6000604051808303816000865af19150503d8060008114610256576040519150601f19603f3d011682016040523d82523d6000602084013e61025b565b606091505b508092508193505050816102a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029b90610753565b60405180910390fd5b808060200190518101906102b891906107ac565b94508773ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f313ce567000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161036191906106df565b6000604051808303816000865af19150503d806000811461039e576040519150601f19603f3d011682016040523d82523d6000602084013e6103a3565b606091505b508092508193505050816103ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e390610825565b60405180910390fd5b8080602001905181019061040091906107ac565b93508460ff168460ff160361041c578695505050505050610496565b8460ff168460ff1611156104625784846104369190610874565b60ff16925082600a61044891906109dc565b925082876104569190610a56565b95505050505050610496565b838561046e9190610874565b60ff16925082600a61048091906109dc565b9250828761048e9190610a87565b955050505050505b9392505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6104d7816104a2565b81146104e257600080fd5b50565b6000813590506104f4816104ce565b92915050565b6000602082840312156105105761050f61049d565b5b600061051e848285016104e5565b91505092915050565b60008115159050919050565b61053c81610527565b82525050565b60006020820190506105576000830184610533565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105888261055d565b9050919050565b6105988161057d565b81146105a357600080fd5b50565b6000813590506105b58161058f565b92915050565b6000819050919050565b6105ce816105bb565b81146105d957600080fd5b50565b6000813590506105eb816105c5565b92915050565b60008060006060848603121561060a5761060961049d565b5b6000610618868287016105a6565b9350506020610629868287016105a6565b925050604061063a868287016105dc565b9150509250925092565b61064d816105bb565b82525050565b60006020820190506106686000830184610644565b92915050565b600081519050919050565b600081905092915050565b60005b838110156106a2578082015181840152602081019050610687565b60008484015250505050565b60006106b98261066e565b6106c38185610679565b93506106d3818560208601610684565b80840191505092915050565b60006106eb82846106ae565b915081905092915050565b600082825260208201905092915050565b7f4552525f544f4b454e5f4f555400000000000000000000000000000000000000600082015250565b600061073d600d836106f6565b915061074882610707565b602082019050919050565b6000602082019050818103600083015261076c81610730565b9050919050565b600060ff82169050919050565b61078981610773565b811461079457600080fd5b50565b6000815190506107a681610780565b92915050565b6000602082840312156107c2576107c161049d565b5b60006107d084828501610797565b91505092915050565b7f4552525f544f4b454e5f494e0000000000000000000000000000000000000000600082015250565b600061080f600c836106f6565b915061081a826107d9565b602082019050919050565b6000602082019050818103600083015261083e81610802565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061087f82610773565b915061088a83610773565b9250828203905060ff8111156108a3576108a2610845565b5b92915050565b6000600282049050919050565b6000808291508390505b6001851115610900578086048111156108dc576108db610845565b5b60018516156108eb5780820291505b80810290506108f9856108a9565b94506108c0565b94509492505050565b60008261091957600190506109d5565b8161092757600090506109d5565b816001811461093d576002811461094757610976565b60019150506109d5565b60ff84111561095957610958610845565b5b8360020a9150848211156109705761096f610845565b5b506109d5565b5060208310610133831016604e8410600b84101617156109ab5782820a9050838111156109a6576109a5610845565b5b6109d5565b6109b884848460016108b6565b925090508184048111156109cf576109ce610845565b5b81810290505b9392505050565b60006109e7826105bb565b91506109f2836105bb565b9250610a1f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610909565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610a61826105bb565b9150610a6c836105bb565b925082610a7c57610a7b610a27565b5b828204905092915050565b6000610a92826105bb565b9150610a9d836105bb565b9250828202610aab816105bb565b91508282048414831517610ac257610ac1610845565b5b509291505056fea2646970667358221220a6b8fddaa75c73235586d42c8a9005589297f778906457325b66b18ddcebbeed64736f6c63430008130033 \ No newline at end of file +6080604052348015600f57600080fd5b50610aaa8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806301ffc9a71461003b578063dbb21d401461006b575b600080fd5b610055600480360381019061005091906104a5565b61009b565b60405161006291906104ed565b60405180910390f35b6100856004803603810190610080919061059c565b610113565b60405161009291906105fe565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036100d3576001905061010e565b63dbb21d4060e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610109576001905061010e565b600090505b919050565b600080600080600060608873ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f313ce567000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516101c4919061068a565b6000604051808303816000865af19150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b5080925081935050508161024f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610246906106fe565b60405180910390fd5b808060200190518101906102639190610757565b94508773ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f313ce567000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161030c919061068a565b6000604051808303816000865af19150503d8060008114610349576040519150601f19603f3d011682016040523d82523d6000602084013e61034e565b606091505b50809250819350505081610397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038e906107d0565b60405180910390fd5b808060200190518101906103ab9190610757565b93508460ff168460ff16036103c7578695505050505050610441565b8460ff168460ff16111561040d5784846103e1919061081f565b60ff16925082600a6103f39190610987565b925082876104019190610a01565b95505050505050610441565b8385610419919061081f565b60ff16925082600a61042b9190610987565b925082876104399190610a32565b955050505050505b9392505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6104828161044d565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b6000602082840312156104bb576104ba610448565b5b60006104c984828501610490565b91505092915050565b60008115159050919050565b6104e7816104d2565b82525050565b600060208201905061050260008301846104de565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061053382610508565b9050919050565b61054381610528565b811461054e57600080fd5b50565b6000813590506105608161053a565b92915050565b6000819050919050565b61057981610566565b811461058457600080fd5b50565b60008135905061059681610570565b92915050565b6000806000606084860312156105b5576105b4610448565b5b60006105c386828701610551565b93505060206105d486828701610551565b92505060406105e586828701610587565b9150509250925092565b6105f881610566565b82525050565b600060208201905061061360008301846105ef565b92915050565b600081519050919050565b600081905092915050565b60005b8381101561064d578082015181840152602081019050610632565b60008484015250505050565b600061066482610619565b61066e8185610624565b935061067e81856020860161062f565b80840191505092915050565b60006106968284610659565b915081905092915050565b600082825260208201905092915050565b7f4552525f544f4b454e5f4f555400000000000000000000000000000000000000600082015250565b60006106e8600d836106a1565b91506106f3826106b2565b602082019050919050565b60006020820190508181036000830152610717816106db565b9050919050565b600060ff82169050919050565b6107348161071e565b811461073f57600080fd5b50565b6000815190506107518161072b565b92915050565b60006020828403121561076d5761076c610448565b5b600061077b84828501610742565b91505092915050565b7f4552525f544f4b454e5f494e0000000000000000000000000000000000000000600082015250565b60006107ba600c836106a1565b91506107c582610784565b602082019050919050565b600060208201905081810360008301526107e9816107ad565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061082a8261071e565b91506108358361071e565b9250828203905060ff81111561084e5761084d6107f0565b5b92915050565b60008160011c9050919050565b6000808291508390505b60018511156108ab57808604811115610887576108866107f0565b5b60018516156108965780820291505b80810290506108a485610854565b945061086b565b94509492505050565b6000826108c45760019050610980565b816108d25760009050610980565b81600181146108e857600281146108f257610921565b6001915050610980565b60ff841115610904576109036107f0565b5b8360020a91508482111561091b5761091a6107f0565b5b50610980565b5060208310610133831016604e8410600b84101617156109565782820a905083811115610951576109506107f0565b5b610980565b6109638484846001610861565b9250905081840481111561097a576109796107f0565b5b81810290505b9392505050565b600061099282610566565b915061099d83610566565b92506109ca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846108b4565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610a0c82610566565b9150610a1783610566565b925082610a2757610a266109d2565b5b828204905092915050565b6000610a3d82610566565b9150610a4883610566565b9250828202610a5681610566565b91508282048414831517610a6d57610a6c6107f0565b5b509291505056fea26469706673582212200467563bac5ddc57ed952ebe547987881c094cbd6d9c99702dacf1e09184163164736f6c63430008190033 \ No newline at end of file diff --git a/python/erc20_pool/data/DecimalQuote.metadata.json b/python/erc20_pool/data/DecimalQuote.metadata.json index 5ed17cd..68041df 100644 --- a/python/erc20_pool/data/DecimalQuote.metadata.json +++ b/python/erc20_pool/data/DecimalQuote.metadata.json @@ -1 +1 @@ -{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"},{"internalType":"address","name":"_inToken","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"valueFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"DecimalQuote.sol":"DecimalQuote"},"evmVersion":"byzantium","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"DecimalQuote.sol":{"keccak256":"0x4053ab914f5f3b89b17af0e091de359c808058461d12502cf53d495b5abc31b4","license":"AGPL-3.0-or-later","urls":["bzz-raw://496e4f4a2039dc9447d04db14ce8624b4caf2038cf017c56f632157a50f69cae","dweb:/ipfs/QmWDRaBfANxZrKb73AziafrbB5tZkgYjvd1ym1vGje47Ui"]}},"version":1} +{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"},{"internalType":"address","name":"_inToken","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"valueFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"DecimalQuote.sol":"DecimalQuote"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"DecimalQuote.sol":{"keccak256":"0x4053ab914f5f3b89b17af0e091de359c808058461d12502cf53d495b5abc31b4","license":"AGPL-3.0-or-later","urls":["bzz-raw://496e4f4a2039dc9447d04db14ce8624b4caf2038cf017c56f632157a50f69cae","dweb:/ipfs/QmWDRaBfANxZrKb73AziafrbB5tZkgYjvd1ym1vGje47Ui"]}},"version":1} diff --git a/python/erc20_pool/data/SwapPool.bin b/python/erc20_pool/data/SwapPool.bin index 54a5bee..e73cf4f 100644 --- a/python/erc20_pool/data/SwapPool.bin +++ b/python/erc20_pool/data/SwapPool.bin @@ -1 +1 @@ -60a06040523480156200001157600080fd5b50604051620030bf380380620030bf833981810160405281019062000037919062000369565b846006908162000048919062000680565b5083600790816200005a919062000680565b508260ff166080818152505081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000767565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200019c8262000151565b810181811067ffffffffffffffff82111715620001be57620001bd62000162565b5b80604052505050565b6000620001d362000133565b9050620001e1828262000191565b919050565b600067ffffffffffffffff82111562000204576200020362000162565b5b6200020f8262000151565b9050602081019050919050565b60005b838110156200023c5780820151818401526020810190506200021f565b60008484015250505050565b60006200025f6200025984620001e6565b620001c7565b9050828152602081018484840111156200027e576200027d6200014c565b5b6200028b8482856200021c565b509392505050565b600082601f830112620002ab57620002aa62000147565b5b8151620002bd84826020860162000248565b91505092915050565b600060ff82169050919050565b620002de81620002c6565b8114620002ea57600080fd5b50565b600081519050620002fe81620002d3565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003318262000304565b9050919050565b620003438162000324565b81146200034f57600080fd5b50565b600081519050620003638162000338565b92915050565b600080600080600060a086880312156200038857620003876200013d565b5b600086015167ffffffffffffffff811115620003a957620003a862000142565b5b620003b78882890162000293565b955050602086015167ffffffffffffffff811115620003db57620003da62000142565b5b620003e98882890162000293565b9450506040620003fc88828901620002ed565b93505060606200040f8882890162000352565b9250506080620004228882890162000352565b9150509295509295909350565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200048257607f821691505b6020821081036200049857620004976200043a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60008160020a8302905092915050565b600060088302620005057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004c3565b620005118683620004c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200055e62000558620005528462000529565b62000533565b62000529565b9050919050565b6000819050919050565b6200057a836200053d565b62000592620005898262000565565b848454620004d3565b825550505050565b600090565b620005a96200059a565b620005b68184846200056f565b505050565b5b81811015620005de57620005d26000826200059f565b600181019050620005bc565b5050565b601f8211156200062d57620005f7816200049e565b6200060284620004b3565b8101602085101562000612578190505b6200062a6200062185620004b3565b830182620005bb565b50505b505050565b60008160020a8304905092915050565b6000620006556000198460080262000632565b1980831691505092915050565b600062000670838362000642565b9150826002028217905092915050565b6200068b826200042f565b67ffffffffffffffff811115620006a757620006a662000162565b5b620006b3825462000469565b620006c0828285620005e2565b600060209050601f831160018114620006f85760008415620006e3578287015190505b620006ef858262000662565b8655506200075f565b601f19841662000708866200049e565b60005b8281101562000732578489015182556001820191506020850194506020810190506200070b565b868310156200075257848901516200074e601f89168262000642565b8355505b6001600288020188555050505b505050505050565b60805161293c620007836000396000610586015261293c6000f3fe608060405234801561001057600080fd5b5060043610610133576000357c01000000000000000000000000000000000000000000000000000000009004806369fe0e2d116100bf57806395d89b411161008e57806395d89b4114610300578063d9caed121461031e578063f2fde38b1461033a578063f3fef3a31461036a578063f912c64b1461039a57610133565b806369fe0e2d1461027a57806386fe212d146102965780638705fcd4146102c65780638da5cb5b146102e257610133565b80632c1758c1116101065780632c1758c1146101c2578063313ce567146101f257806331a5995d1461021057806347e7ef241461022e57806351cff8d91461024a57610133565b806301ffc9a71461013857806306fdde031461016857806318160ddd1461018657806318cbbcfc146101a4575b600080fd5b610152600480360381019061014d9190611cd4565b6103b6565b60405161015f9190611d1c565b60405180910390f35b6101706104b8565b60405161017d9190611dc7565b60405180910390f35b61018e610546565b60405161019b9190611e02565b60405180910390f35b6101ac61054c565b6040516101b99190611e02565b60405180910390f35b6101dc60048036038101906101d79190611e49565b610551565b6040516101e99190611d1c565b60405180910390f35b6101fa610584565b6040516102079190611e02565b60405180910390f35b6102186105a8565b6040516102259190611e02565b60405180910390f35b61024860048036038101906102439190611ed4565b6105ae565b005b610264600480360381019061025f9190611f14565b61079e565b6040516102719190611e02565b60405180910390f35b610294600480360381019061028f9190611e49565b61083a565b005b6102b060048036038101906102ab9190611e49565b610964565b6040516102bd9190611e02565b60405180910390f35b6102e060048036038101906102db9190611f14565b610a4c565b005b6102ea610b6b565b6040516102f79190611f50565b60405180910390f35b610308610b8f565b6040516103159190611dc7565b60405180910390f35b61033860048036038101906103339190611f6b565b610c1d565b005b610354600480360381019061034f9190611f14565b611043565b6040516103619190611d1c565b60405180910390f35b610384600480360381019061037f9190611ed4565b611185565b6040516103919190611e02565b60405180910390f35b6103b460048036038101906103af9190611f14565b6113dd565b005b60006301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361040a57600190506104b3565b639493f8b27c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361045c57600190506104b3565b630d7491f87c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036104ae57600190506104b3565b600090505b919050565b600680546104c590611fed565b80601f01602080910402602001604051908101604052809291908181526020018280546104f190611fed565b801561053e5780601f106105135761010080835404028352916020019161053e565b820191906000526020600020905b81548152906001019060200180831161052157829003601f168201915b505050505081565b60085481565b600781565b60006007821061056057600080fd5b60008203610575576007600a5414905061057f565b81600a5483161490505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a5481565b600060606105de84600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114fc565b6105e884846116d5565b8373ffffffffffffffffffffffffffffffffffffffff163330856040516024016106149392919061207d565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161069e91906120fb565b6000604051808303816000865af19150503d80600081146106db576040519150601f19603f3d011682016040523d82523d6000602084013e6106e0565b606091505b50809250819350505081610729576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107209061215e565b60405180910390fd5b8080602001905181019061073d91906121aa565b91508161077f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077690612223565b60405180910390fd5b82600860008282546107919190612272565b9250508190555050505050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108328382611185565b915050919050565b610847600160ff16610551565b15610887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087e906122f2565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090c9061235e565b60405180910390fd5b620f4240811061095a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610951906123ca565b60405180910390fd5b8060048190555050565b600060078211156109aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a190612436565b60405180910390fd5b6000600a548316146109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e8906124a2565b60405180910390fd5b81600a600082825417925050819055506007600a541415157f6b7e2e653f93b645d4ed7292d6429f96637084363e477c8aaea1a43ed13c284e600a54604051610a3a9190611e02565b60405180910390a2600a549050919050565b610a59600260ff16610551565b15610a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a90906122f2565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e9061235e565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60078054610b9c90611fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc890611fed565b8015610c155780601f10610bea57610100808354040283529160200191610c15565b820191906000526020600020905b815481529060010190602001808311610bf857829003601f168201915b505050505081565b600060606000806000610c2f86611a5c565b90508086610c3d91906124c2565b9250610c4a888885611a89565b92508773ffffffffffffffffffffffffffffffffffffffff1630604051602401610c7491906124f6565b6040516020818303038152906040527f70a08231000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610cfe91906120fb565b6000604051808303816000865af19150503d8060008114610d3b576040519150601f19603f3d011682016040523d82523d6000602084013e610d40565b606091505b50809550819650505084610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d809061215e565b60405180910390fd5b83806020019051810190610d9d9190612526565b91508083610dab9190612272565b821015610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de49061259f565b60405180910390fd5b610df787876105ae565b8773ffffffffffffffffffffffffffffffffffffffff163384604051602401610e219291906125bf565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610eab91906120fb565b6000604051808303816000865af19150503d8060008114610ee8576040519150601f19603f3d011682016040523d82523d6000602084013e610eed565b606091505b50809550819650505084610f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2d9061215e565b60405180910390fd5b83806020019051810190610f4a91906121aa565b945084610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390612223565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110395780600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110319190612272565b925050819055505b5050505050505050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461109e57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001915050919050565b6000806060600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361121b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112129061235e565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040516024016112679291906125bf565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516112f191906120fb565b6000604051808303816000865af19150503d806000811461132e576040519150601f19603f3d011682016040523d82523d6000602084013e611333565b606091505b5080925081935050508161137c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113739061215e565b60405180910390fd5b8080602001905181019061139091906121aa565b9150816113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c990612223565b60405180910390fd5b839250505092915050565b6113ea600460ff16610551565b1561142a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611421906122f2565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114af9061235e565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006060600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153b5750506116d1565b8273ffffffffffffffffffffffffffffffffffffffff16846040516024016115639190611f50565b6040516020818303038152906040527f3ef25013000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115ed91906120fb565b6000604051808303816000865af19150503d806000811461162a576040519150601f19603f3d011682016040523d82523d6000602084013e61162f565b606091505b50809250819350505081611678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166f90612634565b60405180910390fd5b8080602001905181019061168c91906121aa565b9150816116ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c5906126a0565b60405180910390fd5b50505b5050565b60006060600080600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361173b5750505050611a58565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1686306040516024016117879291906126c0565b6040516020818303038152906040527f23778613000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161181191906120fb565b6000604051808303816000865af19150503d806000811461184e576040519150601f19603f3d011682016040523d82523d6000602084013e611853565b606091505b5080945081955050508361189c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189390612735565b60405180910390fd5b828060200190518101906118b09190612526565b91508573ffffffffffffffffffffffffffffffffffffffff16306040516024016118da91906124f6565b6040516020818303038152906040527f70a08231000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161196491906120fb565b6000604051808303816000865af19150503d80600081146119a1576040519150601f19603f3d011682016040523d82523d6000602084013e6119a6565b606091505b508094508195505050836119ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e69061215e565b60405180910390fd5b82806020019051810190611a039190612526565b9050818582611a129190612272565b1115611a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4a906127a1565b60405180910390fd5b505050505b5050565b60008060045483611a6d91906127c1565b9050620f424081611a7e9190612832565b905080915050919050565b600080606060008073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611af057849350505050611c70565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16878787604051602401611b3e93929190612863565b6040516020818303038152906040527fdbb21d40000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611bc891906120fb565b6000604051808303816000865af19150503d8060008114611c05576040519150601f19603f3d011682016040523d82523d6000602084013e611c0a565b606091505b50809350819450505082611c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4a906128e6565b60405180910390fd5b81806020019051810190611c679190612526565b90508093505050505b9392505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611cb181611c7c565b8114611cbc57600080fd5b50565b600081359050611cce81611ca8565b92915050565b600060208284031215611cea57611ce9611c77565b5b6000611cf884828501611cbf565b91505092915050565b60008115159050919050565b611d1681611d01565b82525050565b6000602082019050611d316000830184611d0d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d71578082015181840152602081019050611d56565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d9982611d37565b611da38185611d42565b9350611db3818560208601611d53565b611dbc81611d7d565b840191505092915050565b60006020820190508181036000830152611de18184611d8e565b905092915050565b6000819050919050565b611dfc81611de9565b82525050565b6000602082019050611e176000830184611df3565b92915050565b611e2681611de9565b8114611e3157600080fd5b50565b600081359050611e4381611e1d565b92915050565b600060208284031215611e5f57611e5e611c77565b5b6000611e6d84828501611e34565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ea182611e76565b9050919050565b611eb181611e96565b8114611ebc57600080fd5b50565b600081359050611ece81611ea8565b92915050565b60008060408385031215611eeb57611eea611c77565b5b6000611ef985828601611ebf565b9250506020611f0a85828601611e34565b9150509250929050565b600060208284031215611f2a57611f29611c77565b5b6000611f3884828501611ebf565b91505092915050565b611f4a81611e96565b82525050565b6000602082019050611f656000830184611f41565b92915050565b600080600060608486031215611f8457611f83611c77565b5b6000611f9286828701611ebf565b9350506020611fa386828701611ebf565b9250506040611fb486828701611e34565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061200557607f821691505b60208210810361201857612017611fbe565b5b50919050565b6000819050919050565b600061204361203e61203984611e76565b61201e565b611e76565b9050919050565b600061205582612028565b9050919050565b60006120678261204a565b9050919050565b6120778161205c565b82525050565b60006060820190506120926000830186611f41565b61209f602083018561206e565b6120ac6040830184611df3565b949350505050565b600081519050919050565b600081905092915050565b60006120d5826120b4565b6120df81856120bf565b93506120ef818560208601611d53565b80840191505092915050565b600061210782846120ca565b915081905092915050565b7f4552525f544f4b454e0000000000000000000000000000000000000000000000600082015250565b6000612148600983611d42565b915061215382612112565b602082019050919050565b600060208201905081810360008301526121778161213b565b9050919050565b61218781611d01565b811461219257600080fd5b50565b6000815190506121a48161217e565b92915050565b6000602082840312156121c0576121bf611c77565b5b60006121ce84828501612195565b91505092915050565b7f4552525f5452414e534645520000000000000000000000000000000000000000600082015250565b600061220d600c83611d42565b9150612218826121d7565b602082019050919050565b6000602082019050818103600083015261223c81612200565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061227d82611de9565b915061228883611de9565b92508282019050808211156122a05761229f612243565b5b92915050565b7f4552525f5345414c000000000000000000000000000000000000000000000000600082015250565b60006122dc600883611d42565b91506122e7826122a6565b602082019050919050565b6000602082019050818103600083015261230b816122cf565b9050919050565b7f4552525f41585800000000000000000000000000000000000000000000000000600082015250565b6000612348600783611d42565b915061235382612312565b602082019050919050565b600060208201905081810360008301526123778161233b565b9050919050565b7f4552525f4645455f544f4f5f4849474800000000000000000000000000000000600082015250565b60006123b4601083611d42565b91506123bf8261237e565b602082019050919050565b600060208201905081810360008301526123e3816123a7565b9050919050565b7f4552525f494e56414c49445f5354415445000000000000000000000000000000600082015250565b6000612420601183611d42565b915061242b826123ea565b602082019050919050565b6000602082019050818103600083015261244f81612413565b9050919050565b7f4552525f414c52454144595f4c4f434b45440000000000000000000000000000600082015250565b600061248c601283611d42565b915061249782612456565b602082019050919050565b600060208201905081810360008301526124bb8161247f565b9050919050565b60006124cd82611de9565b91506124d883611de9565b92508282039050818111156124f0576124ef612243565b5b92915050565b600060208201905061250b600083018461206e565b92915050565b60008151905061252081611e1d565b92915050565b60006020828403121561253c5761253b611c77565b5b600061254a84828501612511565b91505092915050565b7f4552525f42414c414e4345000000000000000000000000000000000000000000600082015250565b6000612589600b83611d42565b915061259482612553565b602082019050919050565b600060208201905081810360008301526125b88161257c565b9050919050565b60006040820190506125d46000830185611f41565b6125e16020830184611df3565b9392505050565b7f4552525f52454749535452590000000000000000000000000000000000000000600082015250565b600061261e600c83611d42565b9150612629826125e8565b602082019050919050565b6000602082019050818103600083015261264d81612611565b9050919050565b7f4552525f554e415554485f544f4b454e00000000000000000000000000000000600082015250565b600061268a601083611d42565b915061269582612654565b602082019050919050565b600060208201905081810360008301526126b98161267d565b9050919050565b60006040820190506126d56000830185611f41565b6126e2602083018461206e565b9392505050565b7f4552525f4c494d49544552000000000000000000000000000000000000000000600082015250565b600061271f600b83611d42565b915061272a826126e9565b602082019050919050565b6000602082019050818103600083015261274e81612712565b9050919050565b7f4552525f4c494d49540000000000000000000000000000000000000000000000600082015250565b600061278b600983611d42565b915061279682612755565b602082019050919050565b600060208201905081810360008301526127ba8161277e565b9050919050565b60006127cc82611de9565b91506127d783611de9565b92508282026127e581611de9565b915082820484148315176127fc576127fb612243565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061283d82611de9565b915061284883611de9565b92508261285857612857612803565b5b828204905092915050565b60006060820190506128786000830186611f41565b6128856020830185611f41565b6128926040830184611df3565b949350505050565b7f4552525f51554f54455200000000000000000000000000000000000000000000600082015250565b60006128d0600a83611d42565b91506128db8261289a565b602082019050919050565b600060208201905081810360008301526128ff816128c3565b905091905056fea26469706673582212201f7c2ae121176c113ae06e6b16f823379825d3480ddefc5dcbcd3c98c282bc4f64736f6c63430008130033 \ No newline at end of file +60a060405234801561001057600080fd5b5060405161312c38038061312c83398181016040528101906100329190610335565b84600690816100419190610609565b5083600790816100519190610609565b508260ff166080818152505081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050506106db565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61019082610147565b810181811067ffffffffffffffff821117156101af576101ae610158565b5b80604052505050565b60006101c2610129565b90506101ce8282610187565b919050565b600067ffffffffffffffff8211156101ee576101ed610158565b5b6101f782610147565b9050602081019050919050565b60005b83811015610222578082015181840152602081019050610207565b60008484015250505050565b600061024161023c846101d3565b6101b8565b90508281526020810184848401111561025d5761025c610142565b5b610268848285610204565b509392505050565b600082601f8301126102855761028461013d565b5b815161029584826020860161022e565b91505092915050565b600060ff82169050919050565b6102b48161029e565b81146102bf57600080fd5b50565b6000815190506102d1816102ab565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610302826102d7565b9050919050565b610312816102f7565b811461031d57600080fd5b50565b60008151905061032f81610309565b92915050565b600080600080600060a0868803121561035157610350610133565b5b600086015167ffffffffffffffff81111561036f5761036e610138565b5b61037b88828901610270565b955050602086015167ffffffffffffffff81111561039c5761039b610138565b5b6103a888828901610270565b94505060406103b9888289016102c2565b93505060606103ca88828901610320565b92505060806103db88828901610320565b9150509295509295909350565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061043a57607f821691505b60208210810361044d5761044c6103f3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610478565b6104bf8683610478565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006105066105016104fc846104d7565b6104e1565b6104d7565b9050919050565b6000819050919050565b610520836104eb565b61053461052c8261050d565b848454610485565b825550505050565b600090565b61054961053c565b610554818484610517565b505050565b5b818110156105785761056d600082610541565b60018101905061055a565b5050565b601f8211156105bd5761058e81610453565b61059784610468565b810160208510156105a6578190505b6105ba6105b285610468565b830182610559565b50505b505050565b600082821c905092915050565b60006105e0600019846008026105c2565b1980831691505092915050565b60006105f983836105cf565b9150826002028217905092915050565b610612826103e8565b67ffffffffffffffff81111561062b5761062a610158565b5b6106358254610422565b61064082828561057c565b600060209050601f8311600181146106735760008415610661578287015190505b61066b85826105ed565b8655506106d3565b601f19841661068186610453565b60005b828110156106a957848901518255600182019150602085019450602081019050610684565b868310156106c657848901516106c2601f8916826105cf565b8355505b6001600288020188555050505b505050505050565b608051612a366106f660003960006105e20152612a366000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806369fe0e2d116100c3578063a534150c1161007c578063a534150c14610392578063c6bbd5a7146103b0578063d9caed12146103ce578063f2fde38b146103ea578063f3fef3a31461041a578063f912c64b1461044a5761014d565b806369fe0e2d146102d057806386fe212d146102ec5780638705fcd41461031c5780638da5cb5b1461033857806395d89b41146103565780639d23c4c7146103745761014d565b8063313ce56711610115578063313ce5671461020c57806331a5995d1461022a578063412753581461024857806347e7ef241461026657806351cff8d91461028257806353799c57146102b25761014d565b806301ffc9a71461015257806306fdde031461018257806318160ddd146101a057806318cbbcfc146101be5780632c1758c1146101dc575b600080fd5b61016c60048036038101906101679190611dce565b610466565b6040516101799190611e16565b60405180910390f35b61018a610514565b6040516101979190611ec1565b60405180910390f35b6101a86105a2565b6040516101b59190611efc565b60405180910390f35b6101c66105a8565b6040516101d39190611efc565b60405180910390f35b6101f660048036038101906101f19190611f43565b6105ad565b6040516102039190611e16565b60405180910390f35b6102146105e0565b6040516102219190611efc565b60405180910390f35b610232610604565b60405161023f9190611efc565b60405180910390f35b61025061060a565b60405161025d9190611fb1565b60405180910390f35b610280600480360381019061027b9190611ff8565b610630565b005b61029c60048036038101906102979190612038565b610820565b6040516102a99190611efc565b60405180910390f35b6102ba6108bc565b6040516102c79190611fb1565b60405180910390f35b6102ea60048036038101906102e59190611f43565b6108e2565b005b61030660048036038101906103019190611f43565b610a0c565b6040516103139190611efc565b60405180910390f35b61033660048036038101906103319190612038565b610af4565b005b610340610c13565b60405161034d9190611fb1565b60405180910390f35b61035e610c37565b60405161036b9190611ec1565b60405180910390f35b61037c610cc5565b6040516103899190611fb1565b60405180910390f35b61039a610ceb565b6040516103a79190611efc565b60405180910390f35b6103b8610cf1565b6040516103c59190611fb1565b60405180910390f35b6103e860048036038101906103e39190612065565b610d17565b005b61040460048036038101906103ff9190612038565b61113d565b6040516104119190611e16565b60405180910390f35b610434600480360381019061042f9190611ff8565b61127f565b6040516104419190611efc565b60405180910390f35b610464600480360381019061045f9190612038565b6114d7565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361049e576001905061050f565b639493f8b260e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036104d4576001905061050f565b630d7491f860e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361050a576001905061050f565b600090505b919050565b60068054610521906120e7565b80601f016020809104026020016040519081016040528092919081815260200182805461054d906120e7565b801561059a5780601f1061056f5761010080835404028352916020019161059a565b820191906000526020600020905b81548152906001019060200180831161057d57829003601f168201915b505050505081565b60085481565b600781565b6000600782106105bc57600080fd5b600082036105d1576007600a541490506105db565b81600a5483161490505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a5481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000606061066084600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115f6565b61066a84846117cf565b8373ffffffffffffffffffffffffffffffffffffffff1633308560405160240161069693929190612177565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161072091906121f5565b6000604051808303816000865af19150503d806000811461075d576040519150601f19603f3d011682016040523d82523d6000602084013e610762565b606091505b508092508193505050816107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a290612258565b60405180910390fd5b808060200190518101906107bf91906122a4565b915081610801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f89061231d565b60405180910390fd5b8260086000828254610813919061236c565b9250508190555050505050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108b4838261127f565b915050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108ef600160ff166105ad565b1561092f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610926906123ec565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490612458565b60405180910390fd5b620f42408110610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f9906124c4565b60405180910390fd5b8060048190555050565b60006007821115610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612530565b60405180910390fd5b6000600a54831614610a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a909061259c565b60405180910390fd5b81600a600082825417925050819055506007600a541415157f6b7e2e653f93b645d4ed7292d6429f96637084363e477c8aaea1a43ed13c284e600a54604051610ae29190611efc565b60405180910390a2600a549050919050565b610b01600260ff166105ad565b15610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b38906123ec565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690612458565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60078054610c44906120e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610c70906120e7565b8015610cbd5780601f10610c9257610100808354040283529160200191610cbd565b820191906000526020600020905b815481529060010190602001808311610ca057829003601f168201915b505050505081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060606000806000610d2986611b56565b90508086610d3791906125bc565b9250610d44888885611b83565b92508773ffffffffffffffffffffffffffffffffffffffff1630604051602401610d6e91906125f0565b6040516020818303038152906040527f70a08231000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610df891906121f5565b6000604051808303816000865af19150503d8060008114610e35576040519150601f19603f3d011682016040523d82523d6000602084013e610e3a565b606091505b50809550819650505084610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a90612258565b60405180910390fd5b83806020019051810190610e979190612620565b91508083610ea5919061236c565b821015610ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ede90612699565b60405180910390fd5b610ef18787610630565b8773ffffffffffffffffffffffffffffffffffffffff163384604051602401610f1b9291906126b9565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610fa591906121f5565b6000604051808303816000865af19150503d8060008114610fe2576040519150601f19603f3d011682016040523d82523d6000602084013e610fe7565b606091505b50809550819650505084611030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102790612258565b60405180910390fd5b8380602001905181019061104491906122a4565b945084611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d9061231d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111335780600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461112b919061236c565b925050819055505b5050505050505050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461119857600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001915050919050565b6000806060600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90612458565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040516024016113619291906126b9565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516113eb91906121f5565b6000604051808303816000865af19150503d8060008114611428576040519150601f19603f3d011682016040523d82523d6000602084013e61142d565b606091505b50809250819350505081611476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146d90612258565b60405180910390fd5b8080602001905181019061148a91906122a4565b9150816114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c39061231d565b60405180910390fd5b839250505092915050565b6114e4600460ff166105ad565b15611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b906123ec565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990612458565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006060600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116355750506117cb565b8273ffffffffffffffffffffffffffffffffffffffff168460405160240161165d9190611fb1565b6040516020818303038152906040527f3ef25013000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516116e791906121f5565b6000604051808303816000865af19150503d8060008114611724576040519150601f19603f3d011682016040523d82523d6000602084013e611729565b606091505b50809250819350505081611772576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117699061272e565b60405180910390fd5b8080602001905181019061178691906122a4565b9150816117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf9061279a565b60405180910390fd5b50505b5050565b60006060600080600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036118355750505050611b52565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1686306040516024016118819291906127ba565b6040516020818303038152906040527f23778613000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161190b91906121f5565b6000604051808303816000865af19150503d8060008114611948576040519150601f19603f3d011682016040523d82523d6000602084013e61194d565b606091505b50809450819550505083611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d9061282f565b60405180910390fd5b828060200190518101906119aa9190612620565b91508573ffffffffffffffffffffffffffffffffffffffff16306040516024016119d491906125f0565b6040516020818303038152906040527f70a08231000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a5e91906121f5565b6000604051808303816000865af19150503d8060008114611a9b576040519150601f19603f3d011682016040523d82523d6000602084013e611aa0565b606091505b50809450819550505083611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae090612258565b60405180910390fd5b82806020019051810190611afd9190612620565b9050818582611b0c919061236c565b1115611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b449061289b565b60405180910390fd5b505050505b5050565b60008060045483611b6791906128bb565b9050620f424081611b78919061292c565b905080915050919050565b600080606060008073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611bea57849350505050611d6a565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16878787604051602401611c389392919061295d565b6040516020818303038152906040527fdbb21d40000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611cc291906121f5565b6000604051808303816000865af19150503d8060008114611cff576040519150601f19603f3d011682016040523d82523d6000602084013e611d04565b606091505b50809350819450505082611d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d44906129e0565b60405180910390fd5b81806020019051810190611d619190612620565b90508093505050505b9392505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611dab81611d76565b8114611db657600080fd5b50565b600081359050611dc881611da2565b92915050565b600060208284031215611de457611de3611d71565b5b6000611df284828501611db9565b91505092915050565b60008115159050919050565b611e1081611dfb565b82525050565b6000602082019050611e2b6000830184611e07565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e6b578082015181840152602081019050611e50565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e9382611e31565b611e9d8185611e3c565b9350611ead818560208601611e4d565b611eb681611e77565b840191505092915050565b60006020820190508181036000830152611edb8184611e88565b905092915050565b6000819050919050565b611ef681611ee3565b82525050565b6000602082019050611f116000830184611eed565b92915050565b611f2081611ee3565b8114611f2b57600080fd5b50565b600081359050611f3d81611f17565b92915050565b600060208284031215611f5957611f58611d71565b5b6000611f6784828501611f2e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f9b82611f70565b9050919050565b611fab81611f90565b82525050565b6000602082019050611fc66000830184611fa2565b92915050565b611fd581611f90565b8114611fe057600080fd5b50565b600081359050611ff281611fcc565b92915050565b6000806040838503121561200f5761200e611d71565b5b600061201d85828601611fe3565b925050602061202e85828601611f2e565b9150509250929050565b60006020828403121561204e5761204d611d71565b5b600061205c84828501611fe3565b91505092915050565b60008060006060848603121561207e5761207d611d71565b5b600061208c86828701611fe3565b935050602061209d86828701611fe3565b92505060406120ae86828701611f2e565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806120ff57607f821691505b602082108103612112576121116120b8565b5b50919050565b6000819050919050565b600061213d61213861213384611f70565b612118565b611f70565b9050919050565b600061214f82612122565b9050919050565b600061216182612144565b9050919050565b61217181612156565b82525050565b600060608201905061218c6000830186611fa2565b6121996020830185612168565b6121a66040830184611eed565b949350505050565b600081519050919050565b600081905092915050565b60006121cf826121ae565b6121d981856121b9565b93506121e9818560208601611e4d565b80840191505092915050565b600061220182846121c4565b915081905092915050565b7f4552525f544f4b454e0000000000000000000000000000000000000000000000600082015250565b6000612242600983611e3c565b915061224d8261220c565b602082019050919050565b6000602082019050818103600083015261227181612235565b9050919050565b61228181611dfb565b811461228c57600080fd5b50565b60008151905061229e81612278565b92915050565b6000602082840312156122ba576122b9611d71565b5b60006122c88482850161228f565b91505092915050565b7f4552525f5452414e534645520000000000000000000000000000000000000000600082015250565b6000612307600c83611e3c565b9150612312826122d1565b602082019050919050565b60006020820190508181036000830152612336816122fa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061237782611ee3565b915061238283611ee3565b925082820190508082111561239a5761239961233d565b5b92915050565b7f4552525f5345414c000000000000000000000000000000000000000000000000600082015250565b60006123d6600883611e3c565b91506123e1826123a0565b602082019050919050565b60006020820190508181036000830152612405816123c9565b9050919050565b7f4552525f41585800000000000000000000000000000000000000000000000000600082015250565b6000612442600783611e3c565b915061244d8261240c565b602082019050919050565b6000602082019050818103600083015261247181612435565b9050919050565b7f4552525f4645455f544f4f5f4849474800000000000000000000000000000000600082015250565b60006124ae601083611e3c565b91506124b982612478565b602082019050919050565b600060208201905081810360008301526124dd816124a1565b9050919050565b7f4552525f494e56414c49445f5354415445000000000000000000000000000000600082015250565b600061251a601183611e3c565b9150612525826124e4565b602082019050919050565b600060208201905081810360008301526125498161250d565b9050919050565b7f4552525f414c52454144595f4c4f434b45440000000000000000000000000000600082015250565b6000612586601283611e3c565b915061259182612550565b602082019050919050565b600060208201905081810360008301526125b581612579565b9050919050565b60006125c782611ee3565b91506125d283611ee3565b92508282039050818111156125ea576125e961233d565b5b92915050565b60006020820190506126056000830184612168565b92915050565b60008151905061261a81611f17565b92915050565b60006020828403121561263657612635611d71565b5b60006126448482850161260b565b91505092915050565b7f4552525f42414c414e4345000000000000000000000000000000000000000000600082015250565b6000612683600b83611e3c565b915061268e8261264d565b602082019050919050565b600060208201905081810360008301526126b281612676565b9050919050565b60006040820190506126ce6000830185611fa2565b6126db6020830184611eed565b9392505050565b7f4552525f52454749535452590000000000000000000000000000000000000000600082015250565b6000612718600c83611e3c565b9150612723826126e2565b602082019050919050565b600060208201905081810360008301526127478161270b565b9050919050565b7f4552525f554e415554485f544f4b454e00000000000000000000000000000000600082015250565b6000612784601083611e3c565b915061278f8261274e565b602082019050919050565b600060208201905081810360008301526127b381612777565b9050919050565b60006040820190506127cf6000830185611fa2565b6127dc6020830184612168565b9392505050565b7f4552525f4c494d49544552000000000000000000000000000000000000000000600082015250565b6000612819600b83611e3c565b9150612824826127e3565b602082019050919050565b600060208201905081810360008301526128488161280c565b9050919050565b7f4552525f4c494d49540000000000000000000000000000000000000000000000600082015250565b6000612885600983611e3c565b91506128908261284f565b602082019050919050565b600060208201905081810360008301526128b481612878565b9050919050565b60006128c682611ee3565b91506128d183611ee3565b92508282026128df81611ee3565b915082820484148315176128f6576128f561233d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061293782611ee3565b915061294283611ee3565b925082612952576129516128fd565b5b828204905092915050565b60006060820190506129726000830186611fa2565b61297f6020830185611fa2565b61298c6040830184611eed565b949350505050565b7f4552525f51554f54455200000000000000000000000000000000000000000000600082015250565b60006129ca600a83611e3c565b91506129d582612994565b602082019050919050565b600060208201905081810360008301526129f9816129bd565b905091905056fea264697066735822122095bffcc276f241676547404f8faac049211ef18e0223c2c18e8c3afc5c660c3164736f6c63430008190033 \ No newline at end of file diff --git a/python/erc20_pool/data/SwapPool.json b/python/erc20_pool/data/SwapPool.json index 9557df8..668308c 100644 --- a/python/erc20_pool/data/SwapPool.json +++ b/python/erc20_pool/data/SwapPool.json @@ -1 +1 @@ -[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_tokenRegistry","type":"address"},{"internalType":"address","name":"_tokenLimiter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":true,"internalType":"bool","name":"_final","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_sealState","type":"uint256"}],"name":"SealStateChange","type":"event"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_state","type":"uint256"}],"name":"isSealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSealState","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"_state","type":"uint256"}],"name":"seal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sealState","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeAddress","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_quoter","type":"address"}],"name":"setQuoter","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"},{"internalType":"address","name":"_inToken","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}] +[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_tokenRegistry","type":"address"},{"internalType":"address","name":"_tokenLimiter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":true,"internalType":"bool","name":"_final","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_sealState","type":"uint256"}],"name":"SealStateChange","type":"event"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePpm","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_state","type":"uint256"}],"name":"isSealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSealState","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"quoter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_state","type":"uint256"}],"name":"seal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sealState","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeAddress","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_quoter","type":"address"}],"name":"setQuoter","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":"tokenLimiter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"},{"internalType":"address","name":"_inToken","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}] diff --git a/python/erc20_pool/data/SwapPool.metadata.json b/python/erc20_pool/data/SwapPool.metadata.json index 83f0ffa..c86fd42 100644 --- a/python/erc20_pool/data/SwapPool.metadata.json +++ b/python/erc20_pool/data/SwapPool.metadata.json @@ -1 +1 @@ -{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_tokenRegistry","type":"address"},{"internalType":"address","name":"_tokenLimiter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":true,"internalType":"bool","name":"_final","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_sealState","type":"uint256"}],"name":"SealStateChange","type":"event"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_state","type":"uint256"}],"name":"isSealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSealState","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"_state","type":"uint256"}],"name":"seal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sealState","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeAddress","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_quoter","type":"address"}],"name":"setQuoter","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"},{"internalType":"address","name":"_inToken","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"SwapPool.sol":"SwapPool"},"evmVersion":"byzantium","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"SwapPool.sol":{"keccak256":"0xa983b4d156c8caabe2c4ba228769ca472231a4404470ba6e6053aa2fbaa74f70","license":"AGPL-3.0-or-later","urls":["bzz-raw://ea16e2718c27a0780f77c7f79d23d521bac19a3001ec908a245950dc99f20c20","dweb:/ipfs/QmSQ4boJbvYGTyeR9Twv81N51xcusRtpbQv8w9aFPfXSnu"]}},"version":1} +{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_tokenRegistry","type":"address"},{"internalType":"address","name":"_tokenLimiter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":true,"internalType":"bool","name":"_final","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_sealState","type":"uint256"}],"name":"SealStateChange","type":"event"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePpm","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_state","type":"uint256"}],"name":"isSealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSealState","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"quoter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_state","type":"uint256"}],"name":"seal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sealState","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeAddress","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_quoter","type":"address"}],"name":"setQuoter","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":"tokenLimiter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"},{"internalType":"address","name":"_inToken","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"SwapPool.sol":"SwapPool"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"SwapPool.sol":{"keccak256":"0x9ee02ec01e20567b3826d24a59ca9dd2a44370c2677d9fe3bb63fb8e825ea144","license":"AGPL-3.0-or-later","urls":["bzz-raw://7212535e790c2e2d7a1b32748a44bce7eea05e4f07afb3fcaf095565bc3be061","dweb:/ipfs/QmSBfXW4XnYSUU7ZgzfgkmSmPD28p1CCqpkrtQHbpGsNKB"]}},"version":1} diff --git a/solidity/Makefile b/solidity/Makefile index 71413bd..e5afd0c 100644 --- a/solidity/Makefile +++ b/solidity/Makefile @@ -1,13 +1,13 @@ -SOLC = /usr/bin/solc +SOLC = /usr/local/bin/solc all: - $(SOLC) --bin SwapPool.sol --evm-version byzantium | awk 'NR>3' > SwapPool.bin - $(SOLC) --abi SwapPool.sol --evm-version byzantium | awk 'NR>3' > SwapPool.json - $(SOLC) --metadata SwapPool.sol --evm-version byzantium | awk 'NR>3' > SwapPool.metadata.json + $(SOLC) --bin SwapPool.sol --evm-version istanbul | awk 'NR>3' > SwapPool.bin + $(SOLC) --abi SwapPool.sol --evm-version istanbul | awk 'NR>3' > SwapPool.json + $(SOLC) --metadata SwapPool.sol --evm-version istanbul | awk 'NR>3' > SwapPool.metadata.json truncate -s -1 SwapPool.bin - $(SOLC) --bin DecimalQuote.sol --evm-version byzantium | awk 'NR>3' > DecimalQuote.bin - $(SOLC) --abi DecimalQuote.sol --evm-version byzantium | awk 'NR>3' > DecimalQuote.json - $(SOLC) --metadata DecimalQuote.sol --evm-version byzantium | awk 'NR>3' > DecimalQuote.metadata.json + $(SOLC) --bin DecimalQuote.sol --evm-version istanbul | awk 'NR>3' > DecimalQuote.bin + $(SOLC) --abi DecimalQuote.sol --evm-version istanbul | awk 'NR>3' > DecimalQuote.json + $(SOLC) --metadata DecimalQuote.sol --evm-version istanbul | awk 'NR>3' > DecimalQuote.metadata.json truncate -s -1 DecimalQuote.bin install: all diff --git a/solidity/SwapPool.sol b/solidity/SwapPool.sol index 046de28..609b59d 100644 --- a/solidity/SwapPool.sol +++ b/solidity/SwapPool.sol @@ -9,11 +9,11 @@ contract SwapPool { // Implements EIP173 address public owner; - address tokenRegistry; - address tokenLimiter; - address quoter; - uint256 feePpm; - address feeAddress; + address public tokenRegistry; + address public tokenLimiter; + address public quoter; + uint256 public feePpm; + address public feeAddress; string public name; string public symbol;