diff --git a/build/contracts/BETokenMall.json b/build/contracts/BETokenMall.json index 1f0bb28..f68f4f7 100644 --- a/build/contracts/BETokenMall.json +++ b/build/contracts/BETokenMall.json @@ -56,6 +56,12 @@ "internalType": "uint256", "name": "amount", "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenAmount", + "type": "uint256" } ], "name": "BuyTransaction", @@ -382,9 +388,9 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_seller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20\",\"type\":\"address\"}],\"name\":\"AddERC20Suppout\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BuyTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20\",\"type\":\"address\"}],\"name\":\"RemoveERC20Suppout\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"}],\"name\":\"SellerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"TokenAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pricePre\",\"type\":\"uint256\"}],\"name\":\"UpdateTokenPrice\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc20\",\"type\":\"address\"}],\"name\":\"addERC20Support\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"buyToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"erc20Supported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeToAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"prices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc20\",\"type\":\"address\"}],\"name\":\"removeERC20Support\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"seller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeToAddress\",\"type\":\"address\"}],\"name\":\"setFeeToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"updateExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_seller\",\"type\":\"address\"}],\"name\":\"updateSeller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"updateTokenAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"updateTokenPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"buyToken(address,uint256)\":{\"details\":\"Buy token\"},\"constructor\":{\"details\":\"Constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateExecutor(address)\":{\"details\":\"update executor\"},\"updateSeller(address)\":{\"details\":\"Update seller address\"},\"updateTokenAddress(address)\":{\"details\":\"Update token address\"},\"updateTokenPrice(address,uint256)\":{\"details\":\"Update token price\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/market/BETokenMall.sol\":\"BETokenMall\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"project:/contracts/market/BETokenMall.sol\":{\"keccak256\":\"0xad7cdcaf9659e5e4c7af8596154cd2de28e0fdc53495ed5dcf5b7899d05dc6b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6432d9c3f00bc344e2be5e355a72ee93259fa72976ac5013d4a87405a41c7a66\",\"dweb:/ipfs/QmRtwet7QoCg8yEk5aGDTw2eUZCgRLNZTYvJ9C2EiFom1M\"]},\"project:/contracts/market/MallBase.sol\":{\"keccak256\":\"0x21e5909f6a86d62b20ebbc92171e8f87638f1c34e35ec88768181b7c4271de65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c487dd4637521c4e8c11697f5a9acb5188770dc89334b1ea72e2ce5058f605ab\",\"dweb:/ipfs/QmSakyzDfsYCX6VHsVfGrzuwXHWhq8PNxuMkafS1yjREhq\"]},\"project:/contracts/utils/UInt.sol\":{\"keccak256\":\"0xabf10d6f1fd47ffe04ab44b8b2f6638eece2276c3a8ba170d0c660e8212a7a8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2b1d61926fb315a771d8fd0d5d9a85ea58a154cd976a7500e12a1e2b3e14083\",\"dweb:/ipfs/QmbJkytTjjABgWbYLJBHv3uoLEAcbF7pWig71sd2rjGG2M\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620026c7380380620026c783398181016040528101906200003791906200021f565b620000576200004b620000e960201b60201c565b620000f160201b60201c565b600160048190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000266565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001e782620001ba565b9050919050565b620001f981620001da565b81146200020557600080fd5b50565b6000815190506200021981620001ee565b92915050565b60008060408385031215620002395762000238620001b5565b5b6000620002498582860162000208565b92505060206200025c8582860162000208565b9150509250929050565b61245180620002766000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80639017f79e116100a2578063cfed246b11610071578063cfed246b1461026c578063d4ee651b1461029c578063dbbdae63146102b8578063f2fde38b146102d4578063fdf397ee146102f05761010b565b80639017f79e146101e45780639d76ea5814610214578063b9d2df6114610232578063c34c08e51461024e5761010b565b806368f8fc10116100de57806368f8fc1014610184578063715018a6146101a057806374936c16146101aa5780638da5cb5b146101c65761010b565b8063083d80f91461011057806308551a531461012e578063580bb9a51461014c5780636691461a14610168575b600080fd5b61011861030c565b60405161012591906115aa565b60405180910390f35b610136610332565b60405161014391906115aa565b60405180910390f35b610166600480360381019061016191906115f6565b610358565b005b610182600480360381019061017d91906115f6565b610414565b005b61019e60048036038101906101999190611659565b610497565b005b6101a8610bae565b005b6101c460048036038101906101bf91906115f6565b610bc2565b005b6101ce610c7e565b6040516101db91906115aa565b60405180910390f35b6101fe60048036038101906101f991906115f6565b610ca7565b60405161020b91906116b4565b60405180910390f35b61021c610cc7565b60405161022991906115aa565b60405180910390f35b61024c600480360381019061024791906115f6565b610ced565b005b610256610df7565b60405161026391906115aa565b60405180910390f35b610286600480360381019061028191906115f6565b610e1d565b60405161029391906116de565b60405180910390f35b6102b660048036038101906102b19190611659565b610e35565b005b6102d260048036038101906102cd91906115f6565b610f05565b005b6102ee60048036038101906102e991906115f6565b610f88565b005b61030a600480360381019061030591906115f6565b61100c565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103606110a6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156103d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c79061177c565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61041c6110a6565b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2f0c7f17be551d1f4566672cd67adbe50173e96632f56ff80d80acc4ac00f3288160405161048c91906115aa565b60405180910390a150565b61049f611124565b600081116104e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d9906117e8565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661056e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105659061187a565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e7906118e6565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610661919061191b565b90506000620f42408260126106769190611977565b600a6106829190611ade565b84600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106cd9190611b29565b6106d79190611b29565b6106e19190611bb2565b905060006106ed611174565b905081600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161076d91906115aa565b602060405180830381865afa15801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ae919061191b565b10156107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690611c55565b60405180910390fd5b81600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040161086f929190611c75565b602060405180830381865afa15801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b0919061191b565b10156108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890611d36565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161092b91906115aa565b602060405180830381865afa158015610948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096c919061191b565b10156109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490611dc8565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e83306040518363ffffffff1660e01b81526004016109e9929190611c75565b602060405180830381865afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a919061191b565b1015610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290611e5a565b60405180910390fd5b610aba81600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868873ffffffffffffffffffffffffffffffffffffffff1661117c909392919063ffffffff16565b610b2b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168284600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661117c909392919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fbfd6473e0f65781db0f0a6e4007ea9de65ab2147cfa7f7d21571b09d9909f488600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168787604051610b9793929190611e7a565b60405180910390a2505050610baa611205565b5050565b610bb66110a6565b610bc0600061120f565b565b610bca6110a6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190611efd565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60036020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cf56110a6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c90611f69565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f636dc55442e1c73ff1acc6b88f4522b3b047cd6b5b53076466fe6efc132b7d9781604051610dec91906115aa565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b610e3d6110a6565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f6ef4f75898b1bc6ecd3c31efb5dd41fa825f83ee3ca1161450111af12115f7cc838383604051610ef893929190611f89565b60405180910390a1505050565b610f0d6110a6565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f23f2097b71161a90dbfd59b7b5b640faa141a92879c92b730aceb986a583886581604051610f7d91906115aa565b60405180910390a150565b610f906110a6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff790612032565b60405180910390fd5b6110098161120f565b50565b6110146110a6565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3f9e7e7de58452376347303ed83ad0a3680a82bcb8bfe7541fb27efba64adf6a8160405161109b91906115aa565b60405180910390a150565b6110ae611174565b73ffffffffffffffffffffffffffffffffffffffff166110cc610c7e565b73ffffffffffffffffffffffffffffffffffffffff1614611122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111199061209e565b60405180910390fd5b565b6002600454141561116a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111619061210a565b60405180910390fd5b6002600481905550565b600033905090565b6111ff846323b872dd60e01b85858560405160240161119d93929190611e7a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112d3565b50505050565b6001600481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611335826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661139b9092919063ffffffff16565b90506000815114806113575750808060200190518101906113569190612156565b5b611396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138d906121f5565b60405180910390fd5b505050565b60606113aa84846000856113b3565b90509392505050565b6060824710156113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612287565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114219190612321565b60006040518083038185875af1925050503d806000811461145e576040519150601f19603f3d011682016040523d82523d6000602084013e611463565b606091505b509150915061147487838387611480565b92505050949350505050565b606083156114e3576000835114156114db5761149b856114f6565b6114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190612384565b60405180910390fd5b5b8290506114ee565b6114ed8383611519565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561152c5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156091906123f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061159482611569565b9050919050565b6115a481611589565b82525050565b60006020820190506115bf600083018461159b565b92915050565b600080fd5b6115d381611589565b81146115de57600080fd5b50565b6000813590506115f0816115ca565b92915050565b60006020828403121561160c5761160b6115c5565b5b600061161a848285016115e1565b91505092915050565b6000819050919050565b61163681611623565b811461164157600080fd5b50565b6000813590506116538161162d565b92915050565b600080604083850312156116705761166f6115c5565b5b600061167e858286016115e1565b925050602061168f85828601611644565b9150509250929050565b60008115159050919050565b6116ae81611699565b82525050565b60006020820190506116c960008301846116a5565b92915050565b6116d881611623565b82525050565b60006020820190506116f360008301846116cf565b92915050565b600082825260208201905092915050565b7f66656520726563656976656420616464726573732063616e206e6f742062652060008201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b60006117666024836116f9565b91506117718261170a565b604082019050919050565b6000602082019050818103600083015261179581611759565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c696420616d6f756e740000000000600082015250565b60006117d2601b836116f9565b91506117dd8261179c565b602082019050919050565b60006020820190508181036000830152611801816117c5565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c6964207061796d656e74206d657460008201527f686f640000000000000000000000000000000000000000000000000000000000602082015250565b60006118646023836116f9565b915061186f82611808565b604082019050919050565b6000602082019050818103600083015261189381611857565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c696420746f6b656e207072696365600082015250565b60006118d06020836116f9565b91506118db8261189a565b602082019050919050565b600060208201905081810360008301526118ff816118c3565b9050919050565b6000815190506119158161162d565b92915050565b600060208284031215611931576119306115c5565b5b600061193f84828501611906565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198282611623565b915061198d83611623565b9250828210156119a05761199f611948565b5b828203905092915050565b60008160011c9050919050565b6000808291508390505b6001851115611a02578086048111156119de576119dd611948565b5b60018516156119ed5780820291505b80810290506119fb856119ab565b94506119c2565b94509492505050565b600082611a1b5760019050611ad7565b81611a295760009050611ad7565b8160018114611a3f5760028114611a4957611a78565b6001915050611ad7565b60ff841115611a5b57611a5a611948565b5b8360020a915084821115611a7257611a71611948565b5b50611ad7565b5060208310610133831016604e8410600b8410161715611aad5782820a905083811115611aa857611aa7611948565b5b611ad7565b611aba84848460016119b8565b92509050818404811115611ad157611ad0611948565b5b81810290505b9392505050565b6000611ae982611623565b9150611af483611623565b9250611b217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611a0b565b905092915050565b6000611b3482611623565b9150611b3f83611623565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b7857611b77611948565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611bbd82611623565b9150611bc883611623565b925082611bd857611bd7611b83565b5b828204905092915050565b7f4245546f6b656e4d616c6c3a2073656c6c657220646f65736e2774206861766560008201527f20656e6f75676820746f6b656e20746f2073656c6c2074686973206974656d00602082015250565b6000611c3f603f836116f9565b9150611c4a82611be3565b604082019050919050565b60006020820190508181036000830152611c6e81611c32565b9050919050565b6000604082019050611c8a600083018561159b565b611c97602083018461159b565b9392505050565b7f4245546f6b656e4d616c6c3a2073656c6c657220646f65736e2774206170707260008201527f6f766520656e6f75676820746f6b656e20746f2073656c6c207468697320697460208201527f656d000000000000000000000000000000000000000000000000000000000000604082015250565b6000611d206042836116f9565b9150611d2b82611c9e565b606082019050919050565b60006020820190508181036000830152611d4f81611d13565b9050919050565b7f4245546f6b656e4d616c6c3a20627579657220646f65736e277420686176652060008201527f656e6f75676820746f6b656e20746f206275792074686973206974656d000000602082015250565b6000611db2603d836116f9565b9150611dbd82611d56565b604082019050919050565b60006020820190508181036000830152611de181611da5565b9050919050565b7f4245546f6b656e4d616c6c3a20627579657220646f65736e277420617070726f60008201527f766520656e6f75676820746f6b656e20746f206275792074686973206974656d602082015250565b6000611e446040836116f9565b9150611e4f82611de8565b604082019050919050565b60006020820190508181036000830152611e7381611e37565b9050919050565b6000606082019050611e8f600083018661159b565b611e9c602083018561159b565b611ea960408301846116cf565b949350505050565b7f616464726573732063616e206e6f74206265207a65726f000000000000000000600082015250565b6000611ee76017836116f9565b9150611ef282611eb1565b602082019050919050565b60006020820190508181036000830152611f1681611eda565b9050919050565b7f45524332302061646472657373206973207a65726f0000000000000000000000600082015250565b6000611f536015836116f9565b9150611f5e82611f1d565b602082019050919050565b60006020820190508181036000830152611f8281611f46565b9050919050565b6000606082019050611f9e600083018661159b565b611fab60208301856116cf565b611fb860408301846116cf565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061201c6026836116f9565b915061202782611fc0565b604082019050919050565b6000602082019050818103600083015261204b8161200f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006120886020836116f9565b915061209382612052565b602082019050919050565b600060208201905081810360008301526120b78161207b565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006120f4601f836116f9565b91506120ff826120be565b602082019050919050565b60006020820190508181036000830152612123816120e7565b9050919050565b61213381611699565b811461213e57600080fd5b50565b6000815190506121508161212a565b92915050565b60006020828403121561216c5761216b6115c5565b5b600061217a84828501612141565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006121df602a836116f9565b91506121ea82612183565b604082019050919050565b6000602082019050818103600083015261220e816121d2565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006122716026836116f9565b915061227c82612215565b604082019050919050565b600060208201905081810360008301526122a081612264565b9050919050565b600081519050919050565b600081905092915050565b60005b838110156122db5780820151818401526020810190506122c0565b838111156122ea576000848401525b50505050565b60006122fb826122a7565b61230581856122b2565b93506123158185602086016122bd565b80840191505092915050565b600061232d82846122f0565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061236e601d836116f9565b915061237982612338565b602082019050919050565b6000602082019050818103600083015261239d81612361565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b60006123cb826123a4565b6123d581856116f9565b93506123e58185602086016122bd565b6123ee816123af565b840191505092915050565b6000602082019050818103600083015261241381846123c0565b90509291505056fea2646970667358221220c8dded236e3de65f61d4423d7832becf7e5ff6afa6130ada646eec7841ab98cd64736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80639017f79e116100a2578063cfed246b11610071578063cfed246b1461026c578063d4ee651b1461029c578063dbbdae63146102b8578063f2fde38b146102d4578063fdf397ee146102f05761010b565b80639017f79e146101e45780639d76ea5814610214578063b9d2df6114610232578063c34c08e51461024e5761010b565b806368f8fc10116100de57806368f8fc1014610184578063715018a6146101a057806374936c16146101aa5780638da5cb5b146101c65761010b565b8063083d80f91461011057806308551a531461012e578063580bb9a51461014c5780636691461a14610168575b600080fd5b61011861030c565b60405161012591906115aa565b60405180910390f35b610136610332565b60405161014391906115aa565b60405180910390f35b610166600480360381019061016191906115f6565b610358565b005b610182600480360381019061017d91906115f6565b610414565b005b61019e60048036038101906101999190611659565b610497565b005b6101a8610bae565b005b6101c460048036038101906101bf91906115f6565b610bc2565b005b6101ce610c7e565b6040516101db91906115aa565b60405180910390f35b6101fe60048036038101906101f991906115f6565b610ca7565b60405161020b91906116b4565b60405180910390f35b61021c610cc7565b60405161022991906115aa565b60405180910390f35b61024c600480360381019061024791906115f6565b610ced565b005b610256610df7565b60405161026391906115aa565b60405180910390f35b610286600480360381019061028191906115f6565b610e1d565b60405161029391906116de565b60405180910390f35b6102b660048036038101906102b19190611659565b610e35565b005b6102d260048036038101906102cd91906115f6565b610f05565b005b6102ee60048036038101906102e991906115f6565b610f88565b005b61030a600480360381019061030591906115f6565b61100c565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103606110a6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156103d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c79061177c565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61041c6110a6565b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2f0c7f17be551d1f4566672cd67adbe50173e96632f56ff80d80acc4ac00f3288160405161048c91906115aa565b60405180910390a150565b61049f611124565b600081116104e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d9906117e8565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661056e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105659061187a565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e7906118e6565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610661919061191b565b90506000620f42408260126106769190611977565b600a6106829190611ade565b84600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106cd9190611b29565b6106d79190611b29565b6106e19190611bb2565b905060006106ed611174565b905081600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161076d91906115aa565b602060405180830381865afa15801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ae919061191b565b10156107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690611c55565b60405180910390fd5b81600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040161086f929190611c75565b602060405180830381865afa15801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b0919061191b565b10156108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890611d36565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161092b91906115aa565b602060405180830381865afa158015610948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096c919061191b565b10156109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490611dc8565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e83306040518363ffffffff1660e01b81526004016109e9929190611c75565b602060405180830381865afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a919061191b565b1015610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290611e5a565b60405180910390fd5b610aba81600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868873ffffffffffffffffffffffffffffffffffffffff1661117c909392919063ffffffff16565b610b2b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168284600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661117c909392919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fbfd6473e0f65781db0f0a6e4007ea9de65ab2147cfa7f7d21571b09d9909f488600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168787604051610b9793929190611e7a565b60405180910390a2505050610baa611205565b5050565b610bb66110a6565b610bc0600061120f565b565b610bca6110a6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190611efd565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60036020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cf56110a6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c90611f69565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f636dc55442e1c73ff1acc6b88f4522b3b047cd6b5b53076466fe6efc132b7d9781604051610dec91906115aa565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b610e3d6110a6565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f6ef4f75898b1bc6ecd3c31efb5dd41fa825f83ee3ca1161450111af12115f7cc838383604051610ef893929190611f89565b60405180910390a1505050565b610f0d6110a6565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f23f2097b71161a90dbfd59b7b5b640faa141a92879c92b730aceb986a583886581604051610f7d91906115aa565b60405180910390a150565b610f906110a6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff790612032565b60405180910390fd5b6110098161120f565b50565b6110146110a6565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3f9e7e7de58452376347303ed83ad0a3680a82bcb8bfe7541fb27efba64adf6a8160405161109b91906115aa565b60405180910390a150565b6110ae611174565b73ffffffffffffffffffffffffffffffffffffffff166110cc610c7e565b73ffffffffffffffffffffffffffffffffffffffff1614611122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111199061209e565b60405180910390fd5b565b6002600454141561116a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111619061210a565b60405180910390fd5b6002600481905550565b600033905090565b6111ff846323b872dd60e01b85858560405160240161119d93929190611e7a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112d3565b50505050565b6001600481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611335826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661139b9092919063ffffffff16565b90506000815114806113575750808060200190518101906113569190612156565b5b611396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138d906121f5565b60405180910390fd5b505050565b60606113aa84846000856113b3565b90509392505050565b6060824710156113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612287565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114219190612321565b60006040518083038185875af1925050503d806000811461145e576040519150601f19603f3d011682016040523d82523d6000602084013e611463565b606091505b509150915061147487838387611480565b92505050949350505050565b606083156114e3576000835114156114db5761149b856114f6565b6114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190612384565b60405180910390fd5b5b8290506114ee565b6114ed8383611519565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561152c5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156091906123f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061159482611569565b9050919050565b6115a481611589565b82525050565b60006020820190506115bf600083018461159b565b92915050565b600080fd5b6115d381611589565b81146115de57600080fd5b50565b6000813590506115f0816115ca565b92915050565b60006020828403121561160c5761160b6115c5565b5b600061161a848285016115e1565b91505092915050565b6000819050919050565b61163681611623565b811461164157600080fd5b50565b6000813590506116538161162d565b92915050565b600080604083850312156116705761166f6115c5565b5b600061167e858286016115e1565b925050602061168f85828601611644565b9150509250929050565b60008115159050919050565b6116ae81611699565b82525050565b60006020820190506116c960008301846116a5565b92915050565b6116d881611623565b82525050565b60006020820190506116f360008301846116cf565b92915050565b600082825260208201905092915050565b7f66656520726563656976656420616464726573732063616e206e6f742062652060008201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b60006117666024836116f9565b91506117718261170a565b604082019050919050565b6000602082019050818103600083015261179581611759565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c696420616d6f756e740000000000600082015250565b60006117d2601b836116f9565b91506117dd8261179c565b602082019050919050565b60006020820190508181036000830152611801816117c5565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c6964207061796d656e74206d657460008201527f686f640000000000000000000000000000000000000000000000000000000000602082015250565b60006118646023836116f9565b915061186f82611808565b604082019050919050565b6000602082019050818103600083015261189381611857565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c696420746f6b656e207072696365600082015250565b60006118d06020836116f9565b91506118db8261189a565b602082019050919050565b600060208201905081810360008301526118ff816118c3565b9050919050565b6000815190506119158161162d565b92915050565b600060208284031215611931576119306115c5565b5b600061193f84828501611906565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198282611623565b915061198d83611623565b9250828210156119a05761199f611948565b5b828203905092915050565b60008160011c9050919050565b6000808291508390505b6001851115611a02578086048111156119de576119dd611948565b5b60018516156119ed5780820291505b80810290506119fb856119ab565b94506119c2565b94509492505050565b600082611a1b5760019050611ad7565b81611a295760009050611ad7565b8160018114611a3f5760028114611a4957611a78565b6001915050611ad7565b60ff841115611a5b57611a5a611948565b5b8360020a915084821115611a7257611a71611948565b5b50611ad7565b5060208310610133831016604e8410600b8410161715611aad5782820a905083811115611aa857611aa7611948565b5b611ad7565b611aba84848460016119b8565b92509050818404811115611ad157611ad0611948565b5b81810290505b9392505050565b6000611ae982611623565b9150611af483611623565b9250611b217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611a0b565b905092915050565b6000611b3482611623565b9150611b3f83611623565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b7857611b77611948565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611bbd82611623565b9150611bc883611623565b925082611bd857611bd7611b83565b5b828204905092915050565b7f4245546f6b656e4d616c6c3a2073656c6c657220646f65736e2774206861766560008201527f20656e6f75676820746f6b656e20746f2073656c6c2074686973206974656d00602082015250565b6000611c3f603f836116f9565b9150611c4a82611be3565b604082019050919050565b60006020820190508181036000830152611c6e81611c32565b9050919050565b6000604082019050611c8a600083018561159b565b611c97602083018461159b565b9392505050565b7f4245546f6b656e4d616c6c3a2073656c6c657220646f65736e2774206170707260008201527f6f766520656e6f75676820746f6b656e20746f2073656c6c207468697320697460208201527f656d000000000000000000000000000000000000000000000000000000000000604082015250565b6000611d206042836116f9565b9150611d2b82611c9e565b606082019050919050565b60006020820190508181036000830152611d4f81611d13565b9050919050565b7f4245546f6b656e4d616c6c3a20627579657220646f65736e277420686176652060008201527f656e6f75676820746f6b656e20746f206275792074686973206974656d000000602082015250565b6000611db2603d836116f9565b9150611dbd82611d56565b604082019050919050565b60006020820190508181036000830152611de181611da5565b9050919050565b7f4245546f6b656e4d616c6c3a20627579657220646f65736e277420617070726f60008201527f766520656e6f75676820746f6b656e20746f206275792074686973206974656d602082015250565b6000611e446040836116f9565b9150611e4f82611de8565b604082019050919050565b60006020820190508181036000830152611e7381611e37565b9050919050565b6000606082019050611e8f600083018661159b565b611e9c602083018561159b565b611ea960408301846116cf565b949350505050565b7f616464726573732063616e206e6f74206265207a65726f000000000000000000600082015250565b6000611ee76017836116f9565b9150611ef282611eb1565b602082019050919050565b60006020820190508181036000830152611f1681611eda565b9050919050565b7f45524332302061646472657373206973207a65726f0000000000000000000000600082015250565b6000611f536015836116f9565b9150611f5e82611f1d565b602082019050919050565b60006020820190508181036000830152611f8281611f46565b9050919050565b6000606082019050611f9e600083018661159b565b611fab60208301856116cf565b611fb860408301846116cf565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061201c6026836116f9565b915061202782611fc0565b604082019050919050565b6000602082019050818103600083015261204b8161200f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006120886020836116f9565b915061209382612052565b602082019050919050565b600060208201905081810360008301526120b78161207b565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006120f4601f836116f9565b91506120ff826120be565b602082019050919050565b60006020820190508181036000830152612123816120e7565b9050919050565b61213381611699565b811461213e57600080fd5b50565b6000815190506121508161212a565b92915050565b60006020828403121561216c5761216b6115c5565b5b600061217a84828501612141565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006121df602a836116f9565b91506121ea82612183565b604082019050919050565b6000602082019050818103600083015261220e816121d2565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006122716026836116f9565b915061227c82612215565b604082019050919050565b600060208201905081810360008301526122a081612264565b9050919050565b600081519050919050565b600081905092915050565b60005b838110156122db5780820151818401526020810190506122c0565b838111156122ea576000848401525b50505050565b60006122fb826122a7565b61230581856122b2565b93506123158185602086016122bd565b80840191505092915050565b600061232d82846122f0565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061236e601d836116f9565b915061237982612338565b602082019050919050565b6000602082019050818103600083015261239d81612361565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b60006123cb826123a4565b6123d581856116f9565b93506123e58185602086016122bd565b6123ee816123af565b840191505092915050565b6000602082019050818103600083015261241381846123c0565b90509291505056fea2646970667358221220c8dded236e3de65f61d4423d7832becf7e5ff6afa6130ada646eec7841ab98cd64736f6c634300080a0033", + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_seller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20\",\"type\":\"address\"}],\"name\":\"AddERC20Suppout\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"}],\"name\":\"BuyTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20\",\"type\":\"address\"}],\"name\":\"RemoveERC20Suppout\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"}],\"name\":\"SellerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"TokenAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pricePre\",\"type\":\"uint256\"}],\"name\":\"UpdateTokenPrice\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc20\",\"type\":\"address\"}],\"name\":\"addERC20Support\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"buyToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"erc20Supported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeToAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"prices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc20\",\"type\":\"address\"}],\"name\":\"removeERC20Support\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"seller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeToAddress\",\"type\":\"address\"}],\"name\":\"setFeeToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"updateExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_seller\",\"type\":\"address\"}],\"name\":\"updateSeller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"updateTokenAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"updateTokenPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"buyToken(address,uint256)\":{\"details\":\"Buy token\"},\"constructor\":{\"details\":\"Constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateExecutor(address)\":{\"details\":\"update executor\"},\"updateSeller(address)\":{\"details\":\"Update seller address\"},\"updateTokenAddress(address)\":{\"details\":\"Update token address\"},\"updateTokenPrice(address,uint256)\":{\"details\":\"Update token price\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/market/BETokenMall.sol\":\"BETokenMall\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"project:/contracts/market/BETokenMall.sol\":{\"keccak256\":\"0xc25f7cc2cce5487dbf9a7dee96582caaf978b32b7fa0a5aa560383fc56c5c0dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1f91ac58de9e1303bcbb53f78ce47ed20b77d494060c23967665332d9084633\",\"dweb:/ipfs/QmNeu56W7NeX5G1tkrHmyxEBGVLkZMvFTkjzRU59oyjCL6\"]},\"project:/contracts/market/MallBase.sol\":{\"keccak256\":\"0x21e5909f6a86d62b20ebbc92171e8f87638f1c34e35ec88768181b7c4271de65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c487dd4637521c4e8c11697f5a9acb5188770dc89334b1ea72e2ce5058f605ab\",\"dweb:/ipfs/QmSakyzDfsYCX6VHsVfGrzuwXHWhq8PNxuMkafS1yjREhq\"]},\"project:/contracts/utils/UInt.sol\":{\"keccak256\":\"0xabf10d6f1fd47ffe04ab44b8b2f6638eece2276c3a8ba170d0c660e8212a7a8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2b1d61926fb315a771d8fd0d5d9a85ea58a154cd976a7500e12a1e2b3e14083\",\"dweb:/ipfs/QmbJkytTjjABgWbYLJBHv3uoLEAcbF7pWig71sd2rjGG2M\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200270e3803806200270e83398181016040528101906200003791906200021f565b620000576200004b620000e960201b60201c565b620000f160201b60201c565b600160048190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000266565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001e782620001ba565b9050919050565b620001f981620001da565b81146200020557600080fd5b50565b6000815190506200021981620001ee565b92915050565b60008060408385031215620002395762000238620001b5565b5b6000620002498582860162000208565b92505060206200025c8582860162000208565b9150509250929050565b61249880620002766000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80639017f79e116100a2578063cfed246b11610071578063cfed246b1461026c578063d4ee651b1461029c578063dbbdae63146102b8578063f2fde38b146102d4578063fdf397ee146102f05761010b565b80639017f79e146101e45780639d76ea5814610214578063b9d2df6114610232578063c34c08e51461024e5761010b565b806368f8fc10116100de57806368f8fc1014610184578063715018a6146101a057806374936c16146101aa5780638da5cb5b146101c65761010b565b8063083d80f91461011057806308551a531461012e578063580bb9a51461014c5780636691461a14610168575b600080fd5b61011861030c565b60405161012591906115ac565b60405180910390f35b610136610332565b60405161014391906115ac565b60405180910390f35b610166600480360381019061016191906115f8565b610358565b005b610182600480360381019061017d91906115f8565b610414565b005b61019e6004803603810190610199919061165b565b610497565b005b6101a8610bb0565b005b6101c460048036038101906101bf91906115f8565b610bc4565b005b6101ce610c80565b6040516101db91906115ac565b60405180910390f35b6101fe60048036038101906101f991906115f8565b610ca9565b60405161020b91906116b6565b60405180910390f35b61021c610cc9565b60405161022991906115ac565b60405180910390f35b61024c600480360381019061024791906115f8565b610cef565b005b610256610df9565b60405161026391906115ac565b60405180910390f35b610286600480360381019061028191906115f8565b610e1f565b60405161029391906116e0565b60405180910390f35b6102b660048036038101906102b1919061165b565b610e37565b005b6102d260048036038101906102cd91906115f8565b610f07565b005b6102ee60048036038101906102e991906115f8565b610f8a565b005b61030a600480360381019061030591906115f8565b61100e565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103606110a8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156103d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c79061177e565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61041c6110a8565b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2f0c7f17be551d1f4566672cd67adbe50173e96632f56ff80d80acc4ac00f3288160405161048c91906115ac565b60405180910390a150565b61049f611126565b600081116104e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d9906117ea565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661056e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105659061187c565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e7906118e8565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610661919061191d565b90506000620f42408260126106769190611979565b600a6106829190611ae0565b84600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106cd9190611b2b565b6106d79190611b2b565b6106e19190611bb4565b905060006106ed611176565b905081600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161076d91906115ac565b602060405180830381865afa15801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ae919061191d565b10156107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690611c57565b60405180910390fd5b81600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040161086f929190611c77565b602060405180830381865afa15801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b0919061191d565b10156108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890611d38565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161092b91906115ac565b602060405180830381865afa158015610948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096c919061191d565b10156109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490611dca565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e83306040518363ffffffff1660e01b81526004016109e9929190611c77565b602060405180830381865afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a919061191d565b1015610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290611e5c565b60405180910390fd5b610aba81600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868873ffffffffffffffffffffffffffffffffffffffff1661117e909392919063ffffffff16565b610b2b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168284600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661117e909392919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f5166b48cba8ab213ecc10493b891b79a504ffbcc01322aa2b2e7da5923a46135600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16878786604051610b999493929190611e7c565b60405180910390a2505050610bac611207565b5050565b610bb86110a8565b610bc26000611211565b565b610bcc6110a8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3390611f0d565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60036020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cf76110a8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90611f79565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f636dc55442e1c73ff1acc6b88f4522b3b047cd6b5b53076466fe6efc132b7d9781604051610dee91906115ac565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b610e3f6110a8565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f6ef4f75898b1bc6ecd3c31efb5dd41fa825f83ee3ca1161450111af12115f7cc838383604051610efa93929190611f99565b60405180910390a1505050565b610f0f6110a8565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f23f2097b71161a90dbfd59b7b5b640faa141a92879c92b730aceb986a583886581604051610f7f91906115ac565b60405180910390a150565b610f926110a8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff990612042565b60405180910390fd5b61100b81611211565b50565b6110166110a8565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3f9e7e7de58452376347303ed83ad0a3680a82bcb8bfe7541fb27efba64adf6a8160405161109d91906115ac565b60405180910390a150565b6110b0611176565b73ffffffffffffffffffffffffffffffffffffffff166110ce610c80565b73ffffffffffffffffffffffffffffffffffffffff1614611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b906120ae565b60405180910390fd5b565b6002600454141561116c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111639061211a565b60405180910390fd5b6002600481905550565b600033905090565b611201846323b872dd60e01b85858560405160240161119f9392919061213a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112d5565b50505050565b6001600481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611337826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661139d9092919063ffffffff16565b9050600081511480611359575080806020019051810190611358919061219d565b5b611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f9061223c565b60405180910390fd5b505050565b60606113ac84846000856113b5565b90509392505050565b6060824710156113fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f1906122ce565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114239190612368565b60006040518083038185875af1925050503d8060008114611460576040519150601f19603f3d011682016040523d82523d6000602084013e611465565b606091505b509150915061147687838387611482565b92505050949350505050565b606083156114e5576000835114156114dd5761149d856114f8565b6114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d3906123cb565b60405180910390fd5b5b8290506114f0565b6114ef838361151b565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561152e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115629190612440565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115968261156b565b9050919050565b6115a68161158b565b82525050565b60006020820190506115c1600083018461159d565b92915050565b600080fd5b6115d58161158b565b81146115e057600080fd5b50565b6000813590506115f2816115cc565b92915050565b60006020828403121561160e5761160d6115c7565b5b600061161c848285016115e3565b91505092915050565b6000819050919050565b61163881611625565b811461164357600080fd5b50565b6000813590506116558161162f565b92915050565b60008060408385031215611672576116716115c7565b5b6000611680858286016115e3565b925050602061169185828601611646565b9150509250929050565b60008115159050919050565b6116b08161169b565b82525050565b60006020820190506116cb60008301846116a7565b92915050565b6116da81611625565b82525050565b60006020820190506116f560008301846116d1565b92915050565b600082825260208201905092915050565b7f66656520726563656976656420616464726573732063616e206e6f742062652060008201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b60006117686024836116fb565b91506117738261170c565b604082019050919050565b600060208201905081810360008301526117978161175b565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c696420616d6f756e740000000000600082015250565b60006117d4601b836116fb565b91506117df8261179e565b602082019050919050565b60006020820190508181036000830152611803816117c7565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c6964207061796d656e74206d657460008201527f686f640000000000000000000000000000000000000000000000000000000000602082015250565b60006118666023836116fb565b91506118718261180a565b604082019050919050565b6000602082019050818103600083015261189581611859565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c696420746f6b656e207072696365600082015250565b60006118d26020836116fb565b91506118dd8261189c565b602082019050919050565b60006020820190508181036000830152611901816118c5565b9050919050565b6000815190506119178161162f565b92915050565b600060208284031215611933576119326115c7565b5b600061194184828501611908565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198482611625565b915061198f83611625565b9250828210156119a2576119a161194a565b5b828203905092915050565b60008160011c9050919050565b6000808291508390505b6001851115611a04578086048111156119e0576119df61194a565b5b60018516156119ef5780820291505b80810290506119fd856119ad565b94506119c4565b94509492505050565b600082611a1d5760019050611ad9565b81611a2b5760009050611ad9565b8160018114611a415760028114611a4b57611a7a565b6001915050611ad9565b60ff841115611a5d57611a5c61194a565b5b8360020a915084821115611a7457611a7361194a565b5b50611ad9565b5060208310610133831016604e8410600b8410161715611aaf5782820a905083811115611aaa57611aa961194a565b5b611ad9565b611abc84848460016119ba565b92509050818404811115611ad357611ad261194a565b5b81810290505b9392505050565b6000611aeb82611625565b9150611af683611625565b9250611b237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611a0d565b905092915050565b6000611b3682611625565b9150611b4183611625565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b7a57611b7961194a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611bbf82611625565b9150611bca83611625565b925082611bda57611bd9611b85565b5b828204905092915050565b7f4245546f6b656e4d616c6c3a2073656c6c657220646f65736e2774206861766560008201527f20656e6f75676820746f6b656e20746f2073656c6c2074686973206974656d00602082015250565b6000611c41603f836116fb565b9150611c4c82611be5565b604082019050919050565b60006020820190508181036000830152611c7081611c34565b9050919050565b6000604082019050611c8c600083018561159d565b611c99602083018461159d565b9392505050565b7f4245546f6b656e4d616c6c3a2073656c6c657220646f65736e2774206170707260008201527f6f766520656e6f75676820746f6b656e20746f2073656c6c207468697320697460208201527f656d000000000000000000000000000000000000000000000000000000000000604082015250565b6000611d226042836116fb565b9150611d2d82611ca0565b606082019050919050565b60006020820190508181036000830152611d5181611d15565b9050919050565b7f4245546f6b656e4d616c6c3a20627579657220646f65736e277420686176652060008201527f656e6f75676820746f6b656e20746f206275792074686973206974656d000000602082015250565b6000611db4603d836116fb565b9150611dbf82611d58565b604082019050919050565b60006020820190508181036000830152611de381611da7565b9050919050565b7f4245546f6b656e4d616c6c3a20627579657220646f65736e277420617070726f60008201527f766520656e6f75676820746f6b656e20746f206275792074686973206974656d602082015250565b6000611e466040836116fb565b9150611e5182611dea565b604082019050919050565b60006020820190508181036000830152611e7581611e39565b9050919050565b6000608082019050611e91600083018761159d565b611e9e602083018661159d565b611eab60408301856116d1565b611eb860608301846116d1565b95945050505050565b7f616464726573732063616e206e6f74206265207a65726f000000000000000000600082015250565b6000611ef76017836116fb565b9150611f0282611ec1565b602082019050919050565b60006020820190508181036000830152611f2681611eea565b9050919050565b7f45524332302061646472657373206973207a65726f0000000000000000000000600082015250565b6000611f636015836116fb565b9150611f6e82611f2d565b602082019050919050565b60006020820190508181036000830152611f9281611f56565b9050919050565b6000606082019050611fae600083018661159d565b611fbb60208301856116d1565b611fc860408301846116d1565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061202c6026836116fb565b915061203782611fd0565b604082019050919050565b6000602082019050818103600083015261205b8161201f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006120986020836116fb565b91506120a382612062565b602082019050919050565b600060208201905081810360008301526120c78161208b565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612104601f836116fb565b915061210f826120ce565b602082019050919050565b60006020820190508181036000830152612133816120f7565b9050919050565b600060608201905061214f600083018661159d565b61215c602083018561159d565b61216960408301846116d1565b949350505050565b61217a8161169b565b811461218557600080fd5b50565b60008151905061219781612171565b92915050565b6000602082840312156121b3576121b26115c7565b5b60006121c184828501612188565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000612226602a836116fb565b9150612231826121ca565b604082019050919050565b6000602082019050818103600083015261225581612219565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006122b86026836116fb565b91506122c38261225c565b604082019050919050565b600060208201905081810360008301526122e7816122ab565b9050919050565b600081519050919050565b600081905092915050565b60005b83811015612322578082015181840152602081019050612307565b83811115612331576000848401525b50505050565b6000612342826122ee565b61234c81856122f9565b935061235c818560208601612304565b80840191505092915050565b60006123748284612337565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006123b5601d836116fb565b91506123c08261237f565b602082019050919050565b600060208201905081810360008301526123e4816123a8565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b6000612412826123eb565b61241c81856116fb565b935061242c818560208601612304565b612435816123f6565b840191505092915050565b6000602082019050818103600083015261245a8184612407565b90509291505056fea2646970667358221220dc438c6637dabbca6ce6a98c0ea0f892670e16d392a21f6b4a1737f51bca43a364736f6c634300080a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80639017f79e116100a2578063cfed246b11610071578063cfed246b1461026c578063d4ee651b1461029c578063dbbdae63146102b8578063f2fde38b146102d4578063fdf397ee146102f05761010b565b80639017f79e146101e45780639d76ea5814610214578063b9d2df6114610232578063c34c08e51461024e5761010b565b806368f8fc10116100de57806368f8fc1014610184578063715018a6146101a057806374936c16146101aa5780638da5cb5b146101c65761010b565b8063083d80f91461011057806308551a531461012e578063580bb9a51461014c5780636691461a14610168575b600080fd5b61011861030c565b60405161012591906115ac565b60405180910390f35b610136610332565b60405161014391906115ac565b60405180910390f35b610166600480360381019061016191906115f8565b610358565b005b610182600480360381019061017d91906115f8565b610414565b005b61019e6004803603810190610199919061165b565b610497565b005b6101a8610bb0565b005b6101c460048036038101906101bf91906115f8565b610bc4565b005b6101ce610c80565b6040516101db91906115ac565b60405180910390f35b6101fe60048036038101906101f991906115f8565b610ca9565b60405161020b91906116b6565b60405180910390f35b61021c610cc9565b60405161022991906115ac565b60405180910390f35b61024c600480360381019061024791906115f8565b610cef565b005b610256610df9565b60405161026391906115ac565b60405180910390f35b610286600480360381019061028191906115f8565b610e1f565b60405161029391906116e0565b60405180910390f35b6102b660048036038101906102b1919061165b565b610e37565b005b6102d260048036038101906102cd91906115f8565b610f07565b005b6102ee60048036038101906102e991906115f8565b610f8a565b005b61030a600480360381019061030591906115f8565b61100e565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103606110a8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156103d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c79061177e565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61041c6110a8565b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2f0c7f17be551d1f4566672cd67adbe50173e96632f56ff80d80acc4ac00f3288160405161048c91906115ac565b60405180910390a150565b61049f611126565b600081116104e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d9906117ea565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661056e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105659061187c565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e7906118e8565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610661919061191d565b90506000620f42408260126106769190611979565b600a6106829190611ae0565b84600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106cd9190611b2b565b6106d79190611b2b565b6106e19190611bb4565b905060006106ed611176565b905081600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161076d91906115ac565b602060405180830381865afa15801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ae919061191d565b10156107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690611c57565b60405180910390fd5b81600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040161086f929190611c77565b602060405180830381865afa15801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b0919061191d565b10156108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890611d38565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161092b91906115ac565b602060405180830381865afa158015610948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096c919061191d565b10156109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490611dca565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e83306040518363ffffffff1660e01b81526004016109e9929190611c77565b602060405180830381865afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a919061191d565b1015610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290611e5c565b60405180910390fd5b610aba81600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868873ffffffffffffffffffffffffffffffffffffffff1661117e909392919063ffffffff16565b610b2b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168284600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661117e909392919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f5166b48cba8ab213ecc10493b891b79a504ffbcc01322aa2b2e7da5923a46135600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16878786604051610b999493929190611e7c565b60405180910390a2505050610bac611207565b5050565b610bb86110a8565b610bc26000611211565b565b610bcc6110a8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3390611f0d565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60036020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cf76110a8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90611f79565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f636dc55442e1c73ff1acc6b88f4522b3b047cd6b5b53076466fe6efc132b7d9781604051610dee91906115ac565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b610e3f6110a8565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f6ef4f75898b1bc6ecd3c31efb5dd41fa825f83ee3ca1161450111af12115f7cc838383604051610efa93929190611f99565b60405180910390a1505050565b610f0f6110a8565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f23f2097b71161a90dbfd59b7b5b640faa141a92879c92b730aceb986a583886581604051610f7f91906115ac565b60405180910390a150565b610f926110a8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff990612042565b60405180910390fd5b61100b81611211565b50565b6110166110a8565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3f9e7e7de58452376347303ed83ad0a3680a82bcb8bfe7541fb27efba64adf6a8160405161109d91906115ac565b60405180910390a150565b6110b0611176565b73ffffffffffffffffffffffffffffffffffffffff166110ce610c80565b73ffffffffffffffffffffffffffffffffffffffff1614611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b906120ae565b60405180910390fd5b565b6002600454141561116c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111639061211a565b60405180910390fd5b6002600481905550565b600033905090565b611201846323b872dd60e01b85858560405160240161119f9392919061213a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112d5565b50505050565b6001600481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611337826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661139d9092919063ffffffff16565b9050600081511480611359575080806020019051810190611358919061219d565b5b611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f9061223c565b60405180910390fd5b505050565b60606113ac84846000856113b5565b90509392505050565b6060824710156113fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f1906122ce565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114239190612368565b60006040518083038185875af1925050503d8060008114611460576040519150601f19603f3d011682016040523d82523d6000602084013e611465565b606091505b509150915061147687838387611482565b92505050949350505050565b606083156114e5576000835114156114dd5761149d856114f8565b6114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d3906123cb565b60405180910390fd5b5b8290506114f0565b6114ef838361151b565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561152e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115629190612440565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115968261156b565b9050919050565b6115a68161158b565b82525050565b60006020820190506115c1600083018461159d565b92915050565b600080fd5b6115d58161158b565b81146115e057600080fd5b50565b6000813590506115f2816115cc565b92915050565b60006020828403121561160e5761160d6115c7565b5b600061161c848285016115e3565b91505092915050565b6000819050919050565b61163881611625565b811461164357600080fd5b50565b6000813590506116558161162f565b92915050565b60008060408385031215611672576116716115c7565b5b6000611680858286016115e3565b925050602061169185828601611646565b9150509250929050565b60008115159050919050565b6116b08161169b565b82525050565b60006020820190506116cb60008301846116a7565b92915050565b6116da81611625565b82525050565b60006020820190506116f560008301846116d1565b92915050565b600082825260208201905092915050565b7f66656520726563656976656420616464726573732063616e206e6f742062652060008201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b60006117686024836116fb565b91506117738261170c565b604082019050919050565b600060208201905081810360008301526117978161175b565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c696420616d6f756e740000000000600082015250565b60006117d4601b836116fb565b91506117df8261179e565b602082019050919050565b60006020820190508181036000830152611803816117c7565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c6964207061796d656e74206d657460008201527f686f640000000000000000000000000000000000000000000000000000000000602082015250565b60006118666023836116fb565b91506118718261180a565b604082019050919050565b6000602082019050818103600083015261189581611859565b9050919050565b7f4245546f6b656e4d616c6c3a20696e76616c696420746f6b656e207072696365600082015250565b60006118d26020836116fb565b91506118dd8261189c565b602082019050919050565b60006020820190508181036000830152611901816118c5565b9050919050565b6000815190506119178161162f565b92915050565b600060208284031215611933576119326115c7565b5b600061194184828501611908565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198482611625565b915061198f83611625565b9250828210156119a2576119a161194a565b5b828203905092915050565b60008160011c9050919050565b6000808291508390505b6001851115611a04578086048111156119e0576119df61194a565b5b60018516156119ef5780820291505b80810290506119fd856119ad565b94506119c4565b94509492505050565b600082611a1d5760019050611ad9565b81611a2b5760009050611ad9565b8160018114611a415760028114611a4b57611a7a565b6001915050611ad9565b60ff841115611a5d57611a5c61194a565b5b8360020a915084821115611a7457611a7361194a565b5b50611ad9565b5060208310610133831016604e8410600b8410161715611aaf5782820a905083811115611aaa57611aa961194a565b5b611ad9565b611abc84848460016119ba565b92509050818404811115611ad357611ad261194a565b5b81810290505b9392505050565b6000611aeb82611625565b9150611af683611625565b9250611b237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611a0d565b905092915050565b6000611b3682611625565b9150611b4183611625565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b7a57611b7961194a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611bbf82611625565b9150611bca83611625565b925082611bda57611bd9611b85565b5b828204905092915050565b7f4245546f6b656e4d616c6c3a2073656c6c657220646f65736e2774206861766560008201527f20656e6f75676820746f6b656e20746f2073656c6c2074686973206974656d00602082015250565b6000611c41603f836116fb565b9150611c4c82611be5565b604082019050919050565b60006020820190508181036000830152611c7081611c34565b9050919050565b6000604082019050611c8c600083018561159d565b611c99602083018461159d565b9392505050565b7f4245546f6b656e4d616c6c3a2073656c6c657220646f65736e2774206170707260008201527f6f766520656e6f75676820746f6b656e20746f2073656c6c207468697320697460208201527f656d000000000000000000000000000000000000000000000000000000000000604082015250565b6000611d226042836116fb565b9150611d2d82611ca0565b606082019050919050565b60006020820190508181036000830152611d5181611d15565b9050919050565b7f4245546f6b656e4d616c6c3a20627579657220646f65736e277420686176652060008201527f656e6f75676820746f6b656e20746f206275792074686973206974656d000000602082015250565b6000611db4603d836116fb565b9150611dbf82611d58565b604082019050919050565b60006020820190508181036000830152611de381611da7565b9050919050565b7f4245546f6b656e4d616c6c3a20627579657220646f65736e277420617070726f60008201527f766520656e6f75676820746f6b656e20746f206275792074686973206974656d602082015250565b6000611e466040836116fb565b9150611e5182611dea565b604082019050919050565b60006020820190508181036000830152611e7581611e39565b9050919050565b6000608082019050611e91600083018761159d565b611e9e602083018661159d565b611eab60408301856116d1565b611eb860608301846116d1565b95945050505050565b7f616464726573732063616e206e6f74206265207a65726f000000000000000000600082015250565b6000611ef76017836116fb565b9150611f0282611ec1565b602082019050919050565b60006020820190508181036000830152611f2681611eea565b9050919050565b7f45524332302061646472657373206973207a65726f0000000000000000000000600082015250565b6000611f636015836116fb565b9150611f6e82611f2d565b602082019050919050565b60006020820190508181036000830152611f9281611f56565b9050919050565b6000606082019050611fae600083018661159d565b611fbb60208301856116d1565b611fc860408301846116d1565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061202c6026836116fb565b915061203782611fd0565b604082019050919050565b6000602082019050818103600083015261205b8161201f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006120986020836116fb565b91506120a382612062565b602082019050919050565b600060208201905081810360008301526120c78161208b565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612104601f836116fb565b915061210f826120ce565b602082019050919050565b60006020820190508181036000830152612133816120f7565b9050919050565b600060608201905061214f600083018661159d565b61215c602083018561159d565b61216960408301846116d1565b949350505050565b61217a8161169b565b811461218557600080fd5b50565b60008151905061219781612171565b92915050565b6000602082840312156121b3576121b26115c7565b5b60006121c184828501612188565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000612226602a836116fb565b9150612231826121ca565b604082019050919050565b6000602082019050818103600083015261225581612219565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006122b86026836116fb565b91506122c38261225c565b604082019050919050565b600060208201905081810360008301526122e7816122ab565b9050919050565b600081519050919050565b600081905092915050565b60005b83811015612322578082015181840152602081019050612307565b83811115612331576000848401525b50505050565b6000612342826122ee565b61234c81856122f9565b935061235c818560208601612304565b80840191505092915050565b60006123748284612337565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006123b5601d836116fb565b91506123c08261237f565b602082019050919050565b600060208201905081810360008301526123e4816123a8565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b6000612412826123eb565b61241c81856116fb565b935061242c818560208601612304565b612435816123f6565b840191505092915050565b6000602082019050818103600083015261245a8184612407565b90509291505056fea2646970667358221220dc438c6637dabbca6ce6a98c0ea0f892670e16d392a21f6b4a1737f51bca43a364736f6c634300080a0033", "immutableReferences": {}, "generatedSources": [ { @@ -1076,7 +1082,7 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:27501:10", + "src": "0:28060:10", "statements": [ { "body": { @@ -8089,39 +8095,39 @@ { "body": { "nodeType": "YulBlock", - "src": "16029:288:10", + "src": "16057:371:10", "statements": [ { "nodeType": "YulAssignment", - "src": "16039:26:10", + "src": "16067:27:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "16051:9:10" + "src": "16079:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16062:2:10", + "src": "16090:3:10", "type": "", - "value": "96" + "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16047:3:10" + "src": "16075:3:10" }, "nodeType": "YulFunctionCall", - "src": "16047:18:10" + "src": "16075:19:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "16039:4:10" + "src": "16067:4:10" } ] }, @@ -8131,19 +8137,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "16119:6:10" + "src": "16148:6:10" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "16132:9:10" + "src": "16161:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16143:1:10", + "src": "16172:1:10", "type": "", "value": "0" } @@ -8151,22 +8157,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16128:3:10" + "src": "16157:3:10" }, "nodeType": "YulFunctionCall", - "src": "16128:17:10" + "src": "16157:17:10" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "16075:43:10" + "src": "16104:43:10" }, "nodeType": "YulFunctionCall", - "src": "16075:71:10" + "src": "16104:71:10" }, "nodeType": "YulExpressionStatement", - "src": "16075:71:10" + "src": "16104:71:10" }, { "expression": { @@ -8174,19 +8180,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "16200:6:10" + "src": "16229:6:10" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "16213:9:10" + "src": "16242:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16224:2:10", + "src": "16253:2:10", "type": "", "value": "32" } @@ -8194,22 +8200,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16209:3:10" + "src": "16238:3:10" }, "nodeType": "YulFunctionCall", - "src": "16209:18:10" + "src": "16238:18:10" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "16156:43:10" + "src": "16185:43:10" }, "nodeType": "YulFunctionCall", - "src": "16156:72:10" + "src": "16185:72:10" }, "nodeType": "YulExpressionStatement", - "src": "16156:72:10" + "src": "16185:72:10" }, { "expression": { @@ -8217,19 +8223,19 @@ { "name": "value2", "nodeType": "YulIdentifier", - "src": "16282:6:10" + "src": "16311:6:10" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "16295:9:10" + "src": "16324:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16306:2:10", + "src": "16335:2:10", "type": "", "value": "64" } @@ -8237,50 +8243,99 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16291:3:10" + "src": "16320:3:10" }, "nodeType": "YulFunctionCall", - "src": "16291:18:10" + "src": "16320:18:10" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "16238:43:10" + "src": "16267:43:10" }, "nodeType": "YulFunctionCall", - "src": "16238:72:10" + "src": "16267:72:10" }, "nodeType": "YulExpressionStatement", - "src": "16238:72:10" + "src": "16267:72:10" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "16393:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16406:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16417:2:10", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16402:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "16402:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "16349:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "16349:72:10" + }, + "nodeType": "YulExpressionStatement", + "src": "16349:72:10" } ] }, - "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "15985:9:10", + "src": "16005:9:10", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "16017:6:10", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "15997:6:10", + "src": "16025:6:10", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "16005:6:10", + "src": "16033:6:10", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "16013:6:10", + "src": "16041:6:10", "type": "" } ], @@ -8288,16 +8343,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "16024:4:10", + "src": "16052:4:10", "type": "" } ], - "src": "15875:442:10" + "src": "15875:553:10" }, { "body": { "nodeType": "YulBlock", - "src": "16429:67:10", + "src": "16540:67:10", "statements": [ { "expression": { @@ -8307,12 +8362,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "16451:6:10" + "src": "16562:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16459:1:10", + "src": "16570:1:10", "type": "", "value": "0" } @@ -8320,16 +8375,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16447:3:10" + "src": "16558:3:10" }, "nodeType": "YulFunctionCall", - "src": "16447:14:10" + "src": "16558:14:10" }, { "hexValue": "616464726573732063616e206e6f74206265207a65726f", "kind": "string", "nodeType": "YulLiteral", - "src": "16463:25:10", + "src": "16574:25:10", "type": "", "value": "address can not be zero" } @@ -8337,13 +8392,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "16440:6:10" + "src": "16551:6:10" }, "nodeType": "YulFunctionCall", - "src": "16440:49:10" + "src": "16551:49:10" }, "nodeType": "YulExpressionStatement", - "src": "16440:49:10" + "src": "16551:49:10" } ] }, @@ -8353,31 +8408,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "16421:6:10", + "src": "16532:6:10", "type": "" } ], - "src": "16323:173:10" + "src": "16434:173:10" }, { "body": { "nodeType": "YulBlock", - "src": "16648:220:10", + "src": "16759:220:10", "statements": [ { "nodeType": "YulAssignment", - "src": "16658:74:10", + "src": "16769:74:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16724:3:10" + "src": "16835:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16729:2:10", + "src": "16840:2:10", "type": "", "value": "23" } @@ -8385,16 +8440,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "16665:58:10" + "src": "16776:58:10" }, "nodeType": "YulFunctionCall", - "src": "16665:67:10" + "src": "16776:67:10" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16658:3:10" + "src": "16769:3:10" } ] }, @@ -8404,34 +8459,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16830:3:10" + "src": "16941:3:10" } ], "functionName": { "name": "store_literal_in_memory_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c", "nodeType": "YulIdentifier", - "src": "16741:88:10" + "src": "16852:88:10" }, "nodeType": "YulFunctionCall", - "src": "16741:93:10" + "src": "16852:93:10" }, "nodeType": "YulExpressionStatement", - "src": "16741:93:10" + "src": "16852:93:10" }, { "nodeType": "YulAssignment", - "src": "16843:19:10", + "src": "16954:19:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16854:3:10" + "src": "16965:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16859:2:10", + "src": "16970:2:10", "type": "", "value": "32" } @@ -8439,16 +8494,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16850:3:10" + "src": "16961:3:10" }, "nodeType": "YulFunctionCall", - "src": "16850:12:10" + "src": "16961:12:10" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "16843:3:10" + "src": "16954:3:10" } ] } @@ -8460,7 +8515,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "16636:3:10", + "src": "16747:3:10", "type": "" } ], @@ -8468,31 +8523,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "16644:3:10", + "src": "16755:3:10", "type": "" } ], - "src": "16502:366:10" + "src": "16613:366:10" }, { "body": { "nodeType": "YulBlock", - "src": "17045:248:10", + "src": "17156:248:10", "statements": [ { "nodeType": "YulAssignment", - "src": "17055:26:10", + "src": "17166:26:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17067:9:10" + "src": "17178:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17078:2:10", + "src": "17189:2:10", "type": "", "value": "32" } @@ -8500,16 +8555,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17063:3:10" + "src": "17174:3:10" }, "nodeType": "YulFunctionCall", - "src": "17063:18:10" + "src": "17174:18:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "17055:4:10" + "src": "17166:4:10" } ] }, @@ -8521,12 +8576,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17102:9:10" + "src": "17213:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17113:1:10", + "src": "17224:1:10", "type": "", "value": "0" } @@ -8534,68 +8589,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17098:3:10" + "src": "17209:3:10" }, "nodeType": "YulFunctionCall", - "src": "17098:17:10" + "src": "17209:17:10" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "17121:4:10" + "src": "17232:4:10" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17127:9:10" + "src": "17238:9:10" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "17117:3:10" + "src": "17228:3:10" }, "nodeType": "YulFunctionCall", - "src": "17117:20:10" + "src": "17228:20:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "17091:6:10" + "src": "17202:6:10" }, "nodeType": "YulFunctionCall", - "src": "17091:47:10" + "src": "17202:47:10" }, "nodeType": "YulExpressionStatement", - "src": "17091:47:10" + "src": "17202:47:10" }, { "nodeType": "YulAssignment", - "src": "17147:139:10", + "src": "17258:139:10", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "17281:4:10" + "src": "17392:4:10" } ], "functionName": { "name": "abi_encode_t_stringliteral_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "17155:124:10" + "src": "17266:124:10" }, "nodeType": "YulFunctionCall", - "src": "17155:131:10" + "src": "17266:131:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "17147:4:10" + "src": "17258:4:10" } ] } @@ -8607,7 +8662,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "17025:9:10", + "src": "17136:9:10", "type": "" } ], @@ -8615,16 +8670,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "17040:4:10", + "src": "17151:4:10", "type": "" } ], - "src": "16874:419:10" + "src": "16985:419:10" }, { "body": { "nodeType": "YulBlock", - "src": "17405:65:10", + "src": "17516:65:10", "statements": [ { "expression": { @@ -8634,12 +8689,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "17427:6:10" + "src": "17538:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17435:1:10", + "src": "17546:1:10", "type": "", "value": "0" } @@ -8647,16 +8702,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17423:3:10" + "src": "17534:3:10" }, "nodeType": "YulFunctionCall", - "src": "17423:14:10" + "src": "17534:14:10" }, { "hexValue": "45524332302061646472657373206973207a65726f", "kind": "string", "nodeType": "YulLiteral", - "src": "17439:23:10", + "src": "17550:23:10", "type": "", "value": "ERC20 address is zero" } @@ -8664,13 +8719,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "17416:6:10" + "src": "17527:6:10" }, "nodeType": "YulFunctionCall", - "src": "17416:47:10" + "src": "17527:47:10" }, "nodeType": "YulExpressionStatement", - "src": "17416:47:10" + "src": "17527:47:10" } ] }, @@ -8680,31 +8735,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "17397:6:10", + "src": "17508:6:10", "type": "" } ], - "src": "17299:171:10" + "src": "17410:171:10" }, { "body": { "nodeType": "YulBlock", - "src": "17622:220:10", + "src": "17733:220:10", "statements": [ { "nodeType": "YulAssignment", - "src": "17632:74:10", + "src": "17743:74:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "17698:3:10" + "src": "17809:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17703:2:10", + "src": "17814:2:10", "type": "", "value": "21" } @@ -8712,16 +8767,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "17639:58:10" + "src": "17750:58:10" }, "nodeType": "YulFunctionCall", - "src": "17639:67:10" + "src": "17750:67:10" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "17632:3:10" + "src": "17743:3:10" } ] }, @@ -8731,34 +8786,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "17804:3:10" + "src": "17915:3:10" } ], "functionName": { "name": "store_literal_in_memory_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef", "nodeType": "YulIdentifier", - "src": "17715:88:10" + "src": "17826:88:10" }, "nodeType": "YulFunctionCall", - "src": "17715:93:10" + "src": "17826:93:10" }, "nodeType": "YulExpressionStatement", - "src": "17715:93:10" + "src": "17826:93:10" }, { "nodeType": "YulAssignment", - "src": "17817:19:10", + "src": "17928:19:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "17828:3:10" + "src": "17939:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17833:2:10", + "src": "17944:2:10", "type": "", "value": "32" } @@ -8766,16 +8821,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17824:3:10" + "src": "17935:3:10" }, "nodeType": "YulFunctionCall", - "src": "17824:12:10" + "src": "17935:12:10" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "17817:3:10" + "src": "17928:3:10" } ] } @@ -8787,7 +8842,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "17610:3:10", + "src": "17721:3:10", "type": "" } ], @@ -8795,31 +8850,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "17618:3:10", + "src": "17729:3:10", "type": "" } ], - "src": "17476:366:10" + "src": "17587:366:10" }, { "body": { "nodeType": "YulBlock", - "src": "18019:248:10", + "src": "18130:248:10", "statements": [ { "nodeType": "YulAssignment", - "src": "18029:26:10", + "src": "18140:26:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18041:9:10" + "src": "18152:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18052:2:10", + "src": "18163:2:10", "type": "", "value": "32" } @@ -8827,16 +8882,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18037:3:10" + "src": "18148:3:10" }, "nodeType": "YulFunctionCall", - "src": "18037:18:10" + "src": "18148:18:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "18029:4:10" + "src": "18140:4:10" } ] }, @@ -8848,12 +8903,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18076:9:10" + "src": "18187:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18087:1:10", + "src": "18198:1:10", "type": "", "value": "0" } @@ -8861,68 +8916,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18072:3:10" + "src": "18183:3:10" }, "nodeType": "YulFunctionCall", - "src": "18072:17:10" + "src": "18183:17:10" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "18095:4:10" + "src": "18206:4:10" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18101:9:10" + "src": "18212:9:10" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "18091:3:10" + "src": "18202:3:10" }, "nodeType": "YulFunctionCall", - "src": "18091:20:10" + "src": "18202:20:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18065:6:10" + "src": "18176:6:10" }, "nodeType": "YulFunctionCall", - "src": "18065:47:10" + "src": "18176:47:10" }, "nodeType": "YulExpressionStatement", - "src": "18065:47:10" + "src": "18176:47:10" }, { "nodeType": "YulAssignment", - "src": "18121:139:10", + "src": "18232:139:10", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "18255:4:10" + "src": "18366:4:10" } ], "functionName": { "name": "abi_encode_t_stringliteral_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "18129:124:10" + "src": "18240:124:10" }, "nodeType": "YulFunctionCall", - "src": "18129:131:10" + "src": "18240:131:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "18121:4:10" + "src": "18232:4:10" } ] } @@ -8934,7 +8989,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "17999:9:10", + "src": "18110:9:10", "type": "" } ], @@ -8942,31 +8997,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "18014:4:10", + "src": "18125:4:10", "type": "" } ], - "src": "17848:419:10" + "src": "17959:419:10" }, { "body": { "nodeType": "YulBlock", - "src": "18427:288:10", + "src": "18538:288:10", "statements": [ { "nodeType": "YulAssignment", - "src": "18437:26:10", + "src": "18548:26:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18449:9:10" + "src": "18560:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18460:2:10", + "src": "18571:2:10", "type": "", "value": "96" } @@ -8974,16 +9029,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18445:3:10" + "src": "18556:3:10" }, "nodeType": "YulFunctionCall", - "src": "18445:18:10" + "src": "18556:18:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "18437:4:10" + "src": "18548:4:10" } ] }, @@ -8993,19 +9048,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "18517:6:10" + "src": "18628:6:10" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18530:9:10" + "src": "18641:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18541:1:10", + "src": "18652:1:10", "type": "", "value": "0" } @@ -9013,22 +9068,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18526:3:10" + "src": "18637:3:10" }, "nodeType": "YulFunctionCall", - "src": "18526:17:10" + "src": "18637:17:10" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "18473:43:10" + "src": "18584:43:10" }, "nodeType": "YulFunctionCall", - "src": "18473:71:10" + "src": "18584:71:10" }, "nodeType": "YulExpressionStatement", - "src": "18473:71:10" + "src": "18584:71:10" }, { "expression": { @@ -9036,19 +9091,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "18598:6:10" + "src": "18709:6:10" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18611:9:10" + "src": "18722:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18622:2:10", + "src": "18733:2:10", "type": "", "value": "32" } @@ -9056,22 +9111,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18607:3:10" + "src": "18718:3:10" }, "nodeType": "YulFunctionCall", - "src": "18607:18:10" + "src": "18718:18:10" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "18554:43:10" + "src": "18665:43:10" }, "nodeType": "YulFunctionCall", - "src": "18554:72:10" + "src": "18665:72:10" }, "nodeType": "YulExpressionStatement", - "src": "18554:72:10" + "src": "18665:72:10" }, { "expression": { @@ -9079,19 +9134,19 @@ { "name": "value2", "nodeType": "YulIdentifier", - "src": "18680:6:10" + "src": "18791:6:10" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18693:9:10" + "src": "18804:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18704:2:10", + "src": "18815:2:10", "type": "", "value": "64" } @@ -9099,22 +9154,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18689:3:10" + "src": "18800:3:10" }, "nodeType": "YulFunctionCall", - "src": "18689:18:10" + "src": "18800:18:10" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "18636:43:10" + "src": "18747:43:10" }, "nodeType": "YulFunctionCall", - "src": "18636:72:10" + "src": "18747:72:10" }, "nodeType": "YulExpressionStatement", - "src": "18636:72:10" + "src": "18747:72:10" } ] }, @@ -9124,25 +9179,25 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "18383:9:10", + "src": "18494:9:10", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "18395:6:10", + "src": "18506:6:10", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "18403:6:10", + "src": "18514:6:10", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "18411:6:10", + "src": "18522:6:10", "type": "" } ], @@ -9150,16 +9205,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "18422:4:10", + "src": "18533:4:10", "type": "" } ], - "src": "18273:442:10" + "src": "18384:442:10" }, { "body": { "nodeType": "YulBlock", - "src": "18827:119:10", + "src": "18938:119:10", "statements": [ { "expression": { @@ -9169,12 +9224,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "18849:6:10" + "src": "18960:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18857:1:10", + "src": "18968:1:10", "type": "", "value": "0" } @@ -9182,16 +9237,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18845:3:10" + "src": "18956:3:10" }, "nodeType": "YulFunctionCall", - "src": "18845:14:10" + "src": "18956:14:10" }, { "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061", "kind": "string", "nodeType": "YulLiteral", - "src": "18861:34:10", + "src": "18972:34:10", "type": "", "value": "Ownable: new owner is the zero a" } @@ -9199,13 +9254,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18838:6:10" + "src": "18949:6:10" }, "nodeType": "YulFunctionCall", - "src": "18838:58:10" + "src": "18949:58:10" }, "nodeType": "YulExpressionStatement", - "src": "18838:58:10" + "src": "18949:58:10" }, { "expression": { @@ -9215,12 +9270,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "18917:6:10" + "src": "19028:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18925:2:10", + "src": "19036:2:10", "type": "", "value": "32" } @@ -9228,16 +9283,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18913:3:10" + "src": "19024:3:10" }, "nodeType": "YulFunctionCall", - "src": "18913:15:10" + "src": "19024:15:10" }, { "hexValue": "646472657373", "kind": "string", "nodeType": "YulLiteral", - "src": "18930:8:10", + "src": "19041:8:10", "type": "", "value": "ddress" } @@ -9245,13 +9300,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18906:6:10" + "src": "19017:6:10" }, "nodeType": "YulFunctionCall", - "src": "18906:33:10" + "src": "19017:33:10" }, "nodeType": "YulExpressionStatement", - "src": "18906:33:10" + "src": "19017:33:10" } ] }, @@ -9261,31 +9316,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "18819:6:10", + "src": "18930:6:10", "type": "" } ], - "src": "18721:225:10" + "src": "18832:225:10" }, { "body": { "nodeType": "YulBlock", - "src": "19098:220:10", + "src": "19209:220:10", "statements": [ { "nodeType": "YulAssignment", - "src": "19108:74:10", + "src": "19219:74:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "19174:3:10" + "src": "19285:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19179:2:10", + "src": "19290:2:10", "type": "", "value": "38" } @@ -9293,16 +9348,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "19115:58:10" + "src": "19226:58:10" }, "nodeType": "YulFunctionCall", - "src": "19115:67:10" + "src": "19226:67:10" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "19108:3:10" + "src": "19219:3:10" } ] }, @@ -9312,34 +9367,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "19280:3:10" + "src": "19391:3:10" } ], "functionName": { "name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "nodeType": "YulIdentifier", - "src": "19191:88:10" + "src": "19302:88:10" }, "nodeType": "YulFunctionCall", - "src": "19191:93:10" + "src": "19302:93:10" }, "nodeType": "YulExpressionStatement", - "src": "19191:93:10" + "src": "19302:93:10" }, { "nodeType": "YulAssignment", - "src": "19293:19:10", + "src": "19404:19:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "19304:3:10" + "src": "19415:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19309:2:10", + "src": "19420:2:10", "type": "", "value": "64" } @@ -9347,16 +9402,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19300:3:10" + "src": "19411:3:10" }, "nodeType": "YulFunctionCall", - "src": "19300:12:10" + "src": "19411:12:10" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "19293:3:10" + "src": "19404:3:10" } ] } @@ -9368,7 +9423,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "19086:3:10", + "src": "19197:3:10", "type": "" } ], @@ -9376,31 +9431,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "19094:3:10", + "src": "19205:3:10", "type": "" } ], - "src": "18952:366:10" + "src": "19063:366:10" }, { "body": { "nodeType": "YulBlock", - "src": "19495:248:10", + "src": "19606:248:10", "statements": [ { "nodeType": "YulAssignment", - "src": "19505:26:10", + "src": "19616:26:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19517:9:10" + "src": "19628:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19528:2:10", + "src": "19639:2:10", "type": "", "value": "32" } @@ -9408,16 +9463,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19513:3:10" + "src": "19624:3:10" }, "nodeType": "YulFunctionCall", - "src": "19513:18:10" + "src": "19624:18:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "19505:4:10" + "src": "19616:4:10" } ] }, @@ -9429,12 +9484,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19552:9:10" + "src": "19663:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19563:1:10", + "src": "19674:1:10", "type": "", "value": "0" } @@ -9442,68 +9497,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19548:3:10" + "src": "19659:3:10" }, "nodeType": "YulFunctionCall", - "src": "19548:17:10" + "src": "19659:17:10" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "19571:4:10" + "src": "19682:4:10" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19577:9:10" + "src": "19688:9:10" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "19567:3:10" + "src": "19678:3:10" }, "nodeType": "YulFunctionCall", - "src": "19567:20:10" + "src": "19678:20:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "19541:6:10" + "src": "19652:6:10" }, "nodeType": "YulFunctionCall", - "src": "19541:47:10" + "src": "19652:47:10" }, "nodeType": "YulExpressionStatement", - "src": "19541:47:10" + "src": "19652:47:10" }, { "nodeType": "YulAssignment", - "src": "19597:139:10", + "src": "19708:139:10", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "19731:4:10" + "src": "19842:4:10" } ], "functionName": { "name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "19605:124:10" + "src": "19716:124:10" }, "nodeType": "YulFunctionCall", - "src": "19605:131:10" + "src": "19716:131:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "19597:4:10" + "src": "19708:4:10" } ] } @@ -9515,7 +9570,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "19475:9:10", + "src": "19586:9:10", "type": "" } ], @@ -9523,16 +9578,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "19490:4:10", + "src": "19601:4:10", "type": "" } ], - "src": "19324:419:10" + "src": "19435:419:10" }, { "body": { "nodeType": "YulBlock", - "src": "19855:76:10", + "src": "19966:76:10", "statements": [ { "expression": { @@ -9542,12 +9597,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "19877:6:10" + "src": "19988:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19885:1:10", + "src": "19996:1:10", "type": "", "value": "0" } @@ -9555,16 +9610,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19873:3:10" + "src": "19984:3:10" }, "nodeType": "YulFunctionCall", - "src": "19873:14:10" + "src": "19984:14:10" }, { "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", "kind": "string", "nodeType": "YulLiteral", - "src": "19889:34:10", + "src": "20000:34:10", "type": "", "value": "Ownable: caller is not the owner" } @@ -9572,13 +9627,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "19866:6:10" + "src": "19977:6:10" }, "nodeType": "YulFunctionCall", - "src": "19866:58:10" + "src": "19977:58:10" }, "nodeType": "YulExpressionStatement", - "src": "19866:58:10" + "src": "19977:58:10" } ] }, @@ -9588,31 +9643,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "19847:6:10", + "src": "19958:6:10", "type": "" } ], - "src": "19749:182:10" + "src": "19860:182:10" }, { "body": { "nodeType": "YulBlock", - "src": "20083:220:10", + "src": "20194:220:10", "statements": [ { "nodeType": "YulAssignment", - "src": "20093:74:10", + "src": "20204:74:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "20159:3:10" + "src": "20270:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20164:2:10", + "src": "20275:2:10", "type": "", "value": "32" } @@ -9620,16 +9675,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "20100:58:10" + "src": "20211:58:10" }, "nodeType": "YulFunctionCall", - "src": "20100:67:10" + "src": "20211:67:10" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "20093:3:10" + "src": "20204:3:10" } ] }, @@ -9639,34 +9694,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "20265:3:10" + "src": "20376:3:10" } ], "functionName": { "name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "nodeType": "YulIdentifier", - "src": "20176:88:10" + "src": "20287:88:10" }, "nodeType": "YulFunctionCall", - "src": "20176:93:10" + "src": "20287:93:10" }, "nodeType": "YulExpressionStatement", - "src": "20176:93:10" + "src": "20287:93:10" }, { "nodeType": "YulAssignment", - "src": "20278:19:10", + "src": "20389:19:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "20289:3:10" + "src": "20400:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20294:2:10", + "src": "20405:2:10", "type": "", "value": "32" } @@ -9674,16 +9729,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20285:3:10" + "src": "20396:3:10" }, "nodeType": "YulFunctionCall", - "src": "20285:12:10" + "src": "20396:12:10" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "20278:3:10" + "src": "20389:3:10" } ] } @@ -9695,7 +9750,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "20071:3:10", + "src": "20182:3:10", "type": "" } ], @@ -9703,31 +9758,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "20079:3:10", + "src": "20190:3:10", "type": "" } ], - "src": "19937:366:10" + "src": "20048:366:10" }, { "body": { "nodeType": "YulBlock", - "src": "20480:248:10", + "src": "20591:248:10", "statements": [ { "nodeType": "YulAssignment", - "src": "20490:26:10", + "src": "20601:26:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20502:9:10" + "src": "20613:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20513:2:10", + "src": "20624:2:10", "type": "", "value": "32" } @@ -9735,16 +9790,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20498:3:10" + "src": "20609:3:10" }, "nodeType": "YulFunctionCall", - "src": "20498:18:10" + "src": "20609:18:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "20490:4:10" + "src": "20601:4:10" } ] }, @@ -9756,12 +9811,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20537:9:10" + "src": "20648:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20548:1:10", + "src": "20659:1:10", "type": "", "value": "0" } @@ -9769,68 +9824,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20533:3:10" + "src": "20644:3:10" }, "nodeType": "YulFunctionCall", - "src": "20533:17:10" + "src": "20644:17:10" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "20556:4:10" + "src": "20667:4:10" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20562:9:10" + "src": "20673:9:10" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "20552:3:10" + "src": "20663:3:10" }, "nodeType": "YulFunctionCall", - "src": "20552:20:10" + "src": "20663:20:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20526:6:10" + "src": "20637:6:10" }, "nodeType": "YulFunctionCall", - "src": "20526:47:10" + "src": "20637:47:10" }, "nodeType": "YulExpressionStatement", - "src": "20526:47:10" + "src": "20637:47:10" }, { "nodeType": "YulAssignment", - "src": "20582:139:10", + "src": "20693:139:10", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "20716:4:10" + "src": "20827:4:10" } ], "functionName": { "name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "20590:124:10" + "src": "20701:124:10" }, "nodeType": "YulFunctionCall", - "src": "20590:131:10" + "src": "20701:131:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "20582:4:10" + "src": "20693:4:10" } ] } @@ -9842,7 +9897,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "20460:9:10", + "src": "20571:9:10", "type": "" } ], @@ -9850,16 +9905,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "20475:4:10", + "src": "20586:4:10", "type": "" } ], - "src": "20309:419:10" + "src": "20420:419:10" }, { "body": { "nodeType": "YulBlock", - "src": "20840:75:10", + "src": "20951:75:10", "statements": [ { "expression": { @@ -9869,12 +9924,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "20862:6:10" + "src": "20973:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20870:1:10", + "src": "20981:1:10", "type": "", "value": "0" } @@ -9882,16 +9937,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20858:3:10" + "src": "20969:3:10" }, "nodeType": "YulFunctionCall", - "src": "20858:14:10" + "src": "20969:14:10" }, { "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", "kind": "string", "nodeType": "YulLiteral", - "src": "20874:33:10", + "src": "20985:33:10", "type": "", "value": "ReentrancyGuard: reentrant call" } @@ -9899,13 +9954,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20851:6:10" + "src": "20962:6:10" }, "nodeType": "YulFunctionCall", - "src": "20851:57:10" + "src": "20962:57:10" }, "nodeType": "YulExpressionStatement", - "src": "20851:57:10" + "src": "20962:57:10" } ] }, @@ -9915,31 +9970,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "20832:6:10", + "src": "20943:6:10", "type": "" } ], - "src": "20734:181:10" + "src": "20845:181:10" }, { "body": { "nodeType": "YulBlock", - "src": "21067:220:10", + "src": "21178:220:10", "statements": [ { "nodeType": "YulAssignment", - "src": "21077:74:10", + "src": "21188:74:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "21143:3:10" + "src": "21254:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21148:2:10", + "src": "21259:2:10", "type": "", "value": "31" } @@ -9947,16 +10002,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "21084:58:10" + "src": "21195:58:10" }, "nodeType": "YulFunctionCall", - "src": "21084:67:10" + "src": "21195:67:10" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "21077:3:10" + "src": "21188:3:10" } ] }, @@ -9966,34 +10021,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "21249:3:10" + "src": "21360:3:10" } ], "functionName": { "name": "store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", "nodeType": "YulIdentifier", - "src": "21160:88:10" + "src": "21271:88:10" }, "nodeType": "YulFunctionCall", - "src": "21160:93:10" + "src": "21271:93:10" }, "nodeType": "YulExpressionStatement", - "src": "21160:93:10" + "src": "21271:93:10" }, { "nodeType": "YulAssignment", - "src": "21262:19:10", + "src": "21373:19:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "21273:3:10" + "src": "21384:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21278:2:10", + "src": "21389:2:10", "type": "", "value": "32" } @@ -10001,16 +10056,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21269:3:10" + "src": "21380:3:10" }, "nodeType": "YulFunctionCall", - "src": "21269:12:10" + "src": "21380:12:10" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "21262:3:10" + "src": "21373:3:10" } ] } @@ -10022,7 +10077,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "21055:3:10", + "src": "21166:3:10", "type": "" } ], @@ -10030,31 +10085,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "21063:3:10", + "src": "21174:3:10", "type": "" } ], - "src": "20921:366:10" + "src": "21032:366:10" }, { "body": { "nodeType": "YulBlock", - "src": "21464:248:10", + "src": "21575:248:10", "statements": [ { "nodeType": "YulAssignment", - "src": "21474:26:10", + "src": "21585:26:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21486:9:10" + "src": "21597:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21497:2:10", + "src": "21608:2:10", "type": "", "value": "32" } @@ -10062,16 +10117,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21482:3:10" + "src": "21593:3:10" }, "nodeType": "YulFunctionCall", - "src": "21482:18:10" + "src": "21593:18:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "21474:4:10" + "src": "21585:4:10" } ] }, @@ -10083,12 +10138,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21521:9:10" + "src": "21632:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21532:1:10", + "src": "21643:1:10", "type": "", "value": "0" } @@ -10096,68 +10151,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21517:3:10" + "src": "21628:3:10" }, "nodeType": "YulFunctionCall", - "src": "21517:17:10" + "src": "21628:17:10" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "21540:4:10" + "src": "21651:4:10" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21546:9:10" + "src": "21657:9:10" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "21536:3:10" + "src": "21647:3:10" }, "nodeType": "YulFunctionCall", - "src": "21536:20:10" + "src": "21647:20:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "21510:6:10" + "src": "21621:6:10" }, "nodeType": "YulFunctionCall", - "src": "21510:47:10" + "src": "21621:47:10" }, "nodeType": "YulExpressionStatement", - "src": "21510:47:10" + "src": "21621:47:10" }, { "nodeType": "YulAssignment", - "src": "21566:139:10", + "src": "21677:139:10", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "21700:4:10" + "src": "21811:4:10" } ], "functionName": { "name": "abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "21574:124:10" + "src": "21685:124:10" }, "nodeType": "YulFunctionCall", - "src": "21574:131:10" + "src": "21685:131:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "21566:4:10" + "src": "21677:4:10" } ] } @@ -10169,7 +10224,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "21444:9:10", + "src": "21555:9:10", "type": "" } ], @@ -10177,21 +10232,229 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "21459:4:10", + "src": "21570:4:10", "type": "" } ], - "src": "21293:419:10" + "src": "21404:419:10" }, { "body": { "nodeType": "YulBlock", - "src": "21758:76:10", + "src": "21983:288:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21993:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22005:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22016:2:10", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22001:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "22001:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21993:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "22073:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22086:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22097:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22082:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "22082:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "22029:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "22029:71:10" + }, + "nodeType": "YulExpressionStatement", + "src": "22029:71:10" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "22154:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22167:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22178:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22163:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "22163:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "22110:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "22110:72:10" + }, + "nodeType": "YulExpressionStatement", + "src": "22110:72:10" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "22236:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22249:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22260:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22245:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "22245:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "22192:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "22192:72:10" + }, + "nodeType": "YulExpressionStatement", + "src": "22192:72:10" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "21939:9:10", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "21951:6:10", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "21959:6:10", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "21967:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21978:4:10", + "type": "" + } + ], + "src": "21829:442:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22317:76:10", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "21812:16:10", + "src": "22371:16:10", "statements": [ { "expression": { @@ -10199,14 +10462,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "21821:1:10", + "src": "22380:1:10", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21824:1:10", + "src": "22383:1:10", "type": "", "value": "0" } @@ -10214,13 +10477,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "21814:6:10" + "src": "22373:6:10" }, "nodeType": "YulFunctionCall", - "src": "21814:12:10" + "src": "22373:12:10" }, "nodeType": "YulExpressionStatement", - "src": "21814:12:10" + "src": "22373:12:10" } ] }, @@ -10231,44 +10494,44 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "21781:5:10" + "src": "22340:5:10" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "21803:5:10" + "src": "22362:5:10" } ], "functionName": { "name": "cleanup_t_bool", "nodeType": "YulIdentifier", - "src": "21788:14:10" + "src": "22347:14:10" }, "nodeType": "YulFunctionCall", - "src": "21788:21:10" + "src": "22347:21:10" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "21778:2:10" + "src": "22337:2:10" }, "nodeType": "YulFunctionCall", - "src": "21778:32:10" + "src": "22337:32:10" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "21771:6:10" + "src": "22330:6:10" }, "nodeType": "YulFunctionCall", - "src": "21771:40:10" + "src": "22330:40:10" }, "nodeType": "YulIf", - "src": "21768:60:10" + "src": "22327:60:10" } ] }, @@ -10278,41 +10541,41 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "21751:5:10", + "src": "22310:5:10", "type": "" } ], - "src": "21718:116:10" + "src": "22277:116:10" }, { "body": { "nodeType": "YulBlock", - "src": "21900:77:10", + "src": "22459:77:10", "statements": [ { "nodeType": "YulAssignment", - "src": "21910:22:10", + "src": "22469:22:10", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "21925:6:10" + "src": "22484:6:10" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "21919:5:10" + "src": "22478:5:10" }, "nodeType": "YulFunctionCall", - "src": "21919:13:10" + "src": "22478:13:10" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "21910:5:10" + "src": "22469:5:10" } ] }, @@ -10322,19 +10585,19 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "21965:5:10" + "src": "22524:5:10" } ], "functionName": { "name": "validator_revert_t_bool", "nodeType": "YulIdentifier", - "src": "21941:23:10" + "src": "22500:23:10" }, "nodeType": "YulFunctionCall", - "src": "21941:30:10" + "src": "22500:30:10" }, "nodeType": "YulExpressionStatement", - "src": "21941:30:10" + "src": "22500:30:10" } ] }, @@ -10344,13 +10607,13 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "21878:6:10", + "src": "22437:6:10", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "21886:3:10", + "src": "22445:3:10", "type": "" } ], @@ -10358,21 +10621,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "21894:5:10", + "src": "22453:5:10", "type": "" } ], - "src": "21840:137:10" + "src": "22399:137:10" }, { "body": { "nodeType": "YulBlock", - "src": "22057:271:10", + "src": "22616:271:10", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "22103:83:10", + "src": "22662:83:10", "statements": [ { "expression": { @@ -10380,13 +10643,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "22105:77:10" + "src": "22664:77:10" }, "nodeType": "YulFunctionCall", - "src": "22105:79:10" + "src": "22664:79:10" }, "nodeType": "YulExpressionStatement", - "src": "22105:79:10" + "src": "22664:79:10" } ] }, @@ -10397,26 +10660,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "22078:7:10" + "src": "22637:7:10" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22087:9:10" + "src": "22646:9:10" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "22074:3:10" + "src": "22633:3:10" }, "nodeType": "YulFunctionCall", - "src": "22074:23:10" + "src": "22633:23:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22099:2:10", + "src": "22658:2:10", "type": "", "value": "32" } @@ -10424,25 +10687,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "22070:3:10" + "src": "22629:3:10" }, "nodeType": "YulFunctionCall", - "src": "22070:32:10" + "src": "22629:32:10" }, "nodeType": "YulIf", - "src": "22067:119:10" + "src": "22626:119:10" }, { "nodeType": "YulBlock", - "src": "22196:125:10", + "src": "22755:125:10", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "22211:15:10", + "src": "22770:15:10", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "22225:1:10", + "src": "22784:1:10", "type": "", "value": "0" }, @@ -10450,14 +10713,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "22215:6:10", + "src": "22774:6:10", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "22240:71:10", + "src": "22799:71:10", "value": { "arguments": [ { @@ -10465,41 +10728,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22283:9:10" + "src": "22842:9:10" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "22294:6:10" + "src": "22853:6:10" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22279:3:10" + "src": "22838:3:10" }, "nodeType": "YulFunctionCall", - "src": "22279:22:10" + "src": "22838:22:10" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "22303:7:10" + "src": "22862:7:10" } ], "functionName": { "name": "abi_decode_t_bool_fromMemory", "nodeType": "YulIdentifier", - "src": "22250:28:10" + "src": "22809:28:10" }, "nodeType": "YulFunctionCall", - "src": "22250:61:10" + "src": "22809:61:10" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "22240:6:10" + "src": "22799:6:10" } ] } @@ -10513,13 +10776,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "22027:9:10", + "src": "22586:9:10", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "22038:7:10", + "src": "22597:7:10", "type": "" } ], @@ -10527,16 +10790,16 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "22050:6:10", + "src": "22609:6:10", "type": "" } ], - "src": "21983:345:10" + "src": "22542:345:10" }, { "body": { "nodeType": "YulBlock", - "src": "22440:123:10", + "src": "22999:123:10", "statements": [ { "expression": { @@ -10546,12 +10809,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "22462:6:10" + "src": "23021:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22470:1:10", + "src": "23029:1:10", "type": "", "value": "0" } @@ -10559,16 +10822,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22458:3:10" + "src": "23017:3:10" }, "nodeType": "YulFunctionCall", - "src": "22458:14:10" + "src": "23017:14:10" }, { "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e", "kind": "string", "nodeType": "YulLiteral", - "src": "22474:34:10", + "src": "23033:34:10", "type": "", "value": "SafeERC20: ERC20 operation did n" } @@ -10576,13 +10839,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22451:6:10" + "src": "23010:6:10" }, "nodeType": "YulFunctionCall", - "src": "22451:58:10" + "src": "23010:58:10" }, "nodeType": "YulExpressionStatement", - "src": "22451:58:10" + "src": "23010:58:10" }, { "expression": { @@ -10592,12 +10855,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "22530:6:10" + "src": "23089:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22538:2:10", + "src": "23097:2:10", "type": "", "value": "32" } @@ -10605,16 +10868,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22526:3:10" + "src": "23085:3:10" }, "nodeType": "YulFunctionCall", - "src": "22526:15:10" + "src": "23085:15:10" }, { "hexValue": "6f742073756363656564", "kind": "string", "nodeType": "YulLiteral", - "src": "22543:12:10", + "src": "23102:12:10", "type": "", "value": "ot succeed" } @@ -10622,13 +10885,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22519:6:10" + "src": "23078:6:10" }, "nodeType": "YulFunctionCall", - "src": "22519:37:10" + "src": "23078:37:10" }, "nodeType": "YulExpressionStatement", - "src": "22519:37:10" + "src": "23078:37:10" } ] }, @@ -10638,31 +10901,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "22432:6:10", + "src": "22991:6:10", "type": "" } ], - "src": "22334:229:10" + "src": "22893:229:10" }, { "body": { "nodeType": "YulBlock", - "src": "22715:220:10", + "src": "23274:220:10", "statements": [ { "nodeType": "YulAssignment", - "src": "22725:74:10", + "src": "23284:74:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "22791:3:10" + "src": "23350:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22796:2:10", + "src": "23355:2:10", "type": "", "value": "42" } @@ -10670,16 +10933,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "22732:58:10" + "src": "23291:58:10" }, "nodeType": "YulFunctionCall", - "src": "22732:67:10" + "src": "23291:67:10" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "22725:3:10" + "src": "23284:3:10" } ] }, @@ -10689,34 +10952,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "22897:3:10" + "src": "23456:3:10" } ], "functionName": { "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", "nodeType": "YulIdentifier", - "src": "22808:88:10" + "src": "23367:88:10" }, "nodeType": "YulFunctionCall", - "src": "22808:93:10" + "src": "23367:93:10" }, "nodeType": "YulExpressionStatement", - "src": "22808:93:10" + "src": "23367:93:10" }, { "nodeType": "YulAssignment", - "src": "22910:19:10", + "src": "23469:19:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "22921:3:10" + "src": "23480:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22926:2:10", + "src": "23485:2:10", "type": "", "value": "64" } @@ -10724,16 +10987,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22917:3:10" + "src": "23476:3:10" }, "nodeType": "YulFunctionCall", - "src": "22917:12:10" + "src": "23476:12:10" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "22910:3:10" + "src": "23469:3:10" } ] } @@ -10745,7 +11008,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "22703:3:10", + "src": "23262:3:10", "type": "" } ], @@ -10753,31 +11016,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "22711:3:10", + "src": "23270:3:10", "type": "" } ], - "src": "22569:366:10" + "src": "23128:366:10" }, { "body": { "nodeType": "YulBlock", - "src": "23112:248:10", + "src": "23671:248:10", "statements": [ { "nodeType": "YulAssignment", - "src": "23122:26:10", + "src": "23681:26:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23134:9:10" + "src": "23693:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23145:2:10", + "src": "23704:2:10", "type": "", "value": "32" } @@ -10785,16 +11048,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23130:3:10" + "src": "23689:3:10" }, "nodeType": "YulFunctionCall", - "src": "23130:18:10" + "src": "23689:18:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "23122:4:10" + "src": "23681:4:10" } ] }, @@ -10806,12 +11069,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23169:9:10" + "src": "23728:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23180:1:10", + "src": "23739:1:10", "type": "", "value": "0" } @@ -10819,68 +11082,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23165:3:10" + "src": "23724:3:10" }, "nodeType": "YulFunctionCall", - "src": "23165:17:10" + "src": "23724:17:10" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "23188:4:10" + "src": "23747:4:10" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23194:9:10" + "src": "23753:9:10" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "23184:3:10" + "src": "23743:3:10" }, "nodeType": "YulFunctionCall", - "src": "23184:20:10" + "src": "23743:20:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23158:6:10" + "src": "23717:6:10" }, "nodeType": "YulFunctionCall", - "src": "23158:47:10" + "src": "23717:47:10" }, "nodeType": "YulExpressionStatement", - "src": "23158:47:10" + "src": "23717:47:10" }, { "nodeType": "YulAssignment", - "src": "23214:139:10", + "src": "23773:139:10", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "23348:4:10" + "src": "23907:4:10" } ], "functionName": { "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "23222:124:10" + "src": "23781:124:10" }, "nodeType": "YulFunctionCall", - "src": "23222:131:10" + "src": "23781:131:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "23214:4:10" + "src": "23773:4:10" } ] } @@ -10892,7 +11155,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "23092:9:10", + "src": "23651:9:10", "type": "" } ], @@ -10900,16 +11163,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "23107:4:10", + "src": "23666:4:10", "type": "" } ], - "src": "22941:419:10" + "src": "23500:419:10" }, { "body": { "nodeType": "YulBlock", - "src": "23472:119:10", + "src": "24031:119:10", "statements": [ { "expression": { @@ -10919,12 +11182,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "23494:6:10" + "src": "24053:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23502:1:10", + "src": "24061:1:10", "type": "", "value": "0" } @@ -10932,16 +11195,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23490:3:10" + "src": "24049:3:10" }, "nodeType": "YulFunctionCall", - "src": "23490:14:10" + "src": "24049:14:10" }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f", "kind": "string", "nodeType": "YulLiteral", - "src": "23506:34:10", + "src": "24065:34:10", "type": "", "value": "Address: insufficient balance fo" } @@ -10949,13 +11212,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23483:6:10" + "src": "24042:6:10" }, "nodeType": "YulFunctionCall", - "src": "23483:58:10" + "src": "24042:58:10" }, "nodeType": "YulExpressionStatement", - "src": "23483:58:10" + "src": "24042:58:10" }, { "expression": { @@ -10965,12 +11228,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "23562:6:10" + "src": "24121:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23570:2:10", + "src": "24129:2:10", "type": "", "value": "32" } @@ -10978,16 +11241,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23558:3:10" + "src": "24117:3:10" }, "nodeType": "YulFunctionCall", - "src": "23558:15:10" + "src": "24117:15:10" }, { "hexValue": "722063616c6c", "kind": "string", "nodeType": "YulLiteral", - "src": "23575:8:10", + "src": "24134:8:10", "type": "", "value": "r call" } @@ -10995,13 +11258,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23551:6:10" + "src": "24110:6:10" }, "nodeType": "YulFunctionCall", - "src": "23551:33:10" + "src": "24110:33:10" }, "nodeType": "YulExpressionStatement", - "src": "23551:33:10" + "src": "24110:33:10" } ] }, @@ -11011,31 +11274,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "23464:6:10", + "src": "24023:6:10", "type": "" } ], - "src": "23366:225:10" + "src": "23925:225:10" }, { "body": { "nodeType": "YulBlock", - "src": "23743:220:10", + "src": "24302:220:10", "statements": [ { "nodeType": "YulAssignment", - "src": "23753:74:10", + "src": "24312:74:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "23819:3:10" + "src": "24378:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23824:2:10", + "src": "24383:2:10", "type": "", "value": "38" } @@ -11043,16 +11306,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "23760:58:10" + "src": "24319:58:10" }, "nodeType": "YulFunctionCall", - "src": "23760:67:10" + "src": "24319:67:10" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "23753:3:10" + "src": "24312:3:10" } ] }, @@ -11062,34 +11325,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "23925:3:10" + "src": "24484:3:10" } ], "functionName": { "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", "nodeType": "YulIdentifier", - "src": "23836:88:10" + "src": "24395:88:10" }, "nodeType": "YulFunctionCall", - "src": "23836:93:10" + "src": "24395:93:10" }, "nodeType": "YulExpressionStatement", - "src": "23836:93:10" + "src": "24395:93:10" }, { "nodeType": "YulAssignment", - "src": "23938:19:10", + "src": "24497:19:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "23949:3:10" + "src": "24508:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23954:2:10", + "src": "24513:2:10", "type": "", "value": "64" } @@ -11097,16 +11360,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23945:3:10" + "src": "24504:3:10" }, "nodeType": "YulFunctionCall", - "src": "23945:12:10" + "src": "24504:12:10" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "23938:3:10" + "src": "24497:3:10" } ] } @@ -11118,7 +11381,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "23731:3:10", + "src": "24290:3:10", "type": "" } ], @@ -11126,31 +11389,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "23739:3:10", + "src": "24298:3:10", "type": "" } ], - "src": "23597:366:10" + "src": "24156:366:10" }, { "body": { "nodeType": "YulBlock", - "src": "24140:248:10", + "src": "24699:248:10", "statements": [ { "nodeType": "YulAssignment", - "src": "24150:26:10", + "src": "24709:26:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24162:9:10" + "src": "24721:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24173:2:10", + "src": "24732:2:10", "type": "", "value": "32" } @@ -11158,16 +11421,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24158:3:10" + "src": "24717:3:10" }, "nodeType": "YulFunctionCall", - "src": "24158:18:10" + "src": "24717:18:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "24150:4:10" + "src": "24709:4:10" } ] }, @@ -11179,12 +11442,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24197:9:10" + "src": "24756:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24208:1:10", + "src": "24767:1:10", "type": "", "value": "0" } @@ -11192,68 +11455,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24193:3:10" + "src": "24752:3:10" }, "nodeType": "YulFunctionCall", - "src": "24193:17:10" + "src": "24752:17:10" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "24216:4:10" + "src": "24775:4:10" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24222:9:10" + "src": "24781:9:10" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "24212:3:10" + "src": "24771:3:10" }, "nodeType": "YulFunctionCall", - "src": "24212:20:10" + "src": "24771:20:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24186:6:10" + "src": "24745:6:10" }, "nodeType": "YulFunctionCall", - "src": "24186:47:10" + "src": "24745:47:10" }, "nodeType": "YulExpressionStatement", - "src": "24186:47:10" + "src": "24745:47:10" }, { "nodeType": "YulAssignment", - "src": "24242:139:10", + "src": "24801:139:10", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "24376:4:10" + "src": "24935:4:10" } ], "functionName": { "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "24250:124:10" + "src": "24809:124:10" }, "nodeType": "YulFunctionCall", - "src": "24250:131:10" + "src": "24809:131:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "24242:4:10" + "src": "24801:4:10" } ] } @@ -11265,7 +11528,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "24120:9:10", + "src": "24679:9:10", "type": "" } ], @@ -11273,41 +11536,41 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "24135:4:10", + "src": "24694:4:10", "type": "" } ], - "src": "23969:419:10" + "src": "24528:419:10" }, { "body": { "nodeType": "YulBlock", - "src": "24452:40:10", + "src": "25011:40:10", "statements": [ { "nodeType": "YulAssignment", - "src": "24463:22:10", + "src": "25022:22:10", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "24479:5:10" + "src": "25038:5:10" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "24473:5:10" + "src": "25032:5:10" }, "nodeType": "YulFunctionCall", - "src": "24473:12:10" + "src": "25032:12:10" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "24463:6:10" + "src": "25022:6:10" } ] } @@ -11319,7 +11582,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "24435:5:10", + "src": "24994:5:10", "type": "" } ], @@ -11327,30 +11590,30 @@ { "name": "length", "nodeType": "YulTypedName", - "src": "24445:6:10", + "src": "25004:6:10", "type": "" } ], - "src": "24394:98:10" + "src": "24953:98:10" }, { "body": { "nodeType": "YulBlock", - "src": "24611:34:10", + "src": "25170:34:10", "statements": [ { "nodeType": "YulAssignment", - "src": "24621:18:10", + "src": "25180:18:10", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "24636:3:10" + "src": "25195:3:10" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", - "src": "24621:11:10" + "src": "25180:11:10" } ] } @@ -11362,13 +11625,13 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "24583:3:10", + "src": "25142:3:10", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "24588:6:10", + "src": "25147:6:10", "type": "" } ], @@ -11376,24 +11639,24 @@ { "name": "updated_pos", "nodeType": "YulTypedName", - "src": "24599:11:10", + "src": "25158:11:10", "type": "" } ], - "src": "24498:147:10" + "src": "25057:147:10" }, { "body": { "nodeType": "YulBlock", - "src": "24700:258:10", + "src": "25259:258:10", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "24710:10:10", + "src": "25269:10:10", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "24719:1:10", + "src": "25278:1:10", "type": "", "value": "0" }, @@ -11401,7 +11664,7 @@ { "name": "i", "nodeType": "YulTypedName", - "src": "24714:1:10", + "src": "25273:1:10", "type": "" } ] @@ -11409,7 +11672,7 @@ { "body": { "nodeType": "YulBlock", - "src": "24779:63:10", + "src": "25338:63:10", "statements": [ { "expression": { @@ -11419,21 +11682,21 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "24804:3:10" + "src": "25363:3:10" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "24809:1:10" + "src": "25368:1:10" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24800:3:10" + "src": "25359:3:10" }, "nodeType": "YulFunctionCall", - "src": "24800:11:10" + "src": "25359:11:10" }, { "arguments": [ @@ -11442,42 +11705,42 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "24823:3:10" + "src": "25382:3:10" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "24828:1:10" + "src": "25387:1:10" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24819:3:10" + "src": "25378:3:10" }, "nodeType": "YulFunctionCall", - "src": "24819:11:10" + "src": "25378:11:10" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "24813:5:10" + "src": "25372:5:10" }, "nodeType": "YulFunctionCall", - "src": "24813:18:10" + "src": "25372:18:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24793:6:10" + "src": "25352:6:10" }, "nodeType": "YulFunctionCall", - "src": "24793:39:10" + "src": "25352:39:10" }, "nodeType": "YulExpressionStatement", - "src": "24793:39:10" + "src": "25352:39:10" } ] }, @@ -11486,41 +11749,41 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "24740:1:10" + "src": "25299:1:10" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "24743:6:10" + "src": "25302:6:10" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "24737:2:10" + "src": "25296:2:10" }, "nodeType": "YulFunctionCall", - "src": "24737:13:10" + "src": "25296:13:10" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "24751:19:10", + "src": "25310:19:10", "statements": [ { "nodeType": "YulAssignment", - "src": "24753:15:10", + "src": "25312:15:10", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "24762:1:10" + "src": "25321:1:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24765:2:10", + "src": "25324:2:10", "type": "", "value": "32" } @@ -11528,16 +11791,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24758:3:10" + "src": "25317:3:10" }, "nodeType": "YulFunctionCall", - "src": "24758:10:10" + "src": "25317:10:10" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "24753:1:10" + "src": "25312:1:10" } ] } @@ -11545,15 +11808,15 @@ }, "pre": { "nodeType": "YulBlock", - "src": "24733:3:10", + "src": "25292:3:10", "statements": [] }, - "src": "24729:113:10" + "src": "25288:113:10" }, { "body": { "nodeType": "YulBlock", - "src": "24876:76:10", + "src": "25435:76:10", "statements": [ { "expression": { @@ -11563,26 +11826,26 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "24926:3:10" + "src": "25485:3:10" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "24931:6:10" + "src": "25490:6:10" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24922:3:10" + "src": "25481:3:10" }, "nodeType": "YulFunctionCall", - "src": "24922:16:10" + "src": "25481:16:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24940:1:10", + "src": "25499:1:10", "type": "", "value": "0" } @@ -11590,13 +11853,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24915:6:10" + "src": "25474:6:10" }, "nodeType": "YulFunctionCall", - "src": "24915:27:10" + "src": "25474:27:10" }, "nodeType": "YulExpressionStatement", - "src": "24915:27:10" + "src": "25474:27:10" } ] }, @@ -11605,24 +11868,24 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "24857:1:10" + "src": "25416:1:10" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "24860:6:10" + "src": "25419:6:10" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "24854:2:10" + "src": "25413:2:10" }, "nodeType": "YulFunctionCall", - "src": "24854:13:10" + "src": "25413:13:10" }, "nodeType": "YulIf", - "src": "24851:101:10" + "src": "25410:101:10" } ] }, @@ -11632,86 +11895,86 @@ { "name": "src", "nodeType": "YulTypedName", - "src": "24682:3:10", + "src": "25241:3:10", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", - "src": "24687:3:10", + "src": "25246:3:10", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "24692:6:10", + "src": "25251:6:10", "type": "" } ], - "src": "24651:307:10" + "src": "25210:307:10" }, { "body": { "nodeType": "YulBlock", - "src": "25072:265:10", + "src": "25631:265:10", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "25082:52:10", + "src": "25641:52:10", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "25128:5:10" + "src": "25687:5:10" } ], "functionName": { "name": "array_length_t_bytes_memory_ptr", "nodeType": "YulIdentifier", - "src": "25096:31:10" + "src": "25655:31:10" }, "nodeType": "YulFunctionCall", - "src": "25096:38:10" + "src": "25655:38:10" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "25086:6:10", + "src": "25645:6:10", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "25143:95:10", + "src": "25702:95:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "25226:3:10" + "src": "25785:3:10" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "25231:6:10" + "src": "25790:6:10" } ], "functionName": { "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "25150:75:10" + "src": "25709:75:10" }, "nodeType": "YulFunctionCall", - "src": "25150:88:10" + "src": "25709:88:10" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "25143:3:10" + "src": "25702:3:10" } ] }, @@ -11723,12 +11986,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "25273:5:10" + "src": "25832:5:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25280:4:10", + "src": "25839:4:10", "type": "", "value": "0x20" } @@ -11736,62 +11999,62 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25269:3:10" + "src": "25828:3:10" }, "nodeType": "YulFunctionCall", - "src": "25269:16:10" + "src": "25828:16:10" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "25287:3:10" + "src": "25846:3:10" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "25292:6:10" + "src": "25851:6:10" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", - "src": "25247:21:10" + "src": "25806:21:10" }, "nodeType": "YulFunctionCall", - "src": "25247:52:10" + "src": "25806:52:10" }, "nodeType": "YulExpressionStatement", - "src": "25247:52:10" + "src": "25806:52:10" }, { "nodeType": "YulAssignment", - "src": "25308:23:10", + "src": "25867:23:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "25319:3:10" + "src": "25878:3:10" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "25324:6:10" + "src": "25883:6:10" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25315:3:10" + "src": "25874:3:10" }, "nodeType": "YulFunctionCall", - "src": "25315:16:10" + "src": "25874:16:10" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "25308:3:10" + "src": "25867:3:10" } ] } @@ -11803,13 +12066,13 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "25053:5:10", + "src": "25612:5:10", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "25060:3:10", + "src": "25619:3:10", "type": "" } ], @@ -11817,62 +12080,62 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "25068:3:10", + "src": "25627:3:10", "type": "" } ], - "src": "24964:373:10" + "src": "25523:373:10" }, { "body": { "nodeType": "YulBlock", - "src": "25477:137:10", + "src": "26036:137:10", "statements": [ { "nodeType": "YulAssignment", - "src": "25488:100:10", + "src": "26047:100:10", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "25575:6:10" + "src": "26134:6:10" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "25584:3:10" + "src": "26143:3:10" } ], "functionName": { "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "25495:79:10" + "src": "26054:79:10" }, "nodeType": "YulFunctionCall", - "src": "25495:93:10" + "src": "26054:93:10" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "25488:3:10" + "src": "26047:3:10" } ] }, { "nodeType": "YulAssignment", - "src": "25598:10:10", + "src": "26157:10:10", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "25605:3:10" + "src": "26164:3:10" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "25598:3:10" + "src": "26157:3:10" } ] } @@ -11884,13 +12147,13 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "25456:3:10", + "src": "26015:3:10", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "25462:6:10", + "src": "26021:6:10", "type": "" } ], @@ -11898,16 +12161,16 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "25473:3:10", + "src": "26032:3:10", "type": "" } ], - "src": "25343:271:10" + "src": "25902:271:10" }, { "body": { "nodeType": "YulBlock", - "src": "25726:73:10", + "src": "26285:73:10", "statements": [ { "expression": { @@ -11917,12 +12180,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "25748:6:10" + "src": "26307:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25756:1:10", + "src": "26315:1:10", "type": "", "value": "0" } @@ -11930,16 +12193,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25744:3:10" + "src": "26303:3:10" }, "nodeType": "YulFunctionCall", - "src": "25744:14:10" + "src": "26303:14:10" }, { "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", "kind": "string", "nodeType": "YulLiteral", - "src": "25760:31:10", + "src": "26319:31:10", "type": "", "value": "Address: call to non-contract" } @@ -11947,13 +12210,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25737:6:10" + "src": "26296:6:10" }, "nodeType": "YulFunctionCall", - "src": "25737:55:10" + "src": "26296:55:10" }, "nodeType": "YulExpressionStatement", - "src": "25737:55:10" + "src": "26296:55:10" } ] }, @@ -11963,31 +12226,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "25718:6:10", + "src": "26277:6:10", "type": "" } ], - "src": "25620:179:10" + "src": "26179:179:10" }, { "body": { "nodeType": "YulBlock", - "src": "25951:220:10", + "src": "26510:220:10", "statements": [ { "nodeType": "YulAssignment", - "src": "25961:74:10", + "src": "26520:74:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "26027:3:10" + "src": "26586:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26032:2:10", + "src": "26591:2:10", "type": "", "value": "29" } @@ -11995,16 +12258,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "25968:58:10" + "src": "26527:58:10" }, "nodeType": "YulFunctionCall", - "src": "25968:67:10" + "src": "26527:67:10" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "25961:3:10" + "src": "26520:3:10" } ] }, @@ -12014,34 +12277,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "26133:3:10" + "src": "26692:3:10" } ], "functionName": { "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", "nodeType": "YulIdentifier", - "src": "26044:88:10" + "src": "26603:88:10" }, "nodeType": "YulFunctionCall", - "src": "26044:93:10" + "src": "26603:93:10" }, "nodeType": "YulExpressionStatement", - "src": "26044:93:10" + "src": "26603:93:10" }, { "nodeType": "YulAssignment", - "src": "26146:19:10", + "src": "26705:19:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "26157:3:10" + "src": "26716:3:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26162:2:10", + "src": "26721:2:10", "type": "", "value": "32" } @@ -12049,16 +12312,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26153:3:10" + "src": "26712:3:10" }, "nodeType": "YulFunctionCall", - "src": "26153:12:10" + "src": "26712:12:10" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "26146:3:10" + "src": "26705:3:10" } ] } @@ -12070,7 +12333,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "25939:3:10", + "src": "26498:3:10", "type": "" } ], @@ -12078,31 +12341,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "25947:3:10", + "src": "26506:3:10", "type": "" } ], - "src": "25805:366:10" + "src": "26364:366:10" }, { "body": { "nodeType": "YulBlock", - "src": "26348:248:10", + "src": "26907:248:10", "statements": [ { "nodeType": "YulAssignment", - "src": "26358:26:10", + "src": "26917:26:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26370:9:10" + "src": "26929:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26381:2:10", + "src": "26940:2:10", "type": "", "value": "32" } @@ -12110,16 +12373,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26366:3:10" + "src": "26925:3:10" }, "nodeType": "YulFunctionCall", - "src": "26366:18:10" + "src": "26925:18:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "26358:4:10" + "src": "26917:4:10" } ] }, @@ -12131,12 +12394,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26405:9:10" + "src": "26964:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26416:1:10", + "src": "26975:1:10", "type": "", "value": "0" } @@ -12144,68 +12407,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26401:3:10" + "src": "26960:3:10" }, "nodeType": "YulFunctionCall", - "src": "26401:17:10" + "src": "26960:17:10" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "26424:4:10" + "src": "26983:4:10" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26430:9:10" + "src": "26989:9:10" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "26420:3:10" + "src": "26979:3:10" }, "nodeType": "YulFunctionCall", - "src": "26420:20:10" + "src": "26979:20:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "26394:6:10" + "src": "26953:6:10" }, "nodeType": "YulFunctionCall", - "src": "26394:47:10" + "src": "26953:47:10" }, "nodeType": "YulExpressionStatement", - "src": "26394:47:10" + "src": "26953:47:10" }, { "nodeType": "YulAssignment", - "src": "26450:139:10", + "src": "27009:139:10", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "26584:4:10" + "src": "27143:4:10" } ], "functionName": { "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "26458:124:10" + "src": "27017:124:10" }, "nodeType": "YulFunctionCall", - "src": "26458:131:10" + "src": "27017:131:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "26450:4:10" + "src": "27009:4:10" } ] } @@ -12217,7 +12480,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "26328:9:10", + "src": "26887:9:10", "type": "" } ], @@ -12225,41 +12488,41 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "26343:4:10", + "src": "26902:4:10", "type": "" } ], - "src": "26177:419:10" + "src": "26736:419:10" }, { "body": { "nodeType": "YulBlock", - "src": "26661:40:10", + "src": "27220:40:10", "statements": [ { "nodeType": "YulAssignment", - "src": "26672:22:10", + "src": "27231:22:10", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "26688:5:10" + "src": "27247:5:10" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "26682:5:10" + "src": "27241:5:10" }, "nodeType": "YulFunctionCall", - "src": "26682:12:10" + "src": "27241:12:10" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "26672:6:10" + "src": "27231:6:10" } ] } @@ -12271,7 +12534,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "26644:5:10", + "src": "27203:5:10", "type": "" } ], @@ -12279,20 +12542,20 @@ { "name": "length", "nodeType": "YulTypedName", - "src": "26654:6:10", + "src": "27213:6:10", "type": "" } ], - "src": "26602:99:10" + "src": "27161:99:10" }, { "body": { "nodeType": "YulBlock", - "src": "26755:54:10", + "src": "27314:54:10", "statements": [ { "nodeType": "YulAssignment", - "src": "26765:38:10", + "src": "27324:38:10", "value": { "arguments": [ { @@ -12300,12 +12563,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "26783:5:10" + "src": "27342:5:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26790:2:10", + "src": "27349:2:10", "type": "", "value": "31" } @@ -12313,17 +12576,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26779:3:10" + "src": "27338:3:10" }, "nodeType": "YulFunctionCall", - "src": "26779:14:10" + "src": "27338:14:10" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "26799:2:10", + "src": "27358:2:10", "type": "", "value": "31" } @@ -12331,25 +12594,25 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "26795:3:10" + "src": "27354:3:10" }, "nodeType": "YulFunctionCall", - "src": "26795:7:10" + "src": "27354:7:10" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "26775:3:10" + "src": "27334:3:10" }, "nodeType": "YulFunctionCall", - "src": "26775:28:10" + "src": "27334:28:10" }, "variableNames": [ { "name": "result", "nodeType": "YulIdentifier", - "src": "26765:6:10" + "src": "27324:6:10" } ] } @@ -12361,7 +12624,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "26738:5:10", + "src": "27297:5:10", "type": "" } ], @@ -12369,74 +12632,74 @@ { "name": "result", "nodeType": "YulTypedName", - "src": "26748:6:10", + "src": "27307:6:10", "type": "" } ], - "src": "26707:102:10" + "src": "27266:102:10" }, { "body": { "nodeType": "YulBlock", - "src": "26907:272:10", + "src": "27466:272:10", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "26917:53:10", + "src": "27476:53:10", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "26964:5:10" + "src": "27523:5:10" } ], "functionName": { "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", - "src": "26931:32:10" + "src": "27490:32:10" }, "nodeType": "YulFunctionCall", - "src": "26931:39:10" + "src": "27490:39:10" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "26921:6:10", + "src": "27480:6:10", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "26979:78:10", + "src": "27538:78:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "27045:3:10" + "src": "27604:3:10" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "27050:6:10" + "src": "27609:6:10" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "26986:58:10" + "src": "27545:58:10" }, "nodeType": "YulFunctionCall", - "src": "26986:71:10" + "src": "27545:71:10" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "26979:3:10" + "src": "27538:3:10" } ] }, @@ -12448,12 +12711,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "27092:5:10" + "src": "27651:5:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27099:4:10", + "src": "27658:4:10", "type": "", "value": "0x20" } @@ -12461,73 +12724,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27088:3:10" + "src": "27647:3:10" }, "nodeType": "YulFunctionCall", - "src": "27088:16:10" + "src": "27647:16:10" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "27106:3:10" + "src": "27665:3:10" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "27111:6:10" + "src": "27670:6:10" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", - "src": "27066:21:10" + "src": "27625:21:10" }, "nodeType": "YulFunctionCall", - "src": "27066:52:10" + "src": "27625:52:10" }, "nodeType": "YulExpressionStatement", - "src": "27066:52:10" + "src": "27625:52:10" }, { "nodeType": "YulAssignment", - "src": "27127:46:10", + "src": "27686:46:10", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "27138:3:10" + "src": "27697:3:10" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "27165:6:10" + "src": "27724:6:10" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", - "src": "27143:21:10" + "src": "27702:21:10" }, "nodeType": "YulFunctionCall", - "src": "27143:29:10" + "src": "27702:29:10" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27134:3:10" + "src": "27693:3:10" }, "nodeType": "YulFunctionCall", - "src": "27134:39:10" + "src": "27693:39:10" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "27127:3:10" + "src": "27686:3:10" } ] } @@ -12539,13 +12802,13 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "26888:5:10", + "src": "27447:5:10", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "26895:3:10", + "src": "27454:3:10", "type": "" } ], @@ -12553,31 +12816,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "26903:3:10", + "src": "27462:3:10", "type": "" } ], - "src": "26815:364:10" + "src": "27374:364:10" }, { "body": { "nodeType": "YulBlock", - "src": "27303:195:10", + "src": "27862:195:10", "statements": [ { "nodeType": "YulAssignment", - "src": "27313:26:10", + "src": "27872:26:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27325:9:10" + "src": "27884:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27336:2:10", + "src": "27895:2:10", "type": "", "value": "32" } @@ -12585,16 +12848,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27321:3:10" + "src": "27880:3:10" }, "nodeType": "YulFunctionCall", - "src": "27321:18:10" + "src": "27880:18:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "27313:4:10" + "src": "27872:4:10" } ] }, @@ -12606,12 +12869,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27360:9:10" + "src": "27919:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27371:1:10", + "src": "27930:1:10", "type": "", "value": "0" } @@ -12619,73 +12882,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27356:3:10" + "src": "27915:3:10" }, "nodeType": "YulFunctionCall", - "src": "27356:17:10" + "src": "27915:17:10" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "27379:4:10" + "src": "27938:4:10" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27385:9:10" + "src": "27944:9:10" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "27375:3:10" + "src": "27934:3:10" }, "nodeType": "YulFunctionCall", - "src": "27375:20:10" + "src": "27934:20:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27349:6:10" + "src": "27908:6:10" }, "nodeType": "YulFunctionCall", - "src": "27349:47:10" + "src": "27908:47:10" }, "nodeType": "YulExpressionStatement", - "src": "27349:47:10" + "src": "27908:47:10" }, { "nodeType": "YulAssignment", - "src": "27405:86:10", + "src": "27964:86:10", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "27477:6:10" + "src": "28036:6:10" }, { "name": "tail", "nodeType": "YulIdentifier", - "src": "27486:4:10" + "src": "28045:4:10" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "27413:63:10" + "src": "27972:63:10" }, "nodeType": "YulFunctionCall", - "src": "27413:78:10" + "src": "27972:78:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "27405:4:10" + "src": "27964:4:10" } ] } @@ -12697,13 +12960,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "27275:9:10", + "src": "27834:9:10", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "27287:6:10", + "src": "27846:6:10", "type": "" } ], @@ -12711,23 +12974,23 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "27298:4:10", + "src": "27857:4:10", "type": "" } ], - "src": "27185:313:10" + "src": "27744:313:10" } ] }, - "contents": "{\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_aaa625db430dfb3ad2fa62eaddd511a6cd8de860cee36054f7986cfa0debb924(memPtr) {\n\n mstore(add(memPtr, 0), \"fee received address can not be \")\n\n mstore(add(memPtr, 32), \"zero\")\n\n }\n\n function abi_encode_t_stringliteral_aaa625db430dfb3ad2fa62eaddd511a6cd8de860cee36054f7986cfa0debb924_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_aaa625db430dfb3ad2fa62eaddd511a6cd8de860cee36054f7986cfa0debb924(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_aaa625db430dfb3ad2fa62eaddd511a6cd8de860cee36054f7986cfa0debb924__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_aaa625db430dfb3ad2fa62eaddd511a6cd8de860cee36054f7986cfa0debb924_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_a2d21523123f6a5636f1f4f57c897909bc3f74962b6955ed8c6676563580d5be(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: invalid amount\")\n\n }\n\n function abi_encode_t_stringliteral_a2d21523123f6a5636f1f4f57c897909bc3f74962b6955ed8c6676563580d5be_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n store_literal_in_memory_a2d21523123f6a5636f1f4f57c897909bc3f74962b6955ed8c6676563580d5be(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_a2d21523123f6a5636f1f4f57c897909bc3f74962b6955ed8c6676563580d5be__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a2d21523123f6a5636f1f4f57c897909bc3f74962b6955ed8c6676563580d5be_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_ce49507a01a15df79dff2538e31e6b4b37d348783463e336d10e68082f4288fa(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: invalid payment met\")\n\n mstore(add(memPtr, 32), \"hod\")\n\n }\n\n function abi_encode_t_stringliteral_ce49507a01a15df79dff2538e31e6b4b37d348783463e336d10e68082f4288fa_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_ce49507a01a15df79dff2538e31e6b4b37d348783463e336d10e68082f4288fa(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_ce49507a01a15df79dff2538e31e6b4b37d348783463e336d10e68082f4288fa__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ce49507a01a15df79dff2538e31e6b4b37d348783463e336d10e68082f4288fa_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_de0baa7be4f17d52c3048a4dab4dba816280e3b0920fda3f994482639c9555cd(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: invalid token price\")\n\n }\n\n function abi_encode_t_stringliteral_de0baa7be4f17d52c3048a4dab4dba816280e3b0920fda3f994482639c9555cd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_de0baa7be4f17d52c3048a4dab4dba816280e3b0920fda3f994482639c9555cd(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_de0baa7be4f17d52c3048a4dab4dba816280e3b0920fda3f994482639c9555cd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_de0baa7be4f17d52c3048a4dab4dba816280e3b0920fda3f994482639c9555cd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function shift_right_1_unsigned(value) -> newValue {\n newValue :=\n\n shr(1, value)\n\n }\n\n function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n power := _power\n base := _base\n for { } gt(exponent, 1) {}\n {\n // overflow check for base * base\n if gt(base, div(max, base)) { panic_error_0x11() }\n if and(exponent, 1)\n {\n // No checks for power := mul(power, base) needed, because the check\n // for base * base above is sufficient, since:\n // |power| <= base (proof by induction) and thus:\n // |power * base| <= base * base <= max <= |min| (for signed)\n // (this is equally true for signed and unsigned exp)\n power := mul(power, base)\n }\n base := mul(base, base)\n exponent := shift_right_1_unsigned(exponent)\n }\n }\n\n function checked_exp_unsigned(base, exponent, max) -> power {\n // This function currently cannot be inlined because of the\n // \"leave\" statements. We have to improve the optimizer.\n\n // Note that 0**0 == 1\n if iszero(exponent) { power := 1 leave }\n if iszero(base) { power := 0 leave }\n\n // Specializations for small bases\n switch base\n // 0 is handled above\n case 1 { power := 1 leave }\n case 2\n {\n if gt(exponent, 255) { panic_error_0x11() }\n power := exp(2, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n if or(\n and(lt(base, 11), lt(exponent, 78)),\n and(lt(base, 307), lt(exponent, 32))\n )\n {\n power := exp(base, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n\n power, base := checked_exp_helper(1, base, exponent, max)\n\n if gt(power, div(max, base)) { panic_error_0x11() }\n power := mul(power, base)\n }\n\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n base := cleanup_t_uint256(base)\n exponent := cleanup_t_uint256(exponent)\n\n power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_73f0bd8e523cff2e504592c44e9195f4613827bfc123cfd9764579cdf471a09e(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: seller doesn't have\")\n\n mstore(add(memPtr, 32), \" enough token to sell this item\")\n\n }\n\n function abi_encode_t_stringliteral_73f0bd8e523cff2e504592c44e9195f4613827bfc123cfd9764579cdf471a09e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 63)\n store_literal_in_memory_73f0bd8e523cff2e504592c44e9195f4613827bfc123cfd9764579cdf471a09e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_73f0bd8e523cff2e504592c44e9195f4613827bfc123cfd9764579cdf471a09e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_73f0bd8e523cff2e504592c44e9195f4613827bfc123cfd9764579cdf471a09e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function store_literal_in_memory_b12657b3b75653fe46056178646066dddbc146c37547191bc3f6947332d91116(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: seller doesn't appr\")\n\n mstore(add(memPtr, 32), \"ove enough token to sell this it\")\n\n mstore(add(memPtr, 64), \"em\")\n\n }\n\n function abi_encode_t_stringliteral_b12657b3b75653fe46056178646066dddbc146c37547191bc3f6947332d91116_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 66)\n store_literal_in_memory_b12657b3b75653fe46056178646066dddbc146c37547191bc3f6947332d91116(pos)\n end := add(pos, 96)\n }\n\n function abi_encode_tuple_t_stringliteral_b12657b3b75653fe46056178646066dddbc146c37547191bc3f6947332d91116__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b12657b3b75653fe46056178646066dddbc146c37547191bc3f6947332d91116_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_980c03874b76c6d251144dea5acdce60498a10f246b9b561224499303c2b93f7(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: buyer doesn't have \")\n\n mstore(add(memPtr, 32), \"enough token to buy this item\")\n\n }\n\n function abi_encode_t_stringliteral_980c03874b76c6d251144dea5acdce60498a10f246b9b561224499303c2b93f7_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n store_literal_in_memory_980c03874b76c6d251144dea5acdce60498a10f246b9b561224499303c2b93f7(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_980c03874b76c6d251144dea5acdce60498a10f246b9b561224499303c2b93f7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_980c03874b76c6d251144dea5acdce60498a10f246b9b561224499303c2b93f7_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_157fc5858d6b0d54de2cbea831cc967ea7927dd4aaad4520576b575909c099a9(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: buyer doesn't appro\")\n\n mstore(add(memPtr, 32), \"ve enough token to buy this item\")\n\n }\n\n function abi_encode_t_stringliteral_157fc5858d6b0d54de2cbea831cc967ea7927dd4aaad4520576b575909c099a9_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 64)\n store_literal_in_memory_157fc5858d6b0d54de2cbea831cc967ea7927dd4aaad4520576b575909c099a9(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_157fc5858d6b0d54de2cbea831cc967ea7927dd4aaad4520576b575909c099a9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_157fc5858d6b0d54de2cbea831cc967ea7927dd4aaad4520576b575909c099a9_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c(memPtr) {\n\n mstore(add(memPtr, 0), \"address can not be zero\")\n\n }\n\n function abi_encode_t_stringliteral_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20 address is zero\")\n\n }\n\n function abi_encode_t_stringliteral_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n store_literal_in_memory_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n mstore(add(memPtr, 32), \"ddress\")\n\n }\n\n function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n }\n\n function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(memPtr) {\n\n mstore(add(memPtr, 0), \"ReentrancyGuard: reentrant call\")\n\n }\n\n function abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(memPtr) {\n\n mstore(add(memPtr, 0), \"SafeERC20: ERC20 operation did n\")\n\n mstore(add(memPtr, 32), \"ot succeed\")\n\n }\n\n function abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: insufficient balance fo\")\n\n mstore(add(memPtr, 32), \"r call\")\n\n }\n\n function abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: call to non-contract\")\n\n }\n\n function abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n", + "contents": "{\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_aaa625db430dfb3ad2fa62eaddd511a6cd8de860cee36054f7986cfa0debb924(memPtr) {\n\n mstore(add(memPtr, 0), \"fee received address can not be \")\n\n mstore(add(memPtr, 32), \"zero\")\n\n }\n\n function abi_encode_t_stringliteral_aaa625db430dfb3ad2fa62eaddd511a6cd8de860cee36054f7986cfa0debb924_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_aaa625db430dfb3ad2fa62eaddd511a6cd8de860cee36054f7986cfa0debb924(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_aaa625db430dfb3ad2fa62eaddd511a6cd8de860cee36054f7986cfa0debb924__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_aaa625db430dfb3ad2fa62eaddd511a6cd8de860cee36054f7986cfa0debb924_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_a2d21523123f6a5636f1f4f57c897909bc3f74962b6955ed8c6676563580d5be(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: invalid amount\")\n\n }\n\n function abi_encode_t_stringliteral_a2d21523123f6a5636f1f4f57c897909bc3f74962b6955ed8c6676563580d5be_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n store_literal_in_memory_a2d21523123f6a5636f1f4f57c897909bc3f74962b6955ed8c6676563580d5be(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_a2d21523123f6a5636f1f4f57c897909bc3f74962b6955ed8c6676563580d5be__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a2d21523123f6a5636f1f4f57c897909bc3f74962b6955ed8c6676563580d5be_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_ce49507a01a15df79dff2538e31e6b4b37d348783463e336d10e68082f4288fa(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: invalid payment met\")\n\n mstore(add(memPtr, 32), \"hod\")\n\n }\n\n function abi_encode_t_stringliteral_ce49507a01a15df79dff2538e31e6b4b37d348783463e336d10e68082f4288fa_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_ce49507a01a15df79dff2538e31e6b4b37d348783463e336d10e68082f4288fa(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_ce49507a01a15df79dff2538e31e6b4b37d348783463e336d10e68082f4288fa__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ce49507a01a15df79dff2538e31e6b4b37d348783463e336d10e68082f4288fa_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_de0baa7be4f17d52c3048a4dab4dba816280e3b0920fda3f994482639c9555cd(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: invalid token price\")\n\n }\n\n function abi_encode_t_stringliteral_de0baa7be4f17d52c3048a4dab4dba816280e3b0920fda3f994482639c9555cd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_de0baa7be4f17d52c3048a4dab4dba816280e3b0920fda3f994482639c9555cd(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_de0baa7be4f17d52c3048a4dab4dba816280e3b0920fda3f994482639c9555cd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_de0baa7be4f17d52c3048a4dab4dba816280e3b0920fda3f994482639c9555cd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function shift_right_1_unsigned(value) -> newValue {\n newValue :=\n\n shr(1, value)\n\n }\n\n function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n power := _power\n base := _base\n for { } gt(exponent, 1) {}\n {\n // overflow check for base * base\n if gt(base, div(max, base)) { panic_error_0x11() }\n if and(exponent, 1)\n {\n // No checks for power := mul(power, base) needed, because the check\n // for base * base above is sufficient, since:\n // |power| <= base (proof by induction) and thus:\n // |power * base| <= base * base <= max <= |min| (for signed)\n // (this is equally true for signed and unsigned exp)\n power := mul(power, base)\n }\n base := mul(base, base)\n exponent := shift_right_1_unsigned(exponent)\n }\n }\n\n function checked_exp_unsigned(base, exponent, max) -> power {\n // This function currently cannot be inlined because of the\n // \"leave\" statements. We have to improve the optimizer.\n\n // Note that 0**0 == 1\n if iszero(exponent) { power := 1 leave }\n if iszero(base) { power := 0 leave }\n\n // Specializations for small bases\n switch base\n // 0 is handled above\n case 1 { power := 1 leave }\n case 2\n {\n if gt(exponent, 255) { panic_error_0x11() }\n power := exp(2, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n if or(\n and(lt(base, 11), lt(exponent, 78)),\n and(lt(base, 307), lt(exponent, 32))\n )\n {\n power := exp(base, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n\n power, base := checked_exp_helper(1, base, exponent, max)\n\n if gt(power, div(max, base)) { panic_error_0x11() }\n power := mul(power, base)\n }\n\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n base := cleanup_t_uint256(base)\n exponent := cleanup_t_uint256(exponent)\n\n power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_73f0bd8e523cff2e504592c44e9195f4613827bfc123cfd9764579cdf471a09e(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: seller doesn't have\")\n\n mstore(add(memPtr, 32), \" enough token to sell this item\")\n\n }\n\n function abi_encode_t_stringliteral_73f0bd8e523cff2e504592c44e9195f4613827bfc123cfd9764579cdf471a09e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 63)\n store_literal_in_memory_73f0bd8e523cff2e504592c44e9195f4613827bfc123cfd9764579cdf471a09e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_73f0bd8e523cff2e504592c44e9195f4613827bfc123cfd9764579cdf471a09e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_73f0bd8e523cff2e504592c44e9195f4613827bfc123cfd9764579cdf471a09e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function store_literal_in_memory_b12657b3b75653fe46056178646066dddbc146c37547191bc3f6947332d91116(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: seller doesn't appr\")\n\n mstore(add(memPtr, 32), \"ove enough token to sell this it\")\n\n mstore(add(memPtr, 64), \"em\")\n\n }\n\n function abi_encode_t_stringliteral_b12657b3b75653fe46056178646066dddbc146c37547191bc3f6947332d91116_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 66)\n store_literal_in_memory_b12657b3b75653fe46056178646066dddbc146c37547191bc3f6947332d91116(pos)\n end := add(pos, 96)\n }\n\n function abi_encode_tuple_t_stringliteral_b12657b3b75653fe46056178646066dddbc146c37547191bc3f6947332d91116__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b12657b3b75653fe46056178646066dddbc146c37547191bc3f6947332d91116_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_980c03874b76c6d251144dea5acdce60498a10f246b9b561224499303c2b93f7(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: buyer doesn't have \")\n\n mstore(add(memPtr, 32), \"enough token to buy this item\")\n\n }\n\n function abi_encode_t_stringliteral_980c03874b76c6d251144dea5acdce60498a10f246b9b561224499303c2b93f7_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n store_literal_in_memory_980c03874b76c6d251144dea5acdce60498a10f246b9b561224499303c2b93f7(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_980c03874b76c6d251144dea5acdce60498a10f246b9b561224499303c2b93f7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_980c03874b76c6d251144dea5acdce60498a10f246b9b561224499303c2b93f7_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_157fc5858d6b0d54de2cbea831cc967ea7927dd4aaad4520576b575909c099a9(memPtr) {\n\n mstore(add(memPtr, 0), \"BETokenMall: buyer doesn't appro\")\n\n mstore(add(memPtr, 32), \"ve enough token to buy this item\")\n\n }\n\n function abi_encode_t_stringliteral_157fc5858d6b0d54de2cbea831cc967ea7927dd4aaad4520576b575909c099a9_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 64)\n store_literal_in_memory_157fc5858d6b0d54de2cbea831cc967ea7927dd4aaad4520576b575909c099a9(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_157fc5858d6b0d54de2cbea831cc967ea7927dd4aaad4520576b575909c099a9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_157fc5858d6b0d54de2cbea831cc967ea7927dd4aaad4520576b575909c099a9_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function store_literal_in_memory_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c(memPtr) {\n\n mstore(add(memPtr, 0), \"address can not be zero\")\n\n }\n\n function abi_encode_t_stringliteral_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8acc3ee93e123270baeb206c430cf52b6f082d016072bd6f96b9fec703556e4c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20 address is zero\")\n\n }\n\n function abi_encode_t_stringliteral_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n store_literal_in_memory_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3d1d4adcc59749b5d042ef099480f6d549cd45fbb220ca097fe0a691a2a937ef_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n mstore(add(memPtr, 32), \"ddress\")\n\n }\n\n function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n }\n\n function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(memPtr) {\n\n mstore(add(memPtr, 0), \"ReentrancyGuard: reentrant call\")\n\n }\n\n function abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(memPtr) {\n\n mstore(add(memPtr, 0), \"SafeERC20: ERC20 operation did n\")\n\n mstore(add(memPtr, 32), \"ot succeed\")\n\n }\n\n function abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: insufficient balance fo\")\n\n mstore(add(memPtr, 32), \"r call\")\n\n }\n\n function abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: call to non-contract\")\n\n }\n\n function abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n", "id": 10, "language": "Yul", "name": "#utility.yul" } ], - "sourceMap": "387:2870:7:-:0;;;995:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:0;955:12;:10;;;:12;;:::i;:::-;936:18;;;:32;;:::i;:::-;1716:1:1;1821:7;:22;;;;1068:13:7;1053:12;;:28;;;;;;;;;;;;;;;;;;1096:7;1087:6;;:16;;;;;;;;;;;;;;;;;;995:113;;387:2870;;640:96:6;693:7;719:10;712:17;;640:96;:::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;88:117:10:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;387:2870:7:-;;;;;;;", - "deployedSourceMap": "387:2870:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;220:27:8;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;564:21:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;916:206:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1155:154:7;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1776:1479;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1824:101:0;;;:::i;:::-;;760:152:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1201:85:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;252:46:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;533:27:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;386:190:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;153:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;612:41:7;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1520:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1357:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2074:198:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;580:138:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;220:27;;;;;;;;;;;;;:::o;564:21:7:-;;;;;;;;;;;;;:::o;916:206:8:-;1094:13:0;:11;:13::i;:::-;1029:1:8::1;1004:27;;:13;:27;;;;989:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;1104:13;1089:12;;:28;;;;;;;;;;;;;;;;;;916:206:::0;:::o;1155:154:7:-;1094:13:0;:11;:13::i;:::-;1246::7::1;1231:12;;:28;;;;;;;;;;;;;;;;;;1270:34;1290:13;1270:34;;;;;;:::i;:::-;;;;;;;;1155:154:::0;:::o;1776:1479::-;2261:21:1;:19;:21::i;:::-;1873:1:7::1;1864:6;:10;1856:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;1920:14;:24;1935:8;1920:24;;;;;;;;;;;;;;;;;;;;;;;;;1912:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;2017:1;1998:6;:16;2005:8;1998:16;;;;;;;;;;;;;;;;:20;1990:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2089:23;2125:8;2115:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2089:56;;2151:19;522:7;2227:15;2222:2;:20;;;;:::i;:::-;2215:2;:28;;;;:::i;:::-;2199:6;2174;:16;2181:8;2174:16;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;:70;;;;:::i;:::-;2173:80;;;;:::i;:::-;2151:102;;2259:13;2275:12;:10;:12::i;:::-;2259:28;;2350:11;2315:12;;;;;;;;;;;2308:30;;;2339:6;;;;;;;;;;;2308:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;2293:147;;;;;;;;;;;;:::i;:::-;;;;;;;;;2518:11;2468:12;;;;;;;;;;;2461:30;;;2492:6;;;;;;;;;;;2508:4;2461:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:68;;2446:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;2717:6;2687:8;2680:26;;;2707:5;2680:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;2665:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;2873:6;2828:8;2821:26;;;2848:5;2863:4;2821:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;2806:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;3000:62;3034:5;3041:12;;;;;;;;;;;3055:6;3007:8;3000:33;;;;:62;;;;;;:::i;:::-;3099:65;3137:6;;;;;;;;;;;3145:5;3152:11;3106:12;;;;;;;;;;;3099:37;;;;:65;;;;;;:::i;:::-;3212:5;3197:53;;;3219:12;;;;;;;;;;;3233:8;3243:6;3197:53;;;;;;;;:::i;:::-;;;;;;;;1850:1405;;;2303:20:1::0;:18;:20::i;:::-;1776:1479:7;;:::o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;760:152:8:-;1094:13:0;:11;:13::i;:::-;853:1:8::1;834:21;;:7;:21;;;;826:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;900:7;889:8;;:18;;;;;;;;;;;;;;;;;;760:152:::0;:::o;1201:85:0:-;1247:7;1273:6;;;;;;;;;;;1266:13;;1201:85;:::o;252:46:8:-;;;;;;;;;;;;;;;;;;;;;;:::o;533:27:7:-;;;;;;;;;;;;;:::o;386:190:8:-;1094:13:0;:11;:13::i;:::-;476:1:8::1;459:19;;:5;:19;;;;451:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;534:4;510:14;:21;525:5;510:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;549:22;565:5;549:22;;;;;;:::i;:::-;;;;;;;;386:190:::0;:::o;153:23::-;;;;;;;;;;;;;:::o;612:41:7:-;;;;;;;;;;;;;;;;;:::o;1520:220::-;1094:13:0;:11;:13::i;:::-;1616:16:7::1;1635:6;:16;1642:8;1635:16;;;;;;;;;;;;;;;;1616:35;;1676:5;1657:6;:16;1664:8;1657:16;;;;;;;;;;;;;;;:24;;;;1692:43;1709:8;1719:5;1726:8;1692:43;;;;;;;;:::i;:::-;;;;;;;;1610:130;1520:220:::0;;:::o;1357:118::-;1094:13:0;:11;:13::i;:::-;1430:7:7::1;1421:6;;:16;;;;;;;;;;;;;;;;;;1448:22;1462:7;1448:22;;;;;;:::i;:::-;;;;;;;;1357:118:::0;:::o;2074:198:0:-;1094:13;:11;:13::i;:::-;2182:1:::1;2162:22;;:8;:22;;;;2154:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;580:138:8:-;1094:13:0;:11;:13::i;:::-;672:5:8::1;648:14;:21;663:5;648:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;688:25;707:5;688:25;;;;;;:::i;:::-;;;;;;;;580:138:::0;:::o;1359:130:0:-;1433:12;:10;:12::i;:::-;1422:23;;:7;:5;:7::i;:::-;:23;;;1414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1359:130::o;2336:287:1:-;1759:1;2468:7;;:19;;2460:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1759:1;2598:7;:18;;;;2336:287::o;640:96:6:-;693:7;719:10;712:17;;640:96;:::o;1355:203:4:-;1455:96;1475:5;1505:27;;;1534:4;1540:2;1544:5;1482:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:19;:96::i;:::-;1355:203;;;;:::o;2629:209:1:-;1716:1;2809:7;:22;;;;2629:209::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;5173:642:4:-;5592:23;5618:69;5646:4;5618:69;;;;;;;;;;;;;;;;;5626:5;5618:27;;;;:69;;;;;:::i;:::-;5592:95;;5726:1;5705:10;:17;:22;:56;;;;5742:10;5731:30;;;;;;;;;;;;:::i;:::-;5705:56;5697:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;5243:572;5173:642;;:::o;4108:223:5:-;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;:::-;4265:59;;4108:223;;;;;:::o;5165:446::-;5330:12;5387:5;5362:21;:30;;5354:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5446:12;5460:23;5487:6;:11;;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;;;;5165:446;;;;;;:::o;7671:628::-;7851:12;7879:7;7875:418;;;7927:1;7906:10;:17;:22;7902:286;;;8121:18;8132:6;8121:10;:18::i;:::-;8113:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7902:286;8208:10;8201:17;;;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;;:::o;1412:320::-;1472:4;1724:1;1702:7;:19;;;:23;1695:30;;1412:320;;;:::o;8821:540::-;9000:1;8980:10;:17;:21;8976:379;;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;;;;;;;;;;:::i;:::-;;;;;;;;7:126:10;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o;1528:77::-;1565:7;1594:5;1583:16;;1528:77;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:474::-;1952:6;1960;2009:2;1997:9;1988:7;1984:23;1980:32;1977:119;;;2015:79;;:::i;:::-;1977:119;2135:1;2160:53;2205:7;2196:6;2185:9;2181:22;2160:53;:::i;:::-;2150:63;;2106:117;2262:2;2288:53;2333:7;2324:6;2313:9;2309:22;2288:53;:::i;:::-;2278:63;;2233:118;1884:474;;;;;:::o;2364:90::-;2398:7;2441:5;2434:13;2427:21;2416:32;;2364:90;;;:::o;2460:109::-;2541:21;2556:5;2541:21;:::i;:::-;2536:3;2529:34;2460:109;;:::o;2575:210::-;2662:4;2700:2;2689:9;2685:18;2677:26;;2713:65;2775:1;2764:9;2760:17;2751:6;2713:65;:::i;:::-;2575:210;;;;:::o;2791:118::-;2878:24;2896:5;2878:24;:::i;:::-;2873:3;2866:37;2791:118;;:::o;2915:222::-;3008:4;3046:2;3035:9;3031:18;3023:26;;3059:71;3127:1;3116:9;3112:17;3103:6;3059:71;:::i;:::-;2915:222;;;;:::o;3143:169::-;3227:11;3261:6;3256:3;3249:19;3301:4;3296:3;3292:14;3277:29;;3143:169;;;;:::o;3318:223::-;3458:34;3454:1;3446:6;3442:14;3435:58;3527:6;3522:2;3514:6;3510:15;3503:31;3318:223;:::o;3547:366::-;3689:3;3710:67;3774:2;3769:3;3710:67;:::i;:::-;3703:74;;3786:93;3875:3;3786:93;:::i;:::-;3904:2;3899:3;3895:12;3888:19;;3547:366;;;:::o;3919:419::-;4085:4;4123:2;4112:9;4108:18;4100:26;;4172:9;4166:4;4162:20;4158:1;4147:9;4143:17;4136:47;4200:131;4326:4;4200:131;:::i;:::-;4192:139;;3919:419;;;:::o;4344:177::-;4484:29;4480:1;4472:6;4468:14;4461:53;4344:177;:::o;4527:366::-;4669:3;4690:67;4754:2;4749:3;4690:67;:::i;:::-;4683:74;;4766:93;4855:3;4766:93;:::i;:::-;4884:2;4879:3;4875:12;4868:19;;4527:366;;;:::o;4899:419::-;5065:4;5103:2;5092:9;5088:18;5080:26;;5152:9;5146:4;5142:20;5138:1;5127:9;5123:17;5116:47;5180:131;5306:4;5180:131;:::i;:::-;5172:139;;4899:419;;;:::o;5324:222::-;5464:34;5460:1;5452:6;5448:14;5441:58;5533:5;5528:2;5520:6;5516:15;5509:30;5324:222;:::o;5552:366::-;5694:3;5715:67;5779:2;5774:3;5715:67;:::i;:::-;5708:74;;5791:93;5880:3;5791:93;:::i;:::-;5909:2;5904:3;5900:12;5893:19;;5552:366;;;:::o;5924:419::-;6090:4;6128:2;6117:9;6113:18;6105:26;;6177:9;6171:4;6167:20;6163:1;6152:9;6148:17;6141:47;6205:131;6331:4;6205:131;:::i;:::-;6197:139;;5924:419;;;:::o;6349:182::-;6489:34;6485:1;6477:6;6473:14;6466:58;6349:182;:::o;6537:366::-;6679:3;6700:67;6764:2;6759:3;6700:67;:::i;:::-;6693:74;;6776:93;6865:3;6776:93;:::i;:::-;6894:2;6889:3;6885:12;6878:19;;6537:366;;;:::o;6909:419::-;7075:4;7113:2;7102:9;7098:18;7090:26;;7162:9;7156:4;7152:20;7148:1;7137:9;7133:17;7126:47;7190:131;7316:4;7190:131;:::i;:::-;7182:139;;6909:419;;;:::o;7334:143::-;7391:5;7422:6;7416:13;7407:22;;7438:33;7465:5;7438:33;:::i;:::-;7334:143;;;;:::o;7483:351::-;7553:6;7602:2;7590:9;7581:7;7577:23;7573:32;7570:119;;;7608:79;;:::i;:::-;7570:119;7728:1;7753:64;7809:7;7800:6;7789:9;7785:22;7753:64;:::i;:::-;7743:74;;7699:128;7483:351;;;;:::o;7840:180::-;7888:77;7885:1;7878:88;7985:4;7982:1;7975:15;8009:4;8006:1;7999:15;8026:191;8066:4;8086:20;8104:1;8086:20;:::i;:::-;8081:25;;8120:20;8138:1;8120:20;:::i;:::-;8115:25;;8159:1;8156;8153:8;8150:34;;;8164:18;;:::i;:::-;8150:34;8209:1;8206;8202:9;8194:17;;8026:191;;;;:::o;8223:102::-;8265:8;8312:5;8309:1;8305:13;8284:34;;8223:102;;;:::o;8331:848::-;8392:5;8399:4;8423:6;8414:15;;8447:5;8438:14;;8461:712;8482:1;8472:8;8469:15;8461:712;;;8577:4;8572:3;8568:14;8562:4;8559:24;8556:50;;;8586:18;;:::i;:::-;8556:50;8636:1;8626:8;8622:16;8619:451;;;9051:4;9044:5;9040:16;9031:25;;8619:451;9101:4;9095;9091:15;9083:23;;9131:32;9154:8;9131:32;:::i;:::-;9119:44;;8461:712;;;8331:848;;;;;;;:::o;9185:1073::-;9239:5;9430:8;9420:40;;9451:1;9442:10;;9453:5;;9420:40;9479:4;9469:36;;9496:1;9487:10;;9498:5;;9469:36;9565:4;9613:1;9608:27;;;;9649:1;9644:191;;;;9558:277;;9608:27;9626:1;9617:10;;9628:5;;;9644:191;9689:3;9679:8;9676:17;9673:43;;;9696:18;;:::i;:::-;9673:43;9745:8;9742:1;9738:16;9729:25;;9780:3;9773:5;9770:14;9767:40;;;9787:18;;:::i;:::-;9767:40;9820:5;;;9558:277;;9944:2;9934:8;9931:16;9925:3;9919:4;9916:13;9912:36;9894:2;9884:8;9881:16;9876:2;9870:4;9867:12;9863:35;9847:111;9844:246;;;10000:8;9994:4;9990:19;9981:28;;10035:3;10028:5;10025:14;10022:40;;;10042:18;;:::i;:::-;10022:40;10075:5;;9844:246;10115:42;10153:3;10143:8;10137:4;10134:1;10115:42;:::i;:::-;10100:57;;;;10189:4;10184:3;10180:14;10173:5;10170:25;10167:51;;;10198:18;;:::i;:::-;10167:51;10247:4;10240:5;10236:16;10227:25;;9185:1073;;;;;;:::o;10264:285::-;10324:5;10348:23;10366:4;10348:23;:::i;:::-;10340:31;;10392:27;10410:8;10392:27;:::i;:::-;10380:39;;10438:104;10475:66;10465:8;10459:4;10438:104;:::i;:::-;10429:113;;10264:285;;;;:::o;10555:348::-;10595:7;10618:20;10636:1;10618:20;:::i;:::-;10613:25;;10652:20;10670:1;10652:20;:::i;:::-;10647:25;;10840:1;10772:66;10768:74;10765:1;10762:81;10757:1;10750:9;10743:17;10739:105;10736:131;;;10847:18;;:::i;:::-;10736:131;10895:1;10892;10888:9;10877:20;;10555:348;;;;:::o;10909:180::-;10957:77;10954:1;10947:88;11054:4;11051:1;11044:15;11078:4;11075:1;11068:15;11095:185;11135:1;11152:20;11170:1;11152:20;:::i;:::-;11147:25;;11186:20;11204:1;11186:20;:::i;:::-;11181:25;;11225:1;11215:35;;11230:18;;:::i;:::-;11215:35;11272:1;11269;11265:9;11260:14;;11095:185;;;;:::o;11286:250::-;11426:34;11422:1;11414:6;11410:14;11403:58;11495:33;11490:2;11482:6;11478:15;11471:58;11286:250;:::o;11542:366::-;11684:3;11705:67;11769:2;11764:3;11705:67;:::i;:::-;11698:74;;11781:93;11870:3;11781:93;:::i;:::-;11899:2;11894:3;11890:12;11883:19;;11542:366;;;:::o;11914:419::-;12080:4;12118:2;12107:9;12103:18;12095:26;;12167:9;12161:4;12157:20;12153:1;12142:9;12138:17;12131:47;12195:131;12321:4;12195:131;:::i;:::-;12187:139;;11914:419;;;:::o;12339:332::-;12460:4;12498:2;12487:9;12483:18;12475:26;;12511:71;12579:1;12568:9;12564:17;12555:6;12511:71;:::i;:::-;12592:72;12660:2;12649:9;12645:18;12636:6;12592:72;:::i;:::-;12339:332;;;;;:::o;12677:290::-;12817:34;12813:1;12805:6;12801:14;12794:58;12886:34;12881:2;12873:6;12869:15;12862:59;12955:4;12950:2;12942:6;12938:15;12931:29;12677:290;:::o;12973:366::-;13115:3;13136:67;13200:2;13195:3;13136:67;:::i;:::-;13129:74;;13212:93;13301:3;13212:93;:::i;:::-;13330:2;13325:3;13321:12;13314:19;;12973:366;;;:::o;13345:419::-;13511:4;13549:2;13538:9;13534:18;13526:26;;13598:9;13592:4;13588:20;13584:1;13573:9;13569:17;13562:47;13626:131;13752:4;13626:131;:::i;:::-;13618:139;;13345:419;;;:::o;13770:248::-;13910:34;13906:1;13898:6;13894:14;13887:58;13979:31;13974:2;13966:6;13962:15;13955:56;13770:248;:::o;14024:366::-;14166:3;14187:67;14251:2;14246:3;14187:67;:::i;:::-;14180:74;;14263:93;14352:3;14263:93;:::i;:::-;14381:2;14376:3;14372:12;14365:19;;14024:366;;;:::o;14396:419::-;14562:4;14600:2;14589:9;14585:18;14577:26;;14649:9;14643:4;14639:20;14635:1;14624:9;14620:17;14613:47;14677:131;14803:4;14677:131;:::i;:::-;14669:139;;14396:419;;;:::o;14821:251::-;14961:34;14957:1;14949:6;14945:14;14938:58;15030:34;15025:2;15017:6;15013:15;15006:59;14821:251;:::o;15078:366::-;15220:3;15241:67;15305:2;15300:3;15241:67;:::i;:::-;15234:74;;15317:93;15406:3;15317:93;:::i;:::-;15435:2;15430:3;15426:12;15419:19;;15078:366;;;:::o;15450:419::-;15616:4;15654:2;15643:9;15639:18;15631:26;;15703:9;15697:4;15693:20;15689:1;15678:9;15674:17;15667:47;15731:131;15857:4;15731:131;:::i;:::-;15723:139;;15450:419;;;:::o;15875:442::-;16024:4;16062:2;16051:9;16047:18;16039:26;;16075:71;16143:1;16132:9;16128:17;16119:6;16075:71;:::i;:::-;16156:72;16224:2;16213:9;16209:18;16200:6;16156:72;:::i;:::-;16238;16306:2;16295:9;16291:18;16282:6;16238:72;:::i;:::-;15875:442;;;;;;:::o;16323:173::-;16463:25;16459:1;16451:6;16447:14;16440:49;16323:173;:::o;16502:366::-;16644:3;16665:67;16729:2;16724:3;16665:67;:::i;:::-;16658:74;;16741:93;16830:3;16741:93;:::i;:::-;16859:2;16854:3;16850:12;16843:19;;16502:366;;;:::o;16874:419::-;17040:4;17078:2;17067:9;17063:18;17055:26;;17127:9;17121:4;17117:20;17113:1;17102:9;17098:17;17091:47;17155:131;17281:4;17155:131;:::i;:::-;17147:139;;16874:419;;;:::o;17299:171::-;17439:23;17435:1;17427:6;17423:14;17416:47;17299:171;:::o;17476:366::-;17618:3;17639:67;17703:2;17698:3;17639:67;:::i;:::-;17632:74;;17715:93;17804:3;17715:93;:::i;:::-;17833:2;17828:3;17824:12;17817:19;;17476:366;;;:::o;17848:419::-;18014:4;18052:2;18041:9;18037:18;18029:26;;18101:9;18095:4;18091:20;18087:1;18076:9;18072:17;18065:47;18129:131;18255:4;18129:131;:::i;:::-;18121:139;;17848:419;;;:::o;18273:442::-;18422:4;18460:2;18449:9;18445:18;18437:26;;18473:71;18541:1;18530:9;18526:17;18517:6;18473:71;:::i;:::-;18554:72;18622:2;18611:9;18607:18;18598:6;18554:72;:::i;:::-;18636;18704:2;18693:9;18689:18;18680:6;18636:72;:::i;:::-;18273:442;;;;;;:::o;18721:225::-;18861:34;18857:1;18849:6;18845:14;18838:58;18930:8;18925:2;18917:6;18913:15;18906:33;18721:225;:::o;18952:366::-;19094:3;19115:67;19179:2;19174:3;19115:67;:::i;:::-;19108:74;;19191:93;19280:3;19191:93;:::i;:::-;19309:2;19304:3;19300:12;19293:19;;18952:366;;;:::o;19324:419::-;19490:4;19528:2;19517:9;19513:18;19505:26;;19577:9;19571:4;19567:20;19563:1;19552:9;19548:17;19541:47;19605:131;19731:4;19605:131;:::i;:::-;19597:139;;19324:419;;;:::o;19749:182::-;19889:34;19885:1;19877:6;19873:14;19866:58;19749:182;:::o;19937:366::-;20079:3;20100:67;20164:2;20159:3;20100:67;:::i;:::-;20093:74;;20176:93;20265:3;20176:93;:::i;:::-;20294:2;20289:3;20285:12;20278:19;;19937:366;;;:::o;20309:419::-;20475:4;20513:2;20502:9;20498:18;20490:26;;20562:9;20556:4;20552:20;20548:1;20537:9;20533:17;20526:47;20590:131;20716:4;20590:131;:::i;:::-;20582:139;;20309:419;;;:::o;20734:181::-;20874:33;20870:1;20862:6;20858:14;20851:57;20734:181;:::o;20921:366::-;21063:3;21084:67;21148:2;21143:3;21084:67;:::i;:::-;21077:74;;21160:93;21249:3;21160:93;:::i;:::-;21278:2;21273:3;21269:12;21262:19;;20921:366;;;:::o;21293:419::-;21459:4;21497:2;21486:9;21482:18;21474:26;;21546:9;21540:4;21536:20;21532:1;21521:9;21517:17;21510:47;21574:131;21700:4;21574:131;:::i;:::-;21566:139;;21293:419;;;:::o;21718:116::-;21788:21;21803:5;21788:21;:::i;:::-;21781:5;21778:32;21768:60;;21824:1;21821;21814:12;21768:60;21718:116;:::o;21840:137::-;21894:5;21925:6;21919:13;21910:22;;21941:30;21965:5;21941:30;:::i;:::-;21840:137;;;;:::o;21983:345::-;22050:6;22099:2;22087:9;22078:7;22074:23;22070:32;22067:119;;;22105:79;;:::i;:::-;22067:119;22225:1;22250:61;22303:7;22294:6;22283:9;22279:22;22250:61;:::i;:::-;22240:71;;22196:125;21983:345;;;;:::o;22334:229::-;22474:34;22470:1;22462:6;22458:14;22451:58;22543:12;22538:2;22530:6;22526:15;22519:37;22334:229;:::o;22569:366::-;22711:3;22732:67;22796:2;22791:3;22732:67;:::i;:::-;22725:74;;22808:93;22897:3;22808:93;:::i;:::-;22926:2;22921:3;22917:12;22910:19;;22569:366;;;:::o;22941:419::-;23107:4;23145:2;23134:9;23130:18;23122:26;;23194:9;23188:4;23184:20;23180:1;23169:9;23165:17;23158:47;23222:131;23348:4;23222:131;:::i;:::-;23214:139;;22941:419;;;:::o;23366:225::-;23506:34;23502:1;23494:6;23490:14;23483:58;23575:8;23570:2;23562:6;23558:15;23551:33;23366:225;:::o;23597:366::-;23739:3;23760:67;23824:2;23819:3;23760:67;:::i;:::-;23753:74;;23836:93;23925:3;23836:93;:::i;:::-;23954:2;23949:3;23945:12;23938:19;;23597:366;;;:::o;23969:419::-;24135:4;24173:2;24162:9;24158:18;24150:26;;24222:9;24216:4;24212:20;24208:1;24197:9;24193:17;24186:47;24250:131;24376:4;24250:131;:::i;:::-;24242:139;;23969:419;;;:::o;24394:98::-;24445:6;24479:5;24473:12;24463:22;;24394:98;;;:::o;24498:147::-;24599:11;24636:3;24621:18;;24498:147;;;;:::o;24651:307::-;24719:1;24729:113;24743:6;24740:1;24737:13;24729:113;;;24828:1;24823:3;24819:11;24813:18;24809:1;24804:3;24800:11;24793:39;24765:2;24762:1;24758:10;24753:15;;24729:113;;;24860:6;24857:1;24854:13;24851:101;;;24940:1;24931:6;24926:3;24922:16;24915:27;24851:101;24700:258;24651:307;;;:::o;24964:373::-;25068:3;25096:38;25128:5;25096:38;:::i;:::-;25150:88;25231:6;25226:3;25150:88;:::i;:::-;25143:95;;25247:52;25292:6;25287:3;25280:4;25273:5;25269:16;25247:52;:::i;:::-;25324:6;25319:3;25315:16;25308:23;;25072:265;24964:373;;;;:::o;25343:271::-;25473:3;25495:93;25584:3;25575:6;25495:93;:::i;:::-;25488:100;;25605:3;25598:10;;25343:271;;;;:::o;25620:179::-;25760:31;25756:1;25748:6;25744:14;25737:55;25620:179;:::o;25805:366::-;25947:3;25968:67;26032:2;26027:3;25968:67;:::i;:::-;25961:74;;26044:93;26133:3;26044:93;:::i;:::-;26162:2;26157:3;26153:12;26146:19;;25805:366;;;:::o;26177:419::-;26343:4;26381:2;26370:9;26366:18;26358:26;;26430:9;26424:4;26420:20;26416:1;26405:9;26401:17;26394:47;26458:131;26584:4;26458:131;:::i;:::-;26450:139;;26177:419;;;:::o;26602:99::-;26654:6;26688:5;26682:12;26672:22;;26602:99;;;:::o;26707:102::-;26748:6;26799:2;26795:7;26790:2;26783:5;26779:14;26775:28;26765:38;;26707:102;;;:::o;26815:364::-;26903:3;26931:39;26964:5;26931:39;:::i;:::-;26986:71;27050:6;27045:3;26986:71;:::i;:::-;26979:78;;27066:52;27111:6;27106:3;27099:4;27092:5;27088:16;27066:52;:::i;:::-;27143:29;27165:6;27143:29;:::i;:::-;27138:3;27134:39;27127:46;;26907:272;26815:364;;;;:::o;27185:313::-;27298:4;27336:2;27325:9;27321:18;27313:26;;27385:9;27379:4;27375:20;27371:1;27360:9;27356:17;27349:47;27413:78;27486:4;27477:6;27413:78;:::i;:::-;27405:86;;27185:313;;;;:::o", - "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport \"../utils/UInt.sol\";\nimport \"./MallBase.sol\";\n\ninterface ICurrency is IERC20 {\n function decimals() external view returns (uint256);\n}\n\ncontract BETokenMall is MallBase, ReentrancyGuard {\n using SafeERC20 for IERC20;\n using UInt for uint256;\n uint256 constant ROUND = 1000000;\n address public tokenAddress;\n address public seller;\n // currency => price\n mapping(address => uint256) public prices;\n\n // Events\n event BuyTransaction(\n address indexed buyer,\n address tokenAddress,\n address currency,\n uint256 amount\n );\n event TokenAddressUpdated(address tokenAddress);\n event SellerUpdated(address seller);\n event UpdateTokenPrice(address currency, uint256 price, uint256 pricePre);\n\n /**\n * @dev Constructor\n */\n constructor(address _tokenAddress, address _seller) {\n tokenAddress = _tokenAddress;\n seller = _seller;\n }\n\n /**\n * @dev Update token address\n */\n function updateTokenAddress(address _tokenAddress) external onlyOwner {\n tokenAddress = _tokenAddress;\n emit TokenAddressUpdated(_tokenAddress);\n }\n\n /**\n * @dev Update seller address\n */\n function updateSeller(address _seller) external onlyOwner {\n seller = _seller;\n emit SellerUpdated(_seller);\n }\n\n /**\n * @dev Update token price\n */\n function updateTokenPrice(\n address currency,\n uint256 price\n ) external onlyOwner {\n uint256 pricePre = prices[currency];\n prices[currency] = price;\n emit UpdateTokenPrice(currency, price, pricePre);\n }\n\n /**\n * @dev Buy token\n */\n function buyToken(address currency, uint256 amount) external nonReentrant {\n require(amount > 0, \"BETokenMall: invalid amount\");\n require(erc20Supported[currency], \"BETokenMall: invalid payment method\");\n require(prices[currency] > 0, \"BETokenMall: invalid token price\");\n // calc currency amount\n uint256 currencyDecimal = ICurrency(currency).decimals();\n uint256 tokenAmount = (prices[currency] *\n amount *\n (10 ** (18 - currencyDecimal))) / ROUND;\n address buyer = _msgSender();\n require(\n IERC20(tokenAddress).balanceOf(seller) >= tokenAmount,\n \"BETokenMall: seller doesn't have enough token to sell this item\"\n );\n require(\n IERC20(tokenAddress).allowance(seller, address(this)) >= tokenAmount,\n \"BETokenMall: seller doesn't approve enough token to sell this item\"\n );\n // Check payment approval and buyer balance\n require(\n IERC20(currency).balanceOf(buyer) >= amount,\n \"BETokenMall: buyer doesn't have enough token to buy this item\"\n );\n require(\n IERC20(currency).allowance(buyer, address(this)) >= amount,\n \"BETokenMall: buyer doesn't approve enough token to buy this item\"\n );\n\n // Transfer payment to seller\n IERC20(currency).safeTransferFrom(buyer, feeToAddress, amount);\n // Transfer token to buyer\n IERC20(tokenAddress).safeTransferFrom(seller, buyer, tokenAmount);\n // emit buy event\n emit BuyTransaction(buyer, tokenAddress, currency, amount);\n }\n}\n", + "sourceMap": "387:2908:7:-:0;;;1020:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:0;955:12;:10;;;:12;;:::i;:::-;936:18;;;:32;;:::i;:::-;1716:1:1;1821:7;:22;;;;1093:13:7;1078:12;;:28;;;;;;;;;;;;;;;;;;1121:7;1112:6;;:16;;;;;;;;;;;;;;;;;;1020:113;;387:2908;;640:96:6;693:7;719:10;712:17;;640:96;:::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;88:117:10:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;387:2908:7:-;;;;;;;", + "deployedSourceMap": "387:2908:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;220:27:8;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;564:21:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;916:206:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1180:154:7;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1801:1492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1824:101:0;;;:::i;:::-;;760:152:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1201:85:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;252:46:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;533:27:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;386:190:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;153:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;612:41:7;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1545:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1382:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2074:198:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;580:138:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;220:27;;;;;;;;;;;;;:::o;564:21:7:-;;;;;;;;;;;;;:::o;916:206:8:-;1094:13:0;:11;:13::i;:::-;1029:1:8::1;1004:27;;:13;:27;;;;989:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;1104:13;1089:12;;:28;;;;;;;;;;;;;;;;;;916:206:::0;:::o;1180:154:7:-;1094:13:0;:11;:13::i;:::-;1271::7::1;1256:12;;:28;;;;;;;;;;;;;;;;;;1295:34;1315:13;1295:34;;;;;;:::i;:::-;;;;;;;;1180:154:::0;:::o;1801:1492::-;2261:21:1;:19;:21::i;:::-;1898:1:7::1;1889:6;:10;1881:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;1945:14;:24;1960:8;1945:24;;;;;;;;;;;;;;;;;;;;;;;;;1937:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;2042:1;2023:6;:16;2030:8;2023:16;;;;;;;;;;;;;;;;:20;2015:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2114:23;2150:8;2140:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2114:56;;2176:19;522:7;2252:15;2247:2;:20;;;;:::i;:::-;2240:2;:28;;;;:::i;:::-;2224:6;2199;:16;2206:8;2199:16;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;:70;;;;:::i;:::-;2198:80;;;;:::i;:::-;2176:102;;2284:13;2300:12;:10;:12::i;:::-;2284:28;;2375:11;2340:12;;;;;;;;;;;2333:30;;;2364:6;;;;;;;;;;;2333:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;2318:147;;;;;;;;;;;;:::i;:::-;;;;;;;;;2543:11;2493:12;;;;;;;;;;;2486:30;;;2517:6;;;;;;;;;;;2533:4;2486:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:68;;2471:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;2742:6;2712:8;2705:26;;;2732:5;2705:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;2690:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;2898:6;2853:8;2846:26;;;2873:5;2888:4;2846:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;2831:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;3025:62;3059:5;3066:12;;;;;;;;;;;3080:6;3032:8;3025:33;;;;:62;;;;;;:::i;:::-;3124:65;3162:6;;;;;;;;;;;3170:5;3177:11;3131:12;;;;;;;;;;;3124:37;;;;:65;;;;;;:::i;:::-;3237:5;3222:66;;;3244:12;;;;;;;;;;;3258:8;3268:6;3276:11;3222:66;;;;;;;;;:::i;:::-;;;;;;;;1875:1418;;;2303:20:1::0;:18;:20::i;:::-;1801:1492:7;;:::o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;760:152:8:-;1094:13:0;:11;:13::i;:::-;853:1:8::1;834:21;;:7;:21;;;;826:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;900:7;889:8;;:18;;;;;;;;;;;;;;;;;;760:152:::0;:::o;1201:85:0:-;1247:7;1273:6;;;;;;;;;;;1266:13;;1201:85;:::o;252:46:8:-;;;;;;;;;;;;;;;;;;;;;;:::o;533:27:7:-;;;;;;;;;;;;;:::o;386:190:8:-;1094:13:0;:11;:13::i;:::-;476:1:8::1;459:19;;:5;:19;;;;451:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;534:4;510:14;:21;525:5;510:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;549:22;565:5;549:22;;;;;;:::i;:::-;;;;;;;;386:190:::0;:::o;153:23::-;;;;;;;;;;;;;:::o;612:41:7:-;;;;;;;;;;;;;;;;;:::o;1545:220::-;1094:13:0;:11;:13::i;:::-;1641:16:7::1;1660:6;:16;1667:8;1660:16;;;;;;;;;;;;;;;;1641:35;;1701:5;1682:6;:16;1689:8;1682:16;;;;;;;;;;;;;;;:24;;;;1717:43;1734:8;1744:5;1751:8;1717:43;;;;;;;;:::i;:::-;;;;;;;;1635:130;1545:220:::0;;:::o;1382:118::-;1094:13:0;:11;:13::i;:::-;1455:7:7::1;1446:6;;:16;;;;;;;;;;;;;;;;;;1473:22;1487:7;1473:22;;;;;;:::i;:::-;;;;;;;;1382:118:::0;:::o;2074:198:0:-;1094:13;:11;:13::i;:::-;2182:1:::1;2162:22;;:8;:22;;;;2154:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;580:138:8:-;1094:13:0;:11;:13::i;:::-;672:5:8::1;648:14;:21;663:5;648:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;688:25;707:5;688:25;;;;;;:::i;:::-;;;;;;;;580:138:::0;:::o;1359:130:0:-;1433:12;:10;:12::i;:::-;1422:23;;:7;:5;:7::i;:::-;:23;;;1414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1359:130::o;2336:287:1:-;1759:1;2468:7;;:19;;2460:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1759:1;2598:7;:18;;;;2336:287::o;640:96:6:-;693:7;719:10;712:17;;640:96;:::o;1355:203:4:-;1455:96;1475:5;1505:27;;;1534:4;1540:2;1544:5;1482:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:19;:96::i;:::-;1355:203;;;;:::o;2629:209:1:-;1716:1;2809:7;:22;;;;2629:209::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;5173:642:4:-;5592:23;5618:69;5646:4;5618:69;;;;;;;;;;;;;;;;;5626:5;5618:27;;;;:69;;;;;:::i;:::-;5592:95;;5726:1;5705:10;:17;:22;:56;;;;5742:10;5731:30;;;;;;;;;;;;:::i;:::-;5705:56;5697:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;5243:572;5173:642;;:::o;4108:223:5:-;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;:::-;4265:59;;4108:223;;;;;:::o;5165:446::-;5330:12;5387:5;5362:21;:30;;5354:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5446:12;5460:23;5487:6;:11;;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;;;;5165:446;;;;;;:::o;7671:628::-;7851:12;7879:7;7875:418;;;7927:1;7906:10;:17;:22;7902:286;;;8121:18;8132:6;8121:10;:18::i;:::-;8113:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7902:286;8208:10;8201:17;;;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;;:::o;1412:320::-;1472:4;1724:1;1702:7;:19;;;:23;1695:30;;1412:320;;;:::o;8821:540::-;9000:1;8980:10;:17;:21;8976:379;;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;;;;;;;;;;:::i;:::-;;;;;;;;7:126:10;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o;1528:77::-;1565:7;1594:5;1583:16;;1528:77;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:474::-;1952:6;1960;2009:2;1997:9;1988:7;1984:23;1980:32;1977:119;;;2015:79;;:::i;:::-;1977:119;2135:1;2160:53;2205:7;2196:6;2185:9;2181:22;2160:53;:::i;:::-;2150:63;;2106:117;2262:2;2288:53;2333:7;2324:6;2313:9;2309:22;2288:53;:::i;:::-;2278:63;;2233:118;1884:474;;;;;:::o;2364:90::-;2398:7;2441:5;2434:13;2427:21;2416:32;;2364:90;;;:::o;2460:109::-;2541:21;2556:5;2541:21;:::i;:::-;2536:3;2529:34;2460:109;;:::o;2575:210::-;2662:4;2700:2;2689:9;2685:18;2677:26;;2713:65;2775:1;2764:9;2760:17;2751:6;2713:65;:::i;:::-;2575:210;;;;:::o;2791:118::-;2878:24;2896:5;2878:24;:::i;:::-;2873:3;2866:37;2791:118;;:::o;2915:222::-;3008:4;3046:2;3035:9;3031:18;3023:26;;3059:71;3127:1;3116:9;3112:17;3103:6;3059:71;:::i;:::-;2915:222;;;;:::o;3143:169::-;3227:11;3261:6;3256:3;3249:19;3301:4;3296:3;3292:14;3277:29;;3143:169;;;;:::o;3318:223::-;3458:34;3454:1;3446:6;3442:14;3435:58;3527:6;3522:2;3514:6;3510:15;3503:31;3318:223;:::o;3547:366::-;3689:3;3710:67;3774:2;3769:3;3710:67;:::i;:::-;3703:74;;3786:93;3875:3;3786:93;:::i;:::-;3904:2;3899:3;3895:12;3888:19;;3547:366;;;:::o;3919:419::-;4085:4;4123:2;4112:9;4108:18;4100:26;;4172:9;4166:4;4162:20;4158:1;4147:9;4143:17;4136:47;4200:131;4326:4;4200:131;:::i;:::-;4192:139;;3919:419;;;:::o;4344:177::-;4484:29;4480:1;4472:6;4468:14;4461:53;4344:177;:::o;4527:366::-;4669:3;4690:67;4754:2;4749:3;4690:67;:::i;:::-;4683:74;;4766:93;4855:3;4766:93;:::i;:::-;4884:2;4879:3;4875:12;4868:19;;4527:366;;;:::o;4899:419::-;5065:4;5103:2;5092:9;5088:18;5080:26;;5152:9;5146:4;5142:20;5138:1;5127:9;5123:17;5116:47;5180:131;5306:4;5180:131;:::i;:::-;5172:139;;4899:419;;;:::o;5324:222::-;5464:34;5460:1;5452:6;5448:14;5441:58;5533:5;5528:2;5520:6;5516:15;5509:30;5324:222;:::o;5552:366::-;5694:3;5715:67;5779:2;5774:3;5715:67;:::i;:::-;5708:74;;5791:93;5880:3;5791:93;:::i;:::-;5909:2;5904:3;5900:12;5893:19;;5552:366;;;:::o;5924:419::-;6090:4;6128:2;6117:9;6113:18;6105:26;;6177:9;6171:4;6167:20;6163:1;6152:9;6148:17;6141:47;6205:131;6331:4;6205:131;:::i;:::-;6197:139;;5924:419;;;:::o;6349:182::-;6489:34;6485:1;6477:6;6473:14;6466:58;6349:182;:::o;6537:366::-;6679:3;6700:67;6764:2;6759:3;6700:67;:::i;:::-;6693:74;;6776:93;6865:3;6776:93;:::i;:::-;6894:2;6889:3;6885:12;6878:19;;6537:366;;;:::o;6909:419::-;7075:4;7113:2;7102:9;7098:18;7090:26;;7162:9;7156:4;7152:20;7148:1;7137:9;7133:17;7126:47;7190:131;7316:4;7190:131;:::i;:::-;7182:139;;6909:419;;;:::o;7334:143::-;7391:5;7422:6;7416:13;7407:22;;7438:33;7465:5;7438:33;:::i;:::-;7334:143;;;;:::o;7483:351::-;7553:6;7602:2;7590:9;7581:7;7577:23;7573:32;7570:119;;;7608:79;;:::i;:::-;7570:119;7728:1;7753:64;7809:7;7800:6;7789:9;7785:22;7753:64;:::i;:::-;7743:74;;7699:128;7483:351;;;;:::o;7840:180::-;7888:77;7885:1;7878:88;7985:4;7982:1;7975:15;8009:4;8006:1;7999:15;8026:191;8066:4;8086:20;8104:1;8086:20;:::i;:::-;8081:25;;8120:20;8138:1;8120:20;:::i;:::-;8115:25;;8159:1;8156;8153:8;8150:34;;;8164:18;;:::i;:::-;8150:34;8209:1;8206;8202:9;8194:17;;8026:191;;;;:::o;8223:102::-;8265:8;8312:5;8309:1;8305:13;8284:34;;8223:102;;;:::o;8331:848::-;8392:5;8399:4;8423:6;8414:15;;8447:5;8438:14;;8461:712;8482:1;8472:8;8469:15;8461:712;;;8577:4;8572:3;8568:14;8562:4;8559:24;8556:50;;;8586:18;;:::i;:::-;8556:50;8636:1;8626:8;8622:16;8619:451;;;9051:4;9044:5;9040:16;9031:25;;8619:451;9101:4;9095;9091:15;9083:23;;9131:32;9154:8;9131:32;:::i;:::-;9119:44;;8461:712;;;8331:848;;;;;;;:::o;9185:1073::-;9239:5;9430:8;9420:40;;9451:1;9442:10;;9453:5;;9420:40;9479:4;9469:36;;9496:1;9487:10;;9498:5;;9469:36;9565:4;9613:1;9608:27;;;;9649:1;9644:191;;;;9558:277;;9608:27;9626:1;9617:10;;9628:5;;;9644:191;9689:3;9679:8;9676:17;9673:43;;;9696:18;;:::i;:::-;9673:43;9745:8;9742:1;9738:16;9729:25;;9780:3;9773:5;9770:14;9767:40;;;9787:18;;:::i;:::-;9767:40;9820:5;;;9558:277;;9944:2;9934:8;9931:16;9925:3;9919:4;9916:13;9912:36;9894:2;9884:8;9881:16;9876:2;9870:4;9867:12;9863:35;9847:111;9844:246;;;10000:8;9994:4;9990:19;9981:28;;10035:3;10028:5;10025:14;10022:40;;;10042:18;;:::i;:::-;10022:40;10075:5;;9844:246;10115:42;10153:3;10143:8;10137:4;10134:1;10115:42;:::i;:::-;10100:57;;;;10189:4;10184:3;10180:14;10173:5;10170:25;10167:51;;;10198:18;;:::i;:::-;10167:51;10247:4;10240:5;10236:16;10227:25;;9185:1073;;;;;;:::o;10264:285::-;10324:5;10348:23;10366:4;10348:23;:::i;:::-;10340:31;;10392:27;10410:8;10392:27;:::i;:::-;10380:39;;10438:104;10475:66;10465:8;10459:4;10438:104;:::i;:::-;10429:113;;10264:285;;;;:::o;10555:348::-;10595:7;10618:20;10636:1;10618:20;:::i;:::-;10613:25;;10652:20;10670:1;10652:20;:::i;:::-;10647:25;;10840:1;10772:66;10768:74;10765:1;10762:81;10757:1;10750:9;10743:17;10739:105;10736:131;;;10847:18;;:::i;:::-;10736:131;10895:1;10892;10888:9;10877:20;;10555:348;;;;:::o;10909:180::-;10957:77;10954:1;10947:88;11054:4;11051:1;11044:15;11078:4;11075:1;11068:15;11095:185;11135:1;11152:20;11170:1;11152:20;:::i;:::-;11147:25;;11186:20;11204:1;11186:20;:::i;:::-;11181:25;;11225:1;11215:35;;11230:18;;:::i;:::-;11215:35;11272:1;11269;11265:9;11260:14;;11095:185;;;;:::o;11286:250::-;11426:34;11422:1;11414:6;11410:14;11403:58;11495:33;11490:2;11482:6;11478:15;11471:58;11286:250;:::o;11542:366::-;11684:3;11705:67;11769:2;11764:3;11705:67;:::i;:::-;11698:74;;11781:93;11870:3;11781:93;:::i;:::-;11899:2;11894:3;11890:12;11883:19;;11542:366;;;:::o;11914:419::-;12080:4;12118:2;12107:9;12103:18;12095:26;;12167:9;12161:4;12157:20;12153:1;12142:9;12138:17;12131:47;12195:131;12321:4;12195:131;:::i;:::-;12187:139;;11914:419;;;:::o;12339:332::-;12460:4;12498:2;12487:9;12483:18;12475:26;;12511:71;12579:1;12568:9;12564:17;12555:6;12511:71;:::i;:::-;12592:72;12660:2;12649:9;12645:18;12636:6;12592:72;:::i;:::-;12339:332;;;;;:::o;12677:290::-;12817:34;12813:1;12805:6;12801:14;12794:58;12886:34;12881:2;12873:6;12869:15;12862:59;12955:4;12950:2;12942:6;12938:15;12931:29;12677:290;:::o;12973:366::-;13115:3;13136:67;13200:2;13195:3;13136:67;:::i;:::-;13129:74;;13212:93;13301:3;13212:93;:::i;:::-;13330:2;13325:3;13321:12;13314:19;;12973:366;;;:::o;13345:419::-;13511:4;13549:2;13538:9;13534:18;13526:26;;13598:9;13592:4;13588:20;13584:1;13573:9;13569:17;13562:47;13626:131;13752:4;13626:131;:::i;:::-;13618:139;;13345:419;;;:::o;13770:248::-;13910:34;13906:1;13898:6;13894:14;13887:58;13979:31;13974:2;13966:6;13962:15;13955:56;13770:248;:::o;14024:366::-;14166:3;14187:67;14251:2;14246:3;14187:67;:::i;:::-;14180:74;;14263:93;14352:3;14263:93;:::i;:::-;14381:2;14376:3;14372:12;14365:19;;14024:366;;;:::o;14396:419::-;14562:4;14600:2;14589:9;14585:18;14577:26;;14649:9;14643:4;14639:20;14635:1;14624:9;14620:17;14613:47;14677:131;14803:4;14677:131;:::i;:::-;14669:139;;14396:419;;;:::o;14821:251::-;14961:34;14957:1;14949:6;14945:14;14938:58;15030:34;15025:2;15017:6;15013:15;15006:59;14821:251;:::o;15078:366::-;15220:3;15241:67;15305:2;15300:3;15241:67;:::i;:::-;15234:74;;15317:93;15406:3;15317:93;:::i;:::-;15435:2;15430:3;15426:12;15419:19;;15078:366;;;:::o;15450:419::-;15616:4;15654:2;15643:9;15639:18;15631:26;;15703:9;15697:4;15693:20;15689:1;15678:9;15674:17;15667:47;15731:131;15857:4;15731:131;:::i;:::-;15723:139;;15450:419;;;:::o;15875:553::-;16052:4;16090:3;16079:9;16075:19;16067:27;;16104:71;16172:1;16161:9;16157:17;16148:6;16104:71;:::i;:::-;16185:72;16253:2;16242:9;16238:18;16229:6;16185:72;:::i;:::-;16267;16335:2;16324:9;16320:18;16311:6;16267:72;:::i;:::-;16349;16417:2;16406:9;16402:18;16393:6;16349:72;:::i;:::-;15875:553;;;;;;;:::o;16434:173::-;16574:25;16570:1;16562:6;16558:14;16551:49;16434:173;:::o;16613:366::-;16755:3;16776:67;16840:2;16835:3;16776:67;:::i;:::-;16769:74;;16852:93;16941:3;16852:93;:::i;:::-;16970:2;16965:3;16961:12;16954:19;;16613:366;;;:::o;16985:419::-;17151:4;17189:2;17178:9;17174:18;17166:26;;17238:9;17232:4;17228:20;17224:1;17213:9;17209:17;17202:47;17266:131;17392:4;17266:131;:::i;:::-;17258:139;;16985:419;;;:::o;17410:171::-;17550:23;17546:1;17538:6;17534:14;17527:47;17410:171;:::o;17587:366::-;17729:3;17750:67;17814:2;17809:3;17750:67;:::i;:::-;17743:74;;17826:93;17915:3;17826:93;:::i;:::-;17944:2;17939:3;17935:12;17928:19;;17587:366;;;:::o;17959:419::-;18125:4;18163:2;18152:9;18148:18;18140:26;;18212:9;18206:4;18202:20;18198:1;18187:9;18183:17;18176:47;18240:131;18366:4;18240:131;:::i;:::-;18232:139;;17959:419;;;:::o;18384:442::-;18533:4;18571:2;18560:9;18556:18;18548:26;;18584:71;18652:1;18641:9;18637:17;18628:6;18584:71;:::i;:::-;18665:72;18733:2;18722:9;18718:18;18709:6;18665:72;:::i;:::-;18747;18815:2;18804:9;18800:18;18791:6;18747:72;:::i;:::-;18384:442;;;;;;:::o;18832:225::-;18972:34;18968:1;18960:6;18956:14;18949:58;19041:8;19036:2;19028:6;19024:15;19017:33;18832:225;:::o;19063:366::-;19205:3;19226:67;19290:2;19285:3;19226:67;:::i;:::-;19219:74;;19302:93;19391:3;19302:93;:::i;:::-;19420:2;19415:3;19411:12;19404:19;;19063:366;;;:::o;19435:419::-;19601:4;19639:2;19628:9;19624:18;19616:26;;19688:9;19682:4;19678:20;19674:1;19663:9;19659:17;19652:47;19716:131;19842:4;19716:131;:::i;:::-;19708:139;;19435:419;;;:::o;19860:182::-;20000:34;19996:1;19988:6;19984:14;19977:58;19860:182;:::o;20048:366::-;20190:3;20211:67;20275:2;20270:3;20211:67;:::i;:::-;20204:74;;20287:93;20376:3;20287:93;:::i;:::-;20405:2;20400:3;20396:12;20389:19;;20048:366;;;:::o;20420:419::-;20586:4;20624:2;20613:9;20609:18;20601:26;;20673:9;20667:4;20663:20;20659:1;20648:9;20644:17;20637:47;20701:131;20827:4;20701:131;:::i;:::-;20693:139;;20420:419;;;:::o;20845:181::-;20985:33;20981:1;20973:6;20969:14;20962:57;20845:181;:::o;21032:366::-;21174:3;21195:67;21259:2;21254:3;21195:67;:::i;:::-;21188:74;;21271:93;21360:3;21271:93;:::i;:::-;21389:2;21384:3;21380:12;21373:19;;21032:366;;;:::o;21404:419::-;21570:4;21608:2;21597:9;21593:18;21585:26;;21657:9;21651:4;21647:20;21643:1;21632:9;21628:17;21621:47;21685:131;21811:4;21685:131;:::i;:::-;21677:139;;21404:419;;;:::o;21829:442::-;21978:4;22016:2;22005:9;22001:18;21993:26;;22029:71;22097:1;22086:9;22082:17;22073:6;22029:71;:::i;:::-;22110:72;22178:2;22167:9;22163:18;22154:6;22110:72;:::i;:::-;22192;22260:2;22249:9;22245:18;22236:6;22192:72;:::i;:::-;21829:442;;;;;;:::o;22277:116::-;22347:21;22362:5;22347:21;:::i;:::-;22340:5;22337:32;22327:60;;22383:1;22380;22373:12;22327:60;22277:116;:::o;22399:137::-;22453:5;22484:6;22478:13;22469:22;;22500:30;22524:5;22500:30;:::i;:::-;22399:137;;;;:::o;22542:345::-;22609:6;22658:2;22646:9;22637:7;22633:23;22629:32;22626:119;;;22664:79;;:::i;:::-;22626:119;22784:1;22809:61;22862:7;22853:6;22842:9;22838:22;22809:61;:::i;:::-;22799:71;;22755:125;22542:345;;;;:::o;22893:229::-;23033:34;23029:1;23021:6;23017:14;23010:58;23102:12;23097:2;23089:6;23085:15;23078:37;22893:229;:::o;23128:366::-;23270:3;23291:67;23355:2;23350:3;23291:67;:::i;:::-;23284:74;;23367:93;23456:3;23367:93;:::i;:::-;23485:2;23480:3;23476:12;23469:19;;23128:366;;;:::o;23500:419::-;23666:4;23704:2;23693:9;23689:18;23681:26;;23753:9;23747:4;23743:20;23739:1;23728:9;23724:17;23717:47;23781:131;23907:4;23781:131;:::i;:::-;23773:139;;23500:419;;;:::o;23925:225::-;24065:34;24061:1;24053:6;24049:14;24042:58;24134:8;24129:2;24121:6;24117:15;24110:33;23925:225;:::o;24156:366::-;24298:3;24319:67;24383:2;24378:3;24319:67;:::i;:::-;24312:74;;24395:93;24484:3;24395:93;:::i;:::-;24513:2;24508:3;24504:12;24497:19;;24156:366;;;:::o;24528:419::-;24694:4;24732:2;24721:9;24717:18;24709:26;;24781:9;24775:4;24771:20;24767:1;24756:9;24752:17;24745:47;24809:131;24935:4;24809:131;:::i;:::-;24801:139;;24528:419;;;:::o;24953:98::-;25004:6;25038:5;25032:12;25022:22;;24953:98;;;:::o;25057:147::-;25158:11;25195:3;25180:18;;25057:147;;;;:::o;25210:307::-;25278:1;25288:113;25302:6;25299:1;25296:13;25288:113;;;25387:1;25382:3;25378:11;25372:18;25368:1;25363:3;25359:11;25352:39;25324:2;25321:1;25317:10;25312:15;;25288:113;;;25419:6;25416:1;25413:13;25410:101;;;25499:1;25490:6;25485:3;25481:16;25474:27;25410:101;25259:258;25210:307;;;:::o;25523:373::-;25627:3;25655:38;25687:5;25655:38;:::i;:::-;25709:88;25790:6;25785:3;25709:88;:::i;:::-;25702:95;;25806:52;25851:6;25846:3;25839:4;25832:5;25828:16;25806:52;:::i;:::-;25883:6;25878:3;25874:16;25867:23;;25631:265;25523:373;;;;:::o;25902:271::-;26032:3;26054:93;26143:3;26134:6;26054:93;:::i;:::-;26047:100;;26164:3;26157:10;;25902:271;;;;:::o;26179:179::-;26319:31;26315:1;26307:6;26303:14;26296:55;26179:179;:::o;26364:366::-;26506:3;26527:67;26591:2;26586:3;26527:67;:::i;:::-;26520:74;;26603:93;26692:3;26603:93;:::i;:::-;26721:2;26716:3;26712:12;26705:19;;26364:366;;;:::o;26736:419::-;26902:4;26940:2;26929:9;26925:18;26917:26;;26989:9;26983:4;26979:20;26975:1;26964:9;26960:17;26953:47;27017:131;27143:4;27017:131;:::i;:::-;27009:139;;26736:419;;;:::o;27161:99::-;27213:6;27247:5;27241:12;27231:22;;27161:99;;;:::o;27266:102::-;27307:6;27358:2;27354:7;27349:2;27342:5;27338:14;27334:28;27324:38;;27266:102;;;:::o;27374:364::-;27462:3;27490:39;27523:5;27490:39;:::i;:::-;27545:71;27609:6;27604:3;27545:71;:::i;:::-;27538:78;;27625:52;27670:6;27665:3;27658:4;27651:5;27647:16;27625:52;:::i;:::-;27702:29;27724:6;27702:29;:::i;:::-;27697:3;27693:39;27686:46;;27466:272;27374:364;;;;:::o;27744:313::-;27857:4;27895:2;27884:9;27880:18;27872:26;;27944:9;27938:4;27934:20;27930:1;27919:9;27915:17;27908:47;27972:78;28045:4;28036:6;27972:78;:::i;:::-;27964:86;;27744:313;;;;:::o", + "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport \"../utils/UInt.sol\";\nimport \"./MallBase.sol\";\n\ninterface ICurrency is IERC20 {\n function decimals() external view returns (uint256);\n}\n\ncontract BETokenMall is MallBase, ReentrancyGuard {\n using SafeERC20 for IERC20;\n using UInt for uint256;\n uint256 constant ROUND = 1000000;\n address public tokenAddress;\n address public seller;\n // currency => price\n mapping(address => uint256) public prices;\n\n // Events\n event BuyTransaction(\n address indexed buyer,\n address tokenAddress,\n address currency,\n uint256 amount,\n uint256 tokenAmount\n );\n event TokenAddressUpdated(address tokenAddress);\n event SellerUpdated(address seller);\n event UpdateTokenPrice(address currency, uint256 price, uint256 pricePre);\n\n /**\n * @dev Constructor\n */\n constructor(address _tokenAddress, address _seller) {\n tokenAddress = _tokenAddress;\n seller = _seller;\n }\n\n /**\n * @dev Update token address\n */\n function updateTokenAddress(address _tokenAddress) external onlyOwner {\n tokenAddress = _tokenAddress;\n emit TokenAddressUpdated(_tokenAddress);\n }\n\n /**\n * @dev Update seller address\n */\n function updateSeller(address _seller) external onlyOwner {\n seller = _seller;\n emit SellerUpdated(_seller);\n }\n\n /**\n * @dev Update token price\n */\n function updateTokenPrice(\n address currency,\n uint256 price\n ) external onlyOwner {\n uint256 pricePre = prices[currency];\n prices[currency] = price;\n emit UpdateTokenPrice(currency, price, pricePre);\n }\n\n /**\n * @dev Buy token\n */\n function buyToken(address currency, uint256 amount) external nonReentrant {\n require(amount > 0, \"BETokenMall: invalid amount\");\n require(erc20Supported[currency], \"BETokenMall: invalid payment method\");\n require(prices[currency] > 0, \"BETokenMall: invalid token price\");\n // calc currency amount\n uint256 currencyDecimal = ICurrency(currency).decimals();\n uint256 tokenAmount = (prices[currency] *\n amount *\n (10 ** (18 - currencyDecimal))) / ROUND;\n address buyer = _msgSender();\n require(\n IERC20(tokenAddress).balanceOf(seller) >= tokenAmount,\n \"BETokenMall: seller doesn't have enough token to sell this item\"\n );\n require(\n IERC20(tokenAddress).allowance(seller, address(this)) >= tokenAmount,\n \"BETokenMall: seller doesn't approve enough token to sell this item\"\n );\n // Check payment approval and buyer balance\n require(\n IERC20(currency).balanceOf(buyer) >= amount,\n \"BETokenMall: buyer doesn't have enough token to buy this item\"\n );\n require(\n IERC20(currency).allowance(buyer, address(this)) >= amount,\n \"BETokenMall: buyer doesn't approve enough token to buy this item\"\n );\n\n // Transfer payment to seller\n IERC20(currency).safeTransferFrom(buyer, feeToAddress, amount);\n // Transfer token to buyer\n IERC20(tokenAddress).safeTransferFrom(seller, buyer, tokenAmount);\n // emit buy event\n emit BuyTransaction(buyer, tokenAddress, currency, amount, tokenAmount);\n }\n}\n", "sourcePath": "/Users/zhl/Documents/workspace/crypto/becrypto/contracts/market/BETokenMall.sol", "ast": { "absolutePath": "project:/contracts/market/BETokenMall.sol", @@ -12736,7 +12999,7 @@ 997 ], "BETokenMall": [ - 1310 + 1313 ], "Context": [ 1019 @@ -12751,7 +13014,7 @@ 291 ], "MallBase": [ - 1423 + 1426 ], "Ownable": [ 112 @@ -12763,10 +13026,10 @@ 667 ], "UInt": [ - 1454 + 1457 ] }, - "id": 1311, + "id": 1314, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ @@ -12786,7 +13049,7 @@ "id": 1022, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1311, + "scope": 1314, "sourceUnit": 256, "src": "57:56:7", "symbolAliases": [], @@ -12798,7 +13061,7 @@ "id": 1023, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1311, + "scope": 1314, "sourceUnit": 668, "src": "114:65:7", "symbolAliases": [], @@ -12810,7 +13073,7 @@ "id": 1024, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1311, + "scope": 1314, "sourceUnit": 178, "src": "180:62:7", "symbolAliases": [], @@ -12822,8 +13085,8 @@ "id": 1025, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1311, - "sourceUnit": 1455, + "scope": 1314, + "sourceUnit": 1458, "src": "243:27:7", "symbolAliases": [], "unitAlias": "" @@ -12834,8 +13097,8 @@ "id": 1026, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1311, - "sourceUnit": 1424, + "scope": 1314, + "sourceUnit": 1427, "src": "271:24:7", "symbolAliases": [], "unitAlias": "" @@ -12925,7 +13188,7 @@ "visibility": "external" } ], - "scope": 1311, + "scope": 1314, "src": "297:88:7", "usedErrors": [] }, @@ -12937,7 +13200,7 @@ "id": 1035, "name": "MallBase", "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, + "referencedDeclaration": 1426, "src": "411:8:7" }, "id": 1036, @@ -12961,11 +13224,11 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 1310, + "id": 1313, "linearizedBaseContracts": [ - 1310, + 1313, 177, - 1423, + 1426, 112, 1019 ], @@ -13008,7 +13271,7 @@ "id": 1043, "name": "UInt", "nodeType": "IdentifierPath", - "referencedDeclaration": 1454, + "referencedDeclaration": 1457, "src": "477:4:7" }, "nodeType": "UsingForDirective", @@ -13031,7 +13294,7 @@ "name": "ROUND", "nameLocation": "514:5:7", "nodeType": "VariableDeclaration", - "scope": 1310, + "scope": 1313, "src": "497:32:7", "stateVariable": true, "storageLocation": "default", @@ -13075,7 +13338,7 @@ "name": "tokenAddress", "nameLocation": "548:12:7", "nodeType": "VariableDeclaration", - "scope": 1310, + "scope": 1313, "src": "533:27:7", "stateVariable": true, "storageLocation": "default", @@ -13104,7 +13367,7 @@ "name": "seller", "nameLocation": "579:6:7", "nodeType": "VariableDeclaration", - "scope": 1310, + "scope": 1313, "src": "564:21:7", "stateVariable": true, "storageLocation": "default", @@ -13133,7 +13396,7 @@ "name": "prices", "nameLocation": "647:6:7", "nodeType": "VariableDeclaration", - "scope": 1310, + "scope": 1313, "src": "612:41:7", "stateVariable": true, "storageLocation": "default", @@ -13174,12 +13437,12 @@ }, { "anonymous": false, - "id": 1066, + "id": 1068, "name": "BuyTransaction", "nameLocation": "676:14:7", "nodeType": "EventDefinition", "parameters": { - "id": 1065, + "id": 1067, "nodeType": "ParameterList", "parameters": [ { @@ -13190,7 +13453,7 @@ "name": "buyer", "nameLocation": "712:5:7", "nodeType": "VariableDeclaration", - "scope": 1066, + "scope": 1068, "src": "696:21:7", "stateVariable": false, "storageLocation": "default", @@ -13219,7 +13482,7 @@ "name": "tokenAddress", "nameLocation": "731:12:7", "nodeType": "VariableDeclaration", - "scope": 1066, + "scope": 1068, "src": "723:20:7", "stateVariable": false, "storageLocation": "default", @@ -13248,7 +13511,7 @@ "name": "currency", "nameLocation": "757:8:7", "nodeType": "VariableDeclaration", - "scope": 1066, + "scope": 1068, "src": "749:16:7", "stateVariable": false, "storageLocation": "default", @@ -13277,7 +13540,7 @@ "name": "amount", "nameLocation": "779:6:7", "nodeType": "VariableDeclaration", - "scope": 1066, + "scope": 1068, "src": "771:14:7", "stateVariable": false, "storageLocation": "default", @@ -13296,149 +13559,17 @@ } }, "visibility": "internal" - } - ], - "src": "690:99:7" - }, - "src": "670:120:7" - }, - { - "anonymous": false, - "id": 1070, - "name": "TokenAddressUpdated", - "nameLocation": "799:19:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 1069, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1068, - "indexed": false, - "mutability": "mutable", - "name": "tokenAddress", - "nameLocation": "827:12:7", - "nodeType": "VariableDeclaration", - "scope": 1070, - "src": "819:20:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1067, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "819:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "818:22:7" - }, - "src": "793:48:7" - }, - { - "anonymous": false, - "id": 1074, - "name": "SellerUpdated", - "nameLocation": "850:13:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 1073, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1072, - "indexed": false, - "mutability": "mutable", - "name": "seller", - "nameLocation": "872:6:7", - "nodeType": "VariableDeclaration", - "scope": 1074, - "src": "864:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1071, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "864:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "863:16:7" - }, - "src": "844:36:7" - }, - { - "anonymous": false, - "id": 1082, - "name": "UpdateTokenPrice", - "nameLocation": "889:16:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 1081, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1076, - "indexed": false, - "mutability": "mutable", - "name": "currency", - "nameLocation": "914:8:7", - "nodeType": "VariableDeclaration", - "scope": 1082, - "src": "906:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1075, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "906:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" }, { "constant": false, - "id": 1078, + "id": 1066, "indexed": false, "mutability": "mutable", - "name": "price", - "nameLocation": "932:5:7", + "name": "tokenAmount", + "nameLocation": "799:11:7", "nodeType": "VariableDeclaration", - "scope": 1082, - "src": "924:13:7", + "scope": 1068, + "src": "791:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13446,27 +13577,159 @@ "typeString": "uint256" }, "typeName": { - "id": 1077, + "id": 1065, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "924:7:7", + "src": "791:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" + } + ], + "src": "690:124:7" + }, + "src": "670:145:7" + }, + { + "anonymous": false, + "id": 1072, + "name": "TokenAddressUpdated", + "nameLocation": "824:19:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1070, + "indexed": false, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "852:12:7", + "nodeType": "VariableDeclaration", + "scope": 1072, + "src": "844:20:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "844:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "843:22:7" + }, + "src": "818:48:7" + }, + { + "anonymous": false, + "id": 1076, + "name": "SellerUpdated", + "nameLocation": "875:13:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1074, + "indexed": false, + "mutability": "mutable", + "name": "seller", + "nameLocation": "897:6:7", + "nodeType": "VariableDeclaration", + "scope": 1076, + "src": "889:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1073, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "889:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "888:16:7" + }, + "src": "869:36:7" + }, + { + "anonymous": false, + "id": 1084, + "name": "UpdateTokenPrice", + "nameLocation": "914:16:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1078, + "indexed": false, + "mutability": "mutable", + "name": "currency", + "nameLocation": "939:8:7", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "931:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" }, { "constant": false, "id": 1080, "indexed": false, "mutability": "mutable", - "name": "pricePre", - "nameLocation": "947:8:7", + "name": "price", + "nameLocation": "957:5:7", "nodeType": "VariableDeclaration", - "scope": 1082, - "src": "939:16:7", + "scope": 1084, + "src": "949:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13477,7 +13740,35 @@ "id": 1079, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "939:7:7", + "src": "949:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1082, + "indexed": false, + "mutability": "mutable", + "name": "pricePre", + "nameLocation": "972:8:7", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "964:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "964:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13486,30 +13777,30 @@ "visibility": "internal" } ], - "src": "905:51:7" + "src": "930:51:7" }, - "src": "883:74:7" + "src": "908:74:7" }, { "body": { - "id": 1098, + "id": 1100, "nodeType": "Block", - "src": "1047:61:7", + "src": "1072:61:7", "statements": [ { "expression": { - "id": 1092, + "id": 1094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1090, + "id": 1092, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1050, - "src": "1053:12:7", + "src": "1078:12:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13518,41 +13809,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1091, + "id": 1093, "name": "_tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "1068:13:7", + "referencedDeclaration": 1087, + "src": "1093:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1053:28:7", + "src": "1078:28:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1093, + "id": 1095, "nodeType": "ExpressionStatement", - "src": "1053:28:7" + "src": "1078:28:7" }, { "expression": { - "id": 1096, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1094, + "id": 1096, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1052, - "src": "1087:6:7", + "src": "1112:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13561,36 +13852,36 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1095, + "id": 1097, "name": "_seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "1096:7:7", + "referencedDeclaration": 1089, + "src": "1121:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1087:16:7", + "src": "1112:16:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1097, + "id": 1099, "nodeType": "ExpressionStatement", - "src": "1087:16:7" + "src": "1112:16:7" } ] }, "documentation": { - "id": 1083, + "id": 1085, "nodeType": "StructuredDocumentation", - "src": "961:31:7", + "src": "986:31:7", "text": " @dev Constructor" }, - "id": 1099, + "id": 1101, "implemented": true, "kind": "constructor", "modifiers": [], @@ -13598,46 +13889,18 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 1088, + "id": 1090, "nodeType": "ParameterList", "parameters": [ - { - "constant": false, - "id": 1085, - "mutability": "mutable", - "name": "_tokenAddress", - "nameLocation": "1015:13:7", - "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "1007:21:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1084, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1007:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, { "constant": false, "id": 1087, "mutability": "mutable", - "name": "_seller", - "nameLocation": "1038:7:7", + "name": "_tokenAddress", + "nameLocation": "1040:13:7", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "1030:15:7", + "scope": 1101, + "src": "1032:21:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13648,7 +13911,35 @@ "id": 1086, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1030:7:7", + "src": "1032:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "_seller", + "nameLocation": "1063:7:7", + "nodeType": "VariableDeclaration", + "scope": 1101, + "src": "1055:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1088, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1055:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13658,40 +13949,40 @@ "visibility": "internal" } ], - "src": "1006:40:7" + "src": "1031:40:7" }, "returnParameters": { - "id": 1089, + "id": 1091, "nodeType": "ParameterList", "parameters": [], - "src": "1047:0:7" + "src": "1072:0:7" }, - "scope": 1310, - "src": "995:113:7", + "scope": 1313, + "src": "1020:113:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1115, + "id": 1117, "nodeType": "Block", - "src": "1225:84:7", + "src": "1250:84:7", "statements": [ { "expression": { - "id": 1109, + "id": 1111, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1107, + "id": 1109, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1050, - "src": "1231:12:7", + "src": "1256:12:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13700,37 +13991,37 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1108, + "id": 1110, "name": "_tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "1246:13:7", + "referencedDeclaration": 1104, + "src": "1271:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1231:28:7", + "src": "1256:28:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1110, + "id": 1112, "nodeType": "ExpressionStatement", - "src": "1231:28:7" + "src": "1256:28:7" }, { "eventCall": { "arguments": [ { - "id": 1112, + "id": 1114, "name": "_tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "1290:13:7", + "referencedDeclaration": 1104, + "src": "1315:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13744,18 +14035,18 @@ "typeString": "address" } ], - "id": 1111, + "id": 1113, "name": "TokenAddressUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "1270:19:7", + "referencedDeclaration": 1072, + "src": "1295:19:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1113, + "id": 1115, "isConstant": false, "isLValue": false, "isPure": false, @@ -13763,60 +14054,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1270:34:7", + "src": "1295:34:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1114, + "id": 1116, "nodeType": "EmitStatement", - "src": "1265:39:7" + "src": "1290:39:7" } ] }, "documentation": { - "id": 1100, + "id": 1102, "nodeType": "StructuredDocumentation", - "src": "1112:40:7", + "src": "1137:40:7", "text": " @dev Update token address" }, "functionSelector": "6691461a", - "id": 1116, + "id": 1118, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1105, + "id": 1107, "kind": "modifierInvocation", "modifierName": { - "id": 1104, + "id": 1106, "name": "onlyOwner", "nodeType": "IdentifierPath", "referencedDeclaration": 31, - "src": "1215:9:7" + "src": "1240:9:7" }, "nodeType": "ModifierInvocation", - "src": "1215:9:7" + "src": "1240:9:7" } ], "name": "updateTokenAddress", - "nameLocation": "1164:18:7", + "nameLocation": "1189:18:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1103, + "id": 1105, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1102, + "id": 1104, "mutability": "mutable", "name": "_tokenAddress", - "nameLocation": "1191:13:7", + "nameLocation": "1216:13:7", "nodeType": "VariableDeclaration", - "scope": 1116, - "src": "1183:21:7", + "scope": 1118, + "src": "1208:21:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13824,10 +14115,10 @@ "typeString": "address" }, "typeName": { - "id": 1101, + "id": 1103, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1183:7:7", + "src": "1208:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13837,40 +14128,40 @@ "visibility": "internal" } ], - "src": "1182:23:7" + "src": "1207:23:7" }, "returnParameters": { - "id": 1106, + "id": 1108, "nodeType": "ParameterList", "parameters": [], - "src": "1225:0:7" + "src": "1250:0:7" }, - "scope": 1310, - "src": "1155:154:7", + "scope": 1313, + "src": "1180:154:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1132, + "id": 1134, "nodeType": "Block", - "src": "1415:60:7", + "src": "1440:60:7", "statements": [ { "expression": { - "id": 1126, + "id": 1128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1124, + "id": 1126, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1052, - "src": "1421:6:7", + "src": "1446:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13879,37 +14170,37 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1125, + "id": 1127, "name": "_seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1119, - "src": "1430:7:7", + "referencedDeclaration": 1121, + "src": "1455:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1421:16:7", + "src": "1446:16:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1127, + "id": 1129, "nodeType": "ExpressionStatement", - "src": "1421:16:7" + "src": "1446:16:7" }, { "eventCall": { "arguments": [ { - "id": 1129, + "id": 1131, "name": "_seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1119, - "src": "1462:7:7", + "referencedDeclaration": 1121, + "src": "1487:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13923,18 +14214,18 @@ "typeString": "address" } ], - "id": 1128, + "id": 1130, "name": "SellerUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1074, - "src": "1448:13:7", + "referencedDeclaration": 1076, + "src": "1473:13:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1130, + "id": 1132, "isConstant": false, "isLValue": false, "isPure": false, @@ -13942,60 +14233,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1448:22:7", + "src": "1473:22:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1131, + "id": 1133, "nodeType": "EmitStatement", - "src": "1443:27:7" + "src": "1468:27:7" } ] }, "documentation": { - "id": 1117, + "id": 1119, "nodeType": "StructuredDocumentation", - "src": "1313:41:7", + "src": "1338:41:7", "text": " @dev Update seller address" }, "functionSelector": "dbbdae63", - "id": 1133, + "id": 1135, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1122, + "id": 1124, "kind": "modifierInvocation", "modifierName": { - "id": 1121, + "id": 1123, "name": "onlyOwner", "nodeType": "IdentifierPath", "referencedDeclaration": 31, - "src": "1405:9:7" + "src": "1430:9:7" }, "nodeType": "ModifierInvocation", - "src": "1405:9:7" + "src": "1430:9:7" } ], "name": "updateSeller", - "nameLocation": "1366:12:7", + "nameLocation": "1391:12:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1120, + "id": 1122, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1119, + "id": 1121, "mutability": "mutable", "name": "_seller", - "nameLocation": "1387:7:7", + "nameLocation": "1412:7:7", "nodeType": "VariableDeclaration", - "scope": 1133, - "src": "1379:15:7", + "scope": 1135, + "src": "1404:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14003,10 +14294,10 @@ "typeString": "address" }, "typeName": { - "id": 1118, + "id": 1120, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1379:7:7", + "src": "1404:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14016,40 +14307,40 @@ "visibility": "internal" } ], - "src": "1378:17:7" + "src": "1403:17:7" }, "returnParameters": { - "id": 1123, + "id": 1125, "nodeType": "ParameterList", "parameters": [], - "src": "1415:0:7" + "src": "1440:0:7" }, - "scope": 1310, - "src": "1357:118:7", + "scope": 1313, + "src": "1382:118:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1161, + "id": 1163, "nodeType": "Block", - "src": "1610:130:7", + "src": "1635:130:7", "statements": [ { "assignments": [ - 1144 + 1146 ], "declarations": [ { "constant": false, - "id": 1144, + "id": 1146, "mutability": "mutable", "name": "pricePre", - "nameLocation": "1624:8:7", + "nameLocation": "1649:8:7", "nodeType": "VariableDeclaration", - "scope": 1161, - "src": "1616:16:7", + "scope": 1163, + "src": "1641:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14057,10 +14348,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1143, + "id": 1145, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1616:7:7", + "src": "1641:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14069,28 +14360,28 @@ "visibility": "internal" } ], - "id": 1148, + "id": 1150, "initialValue": { "baseExpression": { - "id": 1145, + "id": 1147, "name": "prices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1056, - "src": "1635:6:7", + "src": "1660:6:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1147, + "id": 1149, "indexExpression": { - "id": 1146, + "id": 1148, "name": "currency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1136, - "src": "1642:8:7", + "referencedDeclaration": 1138, + "src": "1667:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14101,43 +14392,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1635:16:7", + "src": "1660:16:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1616:35:7" + "src": "1641:35:7" }, { "expression": { - "id": 1153, + "id": 1155, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1149, + "id": 1151, "name": "prices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1056, - "src": "1657:6:7", + "src": "1682:6:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1151, + "id": 1153, "indexExpression": { - "id": 1150, + "id": 1152, "name": "currency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1136, - "src": "1664:8:7", + "referencedDeclaration": 1138, + "src": "1689:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14148,7 +14439,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1657:16:7", + "src": "1682:16:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14157,61 +14448,61 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1152, + "id": 1154, "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "1676:5:7", + "referencedDeclaration": 1140, + "src": "1701:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1657:24:7", + "src": "1682:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1154, + "id": 1156, "nodeType": "ExpressionStatement", - "src": "1657:24:7" + "src": "1682:24:7" }, { "eventCall": { "arguments": [ { - "id": 1156, + "id": 1158, "name": "currency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1136, - "src": "1709:8:7", + "referencedDeclaration": 1138, + "src": "1734:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1157, + "id": 1159, "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "1719:5:7", + "referencedDeclaration": 1140, + "src": "1744:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1158, + "id": 1160, "name": "pricePre", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1144, - "src": "1726:8:7", + "referencedDeclaration": 1146, + "src": "1751:8:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14233,18 +14524,18 @@ "typeString": "uint256" } ], - "id": 1155, + "id": 1157, "name": "UpdateTokenPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1082, - "src": "1692:16:7", + "referencedDeclaration": 1084, + "src": "1717:16:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, - "id": 1159, + "id": 1161, "isConstant": false, "isLValue": false, "isPure": false, @@ -14252,60 +14543,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1692:43:7", + "src": "1717:43:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1160, + "id": 1162, "nodeType": "EmitStatement", - "src": "1687:48:7" + "src": "1712:48:7" } ] }, "documentation": { - "id": 1134, + "id": 1136, "nodeType": "StructuredDocumentation", - "src": "1479:38:7", + "src": "1504:38:7", "text": " @dev Update token price" }, "functionSelector": "d4ee651b", - "id": 1162, + "id": 1164, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1141, + "id": 1143, "kind": "modifierInvocation", "modifierName": { - "id": 1140, + "id": 1142, "name": "onlyOwner", "nodeType": "IdentifierPath", "referencedDeclaration": 31, - "src": "1600:9:7" + "src": "1625:9:7" }, "nodeType": "ModifierInvocation", - "src": "1600:9:7" + "src": "1625:9:7" } ], "name": "updateTokenPrice", - "nameLocation": "1529:16:7", + "nameLocation": "1554:16:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1139, + "id": 1141, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1136, + "id": 1138, "mutability": "mutable", "name": "currency", - "nameLocation": "1559:8:7", + "nameLocation": "1584:8:7", "nodeType": "VariableDeclaration", - "scope": 1162, - "src": "1551:16:7", + "scope": 1164, + "src": "1576:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14313,10 +14604,10 @@ "typeString": "address" }, "typeName": { - "id": 1135, + "id": 1137, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1551:7:7", + "src": "1576:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14327,13 +14618,13 @@ }, { "constant": false, - "id": 1138, + "id": 1140, "mutability": "mutable", "name": "price", - "nameLocation": "1581:5:7", + "nameLocation": "1606:5:7", "nodeType": "VariableDeclaration", - "scope": 1162, - "src": "1573:13:7", + "scope": 1164, + "src": "1598:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14341,10 +14632,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1137, + "id": 1139, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1573:7:7", + "src": "1598:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14353,25 +14644,25 @@ "visibility": "internal" } ], - "src": "1545:45:7" + "src": "1570:45:7" }, "returnParameters": { - "id": 1142, + "id": 1144, "nodeType": "ParameterList", "parameters": [], - "src": "1610:0:7" + "src": "1635:0:7" }, - "scope": 1310, - "src": "1520:220:7", + "scope": 1313, + "src": "1545:220:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1308, + "id": 1311, "nodeType": "Block", - "src": "1850:1405:7", + "src": "1875:1418:7", "statements": [ { "expression": { @@ -14381,18 +14672,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1175, + "id": 1177, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1173, + "id": 1175, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "1864:6:7", + "referencedDeclaration": 1169, + "src": "1889:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14402,21 +14693,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1174, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1873:1:7", + "src": "1898:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1864:10:7", + "src": "1889:10:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14424,14 +14715,14 @@ }, { "hexValue": "4245546f6b656e4d616c6c3a20696e76616c696420616d6f756e74", - "id": 1176, + "id": 1178, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1876:29:7", + "src": "1901:29:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a2d21523123f6a5636f1f4f57c897909bc3f74962b6955ed8c6676563580d5be", "typeString": "literal_string \"BETokenMall: invalid amount\"" @@ -14450,7 +14741,7 @@ "typeString": "literal_string \"BETokenMall: invalid amount\"" } ], - "id": 1172, + "id": 1174, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14458,13 +14749,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "1856:7:7", + "src": "1881:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1177, + "id": 1179, "isConstant": false, "isLValue": false, "isPure": false, @@ -14472,41 +14763,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1856:50:7", + "src": "1881:50:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1178, + "id": 1180, "nodeType": "ExpressionStatement", - "src": "1856:50:7" + "src": "1881:50:7" }, { "expression": { "arguments": [ { "baseExpression": { - "id": 1180, + "id": 1182, "name": "erc20Supported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "1920:14:7", + "referencedDeclaration": 1326, + "src": "1945:14:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1182, + "id": 1184, "indexExpression": { - "id": 1181, + "id": 1183, "name": "currency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "1935:8:7", + "referencedDeclaration": 1167, + "src": "1960:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14517,7 +14808,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1920:24:7", + "src": "1945:24:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14525,14 +14816,14 @@ }, { "hexValue": "4245546f6b656e4d616c6c3a20696e76616c6964207061796d656e74206d6574686f64", - "id": 1183, + "id": 1185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1946:37:7", + "src": "1971:37:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ce49507a01a15df79dff2538e31e6b4b37d348783463e336d10e68082f4288fa", "typeString": "literal_string \"BETokenMall: invalid payment method\"" @@ -14551,7 +14842,7 @@ "typeString": "literal_string \"BETokenMall: invalid payment method\"" } ], - "id": 1179, + "id": 1181, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14559,13 +14850,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "1912:7:7", + "src": "1937:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1184, + "id": 1186, "isConstant": false, "isLValue": false, "isPure": false, @@ -14573,16 +14864,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1912:72:7", + "src": "1937:72:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1185, + "id": 1187, "nodeType": "ExpressionStatement", - "src": "1912:72:7" + "src": "1937:72:7" }, { "expression": { @@ -14592,32 +14883,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1191, + "id": 1193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 1187, + "id": 1189, "name": "prices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1056, - "src": "1998:6:7", + "src": "2023:6:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1189, + "id": 1191, "indexExpression": { - "id": 1188, + "id": 1190, "name": "currency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "2005:8:7", + "referencedDeclaration": 1167, + "src": "2030:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14628,7 +14919,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1998:16:7", + "src": "2023:16:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14638,21 +14929,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1190, + "id": 1192, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2017:1:7", + "src": "2042:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1998:20:7", + "src": "2023:20:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14660,14 +14951,14 @@ }, { "hexValue": "4245546f6b656e4d616c6c3a20696e76616c696420746f6b656e207072696365", - "id": 1192, + "id": 1194, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2020:34:7", + "src": "2045:34:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_de0baa7be4f17d52c3048a4dab4dba816280e3b0920fda3f994482639c9555cd", "typeString": "literal_string \"BETokenMall: invalid token price\"" @@ -14686,7 +14977,7 @@ "typeString": "literal_string \"BETokenMall: invalid token price\"" } ], - "id": 1186, + "id": 1188, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14694,13 +14985,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "1990:7:7", + "src": "2015:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1193, + "id": 1195, "isConstant": false, "isLValue": false, "isPure": false, @@ -14708,31 +14999,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1990:65:7", + "src": "2015:65:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1194, + "id": 1196, "nodeType": "ExpressionStatement", - "src": "1990:65:7" + "src": "2015:65:7" }, { "assignments": [ - 1196 + 1198 ], "declarations": [ { "constant": false, - "id": 1196, + "id": 1198, "mutability": "mutable", "name": "currencyDecimal", - "nameLocation": "2097:15:7", + "nameLocation": "2122:15:7", "nodeType": "VariableDeclaration", - "scope": 1308, - "src": "2089:23:7", + "scope": 1311, + "src": "2114:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14740,10 +15031,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1195, + "id": 1197, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2089:7:7", + "src": "2114:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14752,7 +15043,7 @@ "visibility": "internal" } ], - "id": 1202, + "id": 1204, "initialValue": { "arguments": [], "expression": { @@ -14760,12 +15051,12 @@ "expression": { "arguments": [ { - "id": 1198, + "id": 1200, "name": "currency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "2125:8:7", + "referencedDeclaration": 1167, + "src": "2150:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14779,18 +15070,18 @@ "typeString": "address" } ], - "id": 1197, + "id": 1199, "name": "ICurrency", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1034, - "src": "2115:9:7", + "src": "2140:9:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ICurrency_$1034_$", "typeString": "type(contract ICurrency)" } }, - "id": 1199, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": false, @@ -14798,14 +15089,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2115:19:7", + "src": "2140:19:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ICurrency_$1034", "typeString": "contract ICurrency" } }, - "id": 1200, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -14813,13 +15104,13 @@ "memberName": "decimals", "nodeType": "MemberAccess", "referencedDeclaration": 1033, - "src": "2115:28:7", + "src": "2140:28:7", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 1201, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": false, @@ -14827,7 +15118,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2115:30:7", + "src": "2140:30:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14835,22 +15126,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2089:56:7" + "src": "2114:56:7" }, { "assignments": [ - 1204 + 1206 ], "declarations": [ { "constant": false, - "id": 1204, + "id": 1206, "mutability": "mutable", "name": "tokenAmount", - "nameLocation": "2159:11:7", + "nameLocation": "2184:11:7", "nodeType": "VariableDeclaration", - "scope": 1308, - "src": "2151:19:7", + "scope": 1311, + "src": "2176:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14858,10 +15149,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1203, + "id": 1205, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2151:7:7", + "src": "2176:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14870,13 +15161,13 @@ "visibility": "internal" } ], - "id": 1221, + "id": 1223, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1220, + "id": 1222, "isConstant": false, "isLValue": false, "isPure": false, @@ -14888,7 +15179,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1217, + "id": 1219, "isConstant": false, "isLValue": false, "isPure": false, @@ -14898,32 +15189,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1209, + "id": 1211, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 1205, + "id": 1207, "name": "prices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1056, - "src": "2174:6:7", + "src": "2199:6:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1207, + "id": 1209, "indexExpression": { - "id": 1206, + "id": 1208, "name": "currency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "2181:8:7", + "referencedDeclaration": 1167, + "src": "2206:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14934,7 +15225,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2174:16:7", + "src": "2199:16:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14943,18 +15234,18 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 1208, + "id": 1210, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "2199:6:7", + "referencedDeclaration": 1169, + "src": "2224:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2174:31:7", + "src": "2199:31:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14969,21 +15260,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1215, + "id": 1217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 1210, + "id": 1212, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2215:2:7", + "src": "2240:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -14999,21 +15290,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1213, + "id": 1215, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3138", - "id": 1211, + "id": 1213, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2222:2:7", + "src": "2247:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" @@ -15023,72 +15314,72 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1212, + "id": 1214, "name": "currencyDecimal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "2227:15:7", + "referencedDeclaration": 1198, + "src": "2252:15:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2222:20:7", + "src": "2247:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1214, + "id": 1216, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2221:22:7", + "src": "2246:22:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2215:28:7", + "src": "2240:28:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1216, + "id": 1218, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2214:30:7", + "src": "2239:30:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2174:70:7", + "src": "2199:70:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1218, + "id": 1220, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2173:72:7", + "src": "2198:72:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15097,40 +15388,40 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 1219, + "id": 1221, "name": "ROUND", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1048, - "src": "2248:5:7", + "src": "2273:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2173:80:7", + "src": "2198:80:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2151:102:7" + "src": "2176:102:7" }, { "assignments": [ - 1223 + 1225 ], "declarations": [ { "constant": false, - "id": 1223, + "id": 1225, "mutability": "mutable", "name": "buyer", - "nameLocation": "2267:5:7", + "nameLocation": "2292:5:7", "nodeType": "VariableDeclaration", - "scope": 1308, - "src": "2259:13:7", + "scope": 1311, + "src": "2284:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15138,10 +15429,10 @@ "typeString": "address" }, "typeName": { - "id": 1222, + "id": 1224, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2259:7:7", + "src": "2284:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15151,23 +15442,23 @@ "visibility": "internal" } ], - "id": 1226, + "id": 1228, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1224, + "id": 1226, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1009, - "src": "2275:10:7", + "src": "2300:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1225, + "id": 1227, "isConstant": false, "isLValue": false, "isPure": false, @@ -15175,7 +15466,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2275:12:7", + "src": "2300:12:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -15183,7 +15474,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2259:28:7" + "src": "2284:28:7" }, { "expression": { @@ -15193,7 +15484,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1235, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": false, @@ -15201,12 +15492,12 @@ "leftExpression": { "arguments": [ { - "id": 1232, + "id": 1234, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1052, - "src": "2339:6:7", + "src": "2364:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15223,12 +15514,12 @@ "expression": { "arguments": [ { - "id": 1229, + "id": 1231, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1050, - "src": "2315:12:7", + "src": "2340:12:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15242,18 +15533,18 @@ "typeString": "address" } ], - "id": 1228, + "id": 1230, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "2308:6:7", + "src": "2333:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$255_$", "typeString": "type(contract IERC20)" } }, - "id": 1230, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, @@ -15261,14 +15552,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2308:20:7", + "src": "2333:20:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$255", "typeString": "contract IERC20" } }, - "id": 1231, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, @@ -15276,13 +15567,13 @@ "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 212, - "src": "2308:30:7", + "src": "2333:30:7", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1233, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, @@ -15290,7 +15581,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2308:38:7", + "src": "2333:38:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15300,18 +15591,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1234, + "id": 1236, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "2350:11:7", + "referencedDeclaration": 1206, + "src": "2375:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2308:53:7", + "src": "2333:53:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15319,14 +15610,14 @@ }, { "hexValue": "4245546f6b656e4d616c6c3a2073656c6c657220646f65736e2774206861766520656e6f75676820746f6b656e20746f2073656c6c2074686973206974656d", - "id": 1236, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2369:65:7", + "src": "2394:65:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_73f0bd8e523cff2e504592c44e9195f4613827bfc123cfd9764579cdf471a09e", "typeString": "literal_string \"BETokenMall: seller doesn't have enough token to sell this item\"" @@ -15345,7 +15636,7 @@ "typeString": "literal_string \"BETokenMall: seller doesn't have enough token to sell this item\"" } ], - "id": 1227, + "id": 1229, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -15353,13 +15644,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2293:7:7", + "src": "2318:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1237, + "id": 1239, "isConstant": false, "isLValue": false, "isPure": false, @@ -15367,16 +15658,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2293:147:7", + "src": "2318:147:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1238, + "id": 1240, "nodeType": "ExpressionStatement", - "src": "2293:147:7" + "src": "2318:147:7" }, { "expression": { @@ -15386,7 +15677,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1251, + "id": 1253, "isConstant": false, "isLValue": false, "isPure": false, @@ -15394,12 +15685,12 @@ "leftExpression": { "arguments": [ { - "id": 1244, + "id": 1246, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1052, - "src": "2492:6:7", + "src": "2517:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15408,14 +15699,14 @@ { "arguments": [ { - "id": 1247, + "id": 1249, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "2508:4:7", + "src": "2533:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_BETokenMall_$1310", + "typeIdentifier": "t_contract$_BETokenMall_$1313", "typeString": "contract BETokenMall" } } @@ -15423,30 +15714,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_BETokenMall_$1310", + "typeIdentifier": "t_contract$_BETokenMall_$1313", "typeString": "contract BETokenMall" } ], - "id": 1246, + "id": 1248, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2500:7:7", + "src": "2525:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1245, + "id": 1247, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2500:7:7", + "src": "2525:7:7", "typeDescriptions": {} } }, - "id": 1248, + "id": 1250, "isConstant": false, "isLValue": false, "isPure": false, @@ -15454,7 +15745,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2500:13:7", + "src": "2525:13:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -15476,12 +15767,12 @@ "expression": { "arguments": [ { - "id": 1241, + "id": 1243, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1050, - "src": "2468:12:7", + "src": "2493:12:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15495,18 +15786,18 @@ "typeString": "address" } ], - "id": 1240, + "id": 1242, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "2461:6:7", + "src": "2486:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$255_$", "typeString": "type(contract IERC20)" } }, - "id": 1242, + "id": 1244, "isConstant": false, "isLValue": false, "isPure": false, @@ -15514,14 +15805,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2461:20:7", + "src": "2486:20:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$255", "typeString": "contract IERC20" } }, - "id": 1243, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -15529,13 +15820,13 @@ "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 232, - "src": "2461:30:7", + "src": "2486:30:7", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1249, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, @@ -15543,7 +15834,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2461:53:7", + "src": "2486:53:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15553,18 +15844,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1250, + "id": 1252, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "2518:11:7", + "referencedDeclaration": 1206, + "src": "2543:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2461:68:7", + "src": "2486:68:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15572,14 +15863,14 @@ }, { "hexValue": "4245546f6b656e4d616c6c3a2073656c6c657220646f65736e277420617070726f766520656e6f75676820746f6b656e20746f2073656c6c2074686973206974656d", - "id": 1252, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2537:68:7", + "src": "2562:68:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b12657b3b75653fe46056178646066dddbc146c37547191bc3f6947332d91116", "typeString": "literal_string \"BETokenMall: seller doesn't approve enough token to sell this item\"" @@ -15598,7 +15889,7 @@ "typeString": "literal_string \"BETokenMall: seller doesn't approve enough token to sell this item\"" } ], - "id": 1239, + "id": 1241, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -15606,13 +15897,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2446:7:7", + "src": "2471:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1253, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": false, @@ -15620,16 +15911,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2446:165:7", + "src": "2471:165:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1254, + "id": 1256, "nodeType": "ExpressionStatement", - "src": "2446:165:7" + "src": "2471:165:7" }, { "expression": { @@ -15639,7 +15930,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1263, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": false, @@ -15647,12 +15938,12 @@ "leftExpression": { "arguments": [ { - "id": 1260, + "id": 1262, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "2707:5:7", + "referencedDeclaration": 1225, + "src": "2732:5:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15669,12 +15960,12 @@ "expression": { "arguments": [ { - "id": 1257, + "id": 1259, "name": "currency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "2687:8:7", + "referencedDeclaration": 1167, + "src": "2712:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15688,18 +15979,18 @@ "typeString": "address" } ], - "id": 1256, + "id": 1258, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "2680:6:7", + "src": "2705:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$255_$", "typeString": "type(contract IERC20)" } }, - "id": 1258, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, @@ -15707,14 +15998,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2680:16:7", + "src": "2705:16:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$255", "typeString": "contract IERC20" } }, - "id": 1259, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, @@ -15722,13 +16013,13 @@ "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 212, - "src": "2680:26:7", + "src": "2705:26:7", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1261, + "id": 1263, "isConstant": false, "isLValue": false, "isPure": false, @@ -15736,7 +16027,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2680:33:7", + "src": "2705:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15746,18 +16037,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1262, + "id": 1264, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "2717:6:7", + "referencedDeclaration": 1169, + "src": "2742:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2680:43:7", + "src": "2705:43:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15765,14 +16056,14 @@ }, { "hexValue": "4245546f6b656e4d616c6c3a20627579657220646f65736e2774206861766520656e6f75676820746f6b656e20746f206275792074686973206974656d", - "id": 1264, + "id": 1266, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2731:63:7", + "src": "2756:63:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_980c03874b76c6d251144dea5acdce60498a10f246b9b561224499303c2b93f7", "typeString": "literal_string \"BETokenMall: buyer doesn't have enough token to buy this item\"" @@ -15791,7 +16082,7 @@ "typeString": "literal_string \"BETokenMall: buyer doesn't have enough token to buy this item\"" } ], - "id": 1255, + "id": 1257, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -15799,13 +16090,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2665:7:7", + "src": "2690:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1265, + "id": 1267, "isConstant": false, "isLValue": false, "isPure": false, @@ -15813,16 +16104,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2665:135:7", + "src": "2690:135:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1266, + "id": 1268, "nodeType": "ExpressionStatement", - "src": "2665:135:7" + "src": "2690:135:7" }, { "expression": { @@ -15832,7 +16123,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1279, + "id": 1281, "isConstant": false, "isLValue": false, "isPure": false, @@ -15840,12 +16131,12 @@ "leftExpression": { "arguments": [ { - "id": 1272, + "id": 1274, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "2848:5:7", + "referencedDeclaration": 1225, + "src": "2873:5:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15854,14 +16145,14 @@ { "arguments": [ { - "id": 1275, + "id": 1277, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "2863:4:7", + "src": "2888:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_BETokenMall_$1310", + "typeIdentifier": "t_contract$_BETokenMall_$1313", "typeString": "contract BETokenMall" } } @@ -15869,30 +16160,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_BETokenMall_$1310", + "typeIdentifier": "t_contract$_BETokenMall_$1313", "typeString": "contract BETokenMall" } ], - "id": 1274, + "id": 1276, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2855:7:7", + "src": "2880:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1273, + "id": 1275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2855:7:7", + "src": "2880:7:7", "typeDescriptions": {} } }, - "id": 1276, + "id": 1278, "isConstant": false, "isLValue": false, "isPure": false, @@ -15900,7 +16191,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2855:13:7", + "src": "2880:13:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -15922,12 +16213,12 @@ "expression": { "arguments": [ { - "id": 1269, + "id": 1271, "name": "currency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "2828:8:7", + "referencedDeclaration": 1167, + "src": "2853:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15941,18 +16232,18 @@ "typeString": "address" } ], - "id": 1268, + "id": 1270, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "2821:6:7", + "src": "2846:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$255_$", "typeString": "type(contract IERC20)" } }, - "id": 1270, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": false, @@ -15960,14 +16251,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2821:16:7", + "src": "2846:16:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$255", "typeString": "contract IERC20" } }, - "id": 1271, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, @@ -15975,13 +16266,13 @@ "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 232, - "src": "2821:26:7", + "src": "2846:26:7", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1277, + "id": 1279, "isConstant": false, "isLValue": false, "isPure": false, @@ -15989,7 +16280,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2821:48:7", + "src": "2846:48:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15999,18 +16290,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1278, + "id": 1280, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "2873:6:7", + "referencedDeclaration": 1169, + "src": "2898:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2821:58:7", + "src": "2846:58:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16018,14 +16309,14 @@ }, { "hexValue": "4245546f6b656e4d616c6c3a20627579657220646f65736e277420617070726f766520656e6f75676820746f6b656e20746f206275792074686973206974656d", - "id": 1280, + "id": 1282, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2887:66:7", + "src": "2912:66:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_157fc5858d6b0d54de2cbea831cc967ea7927dd4aaad4520576b575909c099a9", "typeString": "literal_string \"BETokenMall: buyer doesn't approve enough token to buy this item\"" @@ -16044,7 +16335,7 @@ "typeString": "literal_string \"BETokenMall: buyer doesn't approve enough token to buy this item\"" } ], - "id": 1267, + "id": 1269, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -16052,13 +16343,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2806:7:7", + "src": "2831:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1281, + "id": 1283, "isConstant": false, "isLValue": false, "isPure": false, @@ -16066,51 +16357,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2806:153:7", + "src": "2831:153:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1282, + "id": 1284, "nodeType": "ExpressionStatement", - "src": "2806:153:7" + "src": "2831:153:7" }, { "expression": { "arguments": [ { - "id": 1287, + "id": 1289, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "3034:5:7", + "referencedDeclaration": 1225, + "src": "3059:5:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1288, + "id": 1290, "name": "feeToAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1319, - "src": "3041:12:7", + "referencedDeclaration": 1322, + "src": "3066:12:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1289, + "id": 1291, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "3055:6:7", + "referencedDeclaration": 1169, + "src": "3080:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16135,12 +16426,12 @@ "expression": { "arguments": [ { - "id": 1284, + "id": 1286, "name": "currency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "3007:8:7", + "referencedDeclaration": 1167, + "src": "3032:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16154,18 +16445,18 @@ "typeString": "address" } ], - "id": 1283, + "id": 1285, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3000:6:7", + "src": "3025:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$255_$", "typeString": "type(contract IERC20)" } }, - "id": 1285, + "id": 1287, "isConstant": false, "isLValue": false, "isPure": false, @@ -16173,14 +16464,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3000:16:7", + "src": "3025:16:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$255", "typeString": "contract IERC20" } }, - "id": 1286, + "id": 1288, "isConstant": false, "isLValue": false, "isPure": false, @@ -16188,13 +16479,13 @@ "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 351, - "src": "3000:33:7", + "src": "3025:33:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$255_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$255_$", "typeString": "function (contract IERC20,address,address,uint256)" } }, - "id": 1290, + "id": 1292, "isConstant": false, "isLValue": false, "isPure": false, @@ -16202,51 +16493,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3000:62:7", + "src": "3025:62:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1291, + "id": 1293, "nodeType": "ExpressionStatement", - "src": "3000:62:7" + "src": "3025:62:7" }, { "expression": { "arguments": [ { - "id": 1296, + "id": 1298, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1052, - "src": "3137:6:7", + "src": "3162:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1297, + "id": 1299, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "3145:5:7", + "referencedDeclaration": 1225, + "src": "3170:5:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1298, + "id": 1300, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "3152:11:7", + "referencedDeclaration": 1206, + "src": "3177:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16271,12 +16562,12 @@ "expression": { "arguments": [ { - "id": 1293, + "id": 1295, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1050, - "src": "3106:12:7", + "src": "3131:12:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16290,18 +16581,18 @@ "typeString": "address" } ], - "id": 1292, + "id": 1294, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3099:6:7", + "src": "3124:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$255_$", "typeString": "type(contract IERC20)" } }, - "id": 1294, + "id": 1296, "isConstant": false, "isLValue": false, "isPure": false, @@ -16309,14 +16600,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3099:20:7", + "src": "3124:20:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$255", "typeString": "contract IERC20" } }, - "id": 1295, + "id": 1297, "isConstant": false, "isLValue": false, "isPure": false, @@ -16324,13 +16615,13 @@ "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 351, - "src": "3099:37:7", + "src": "3124:37:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$255_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$255_$", "typeString": "function (contract IERC20,address,address,uint256)" } }, - "id": 1299, + "id": 1301, "isConstant": false, "isLValue": false, "isPure": false, @@ -16338,51 +16629,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3099:65:7", + "src": "3124:65:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1300, + "id": 1302, "nodeType": "ExpressionStatement", - "src": "3099:65:7" + "src": "3124:65:7" }, { "eventCall": { "arguments": [ { - "id": 1302, + "id": 1304, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "3212:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1303, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1050, - "src": "3219:12:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1304, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "3233:8:7", + "referencedDeclaration": 1225, + "src": "3237:5:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16390,11 +16657,47 @@ }, { "id": 1305, - "name": "amount", + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "3244:12:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1306, + "name": "currency", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1167, - "src": "3243:6:7", + "src": "3258:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1169, + "src": "3268:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1308, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "3276:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16415,23 +16718,27 @@ "typeIdentifier": "t_address", "typeString": "address" }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 1301, + "id": 1303, "name": "BuyTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "3197:14:7", + "referencedDeclaration": 1068, + "src": "3222:14:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256)" } }, - "id": 1306, + "id": 1309, "isConstant": false, "isLValue": false, "isPure": false, @@ -16439,60 +16746,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3197:53:7", + "src": "3222:66:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1307, + "id": 1310, "nodeType": "EmitStatement", - "src": "3192:58:7" + "src": "3217:71:7" } ] }, "documentation": { - "id": 1163, + "id": 1165, "nodeType": "StructuredDocumentation", - "src": "1744:29:7", + "src": "1769:29:7", "text": " @dev Buy token" }, "functionSelector": "68f8fc10", - "id": 1309, + "id": 1312, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1170, + "id": 1172, "kind": "modifierInvocation", "modifierName": { - "id": 1169, + "id": 1171, "name": "nonReentrant", "nodeType": "IdentifierPath", "referencedDeclaration": 142, - "src": "1837:12:7" + "src": "1862:12:7" }, "nodeType": "ModifierInvocation", - "src": "1837:12:7" + "src": "1862:12:7" } ], "name": "buyToken", - "nameLocation": "1785:8:7", + "nameLocation": "1810:8:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1168, + "id": 1170, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1165, + "id": 1167, "mutability": "mutable", "name": "currency", - "nameLocation": "1802:8:7", + "nameLocation": "1827:8:7", "nodeType": "VariableDeclaration", - "scope": 1309, - "src": "1794:16:7", + "scope": 1312, + "src": "1819:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16500,10 +16807,10 @@ "typeString": "address" }, "typeName": { - "id": 1164, + "id": 1166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1794:7:7", + "src": "1819:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16514,13 +16821,13 @@ }, { "constant": false, - "id": 1167, + "id": 1169, "mutability": "mutable", "name": "amount", - "nameLocation": "1820:6:7", + "nameLocation": "1845:6:7", "nodeType": "VariableDeclaration", - "scope": 1309, - "src": "1812:14:7", + "scope": 1312, + "src": "1837:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16528,10 +16835,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1166, + "id": 1168, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1812:7:7", + "src": "1837:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16540,27 +16847,27 @@ "visibility": "internal" } ], - "src": "1793:34:7" + "src": "1818:34:7" }, "returnParameters": { - "id": 1171, + "id": 1173, "nodeType": "ParameterList", "parameters": [], - "src": "1850:0:7" + "src": "1875:0:7" }, - "scope": 1310, - "src": "1776:1479:7", + "scope": 1313, + "src": "1801:1492:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1311, - "src": "387:2870:7", + "scope": 1314, + "src": "387:2908:7", "usedErrors": [] } ], - "src": "32:3226:7" + "src": "32:3264:7" }, "compiler": { "name": "solc", @@ -16568,7 +16875,7 @@ }, "networks": {}, "schemaVersion": "3.4.11", - "updatedAt": "2023-07-27T08:09:28.495Z", + "updatedAt": "2023-07-27T08:36:07.464Z", "devdoc": { "kind": "dev", "methods": { diff --git a/contracts/market/BETokenMall.sol b/contracts/market/BETokenMall.sol index 691f3da..1e31c5c 100644 --- a/contracts/market/BETokenMall.sol +++ b/contracts/market/BETokenMall.sol @@ -25,7 +25,8 @@ contract BETokenMall is MallBase, ReentrancyGuard { address indexed buyer, address tokenAddress, address currency, - uint256 amount + uint256 amount, + uint256 tokenAmount ); event TokenAddressUpdated(address tokenAddress); event SellerUpdated(address seller); @@ -103,6 +104,6 @@ contract BETokenMall is MallBase, ReentrancyGuard { // Transfer token to buyer IERC20(tokenAddress).safeTransferFrom(seller, buyer, tokenAmount); // emit buy event - emit BuyTransaction(buyer, tokenAddress, currency, amount); + emit BuyTransaction(buyer, tokenAddress, currency, amount, tokenAmount); } }