From 96e0282f98aeb59881bf3cdcaf48cf6d260d5294 Mon Sep 17 00:00:00 2001 From: i-stam Date: Wed, 15 Jul 2020 10:44:25 +0100 Subject: [PATCH 1/2] Use the same pattern for initializing ENS registry and nodes --- .../externals/upgradeability/UpgradeabilityProxy.sol | 3 ++- contracts/internals/ensResolvable.sol | 10 ++++++---- contracts/internals/tokenWhitelistable.sol | 12 +++++++++--- .../externals/upgradeability/UpgradeabilityProxy.go | 2 +- pkg/bindings/holder.go | 2 +- pkg/bindings/licence.go | 2 +- pkg/bindings/mocks/isValidSignatureExporter.go | 2 +- pkg/bindings/mocks/tokenWhitelistableExporter.go | 2 +- pkg/bindings/oracle.go | 2 +- pkg/bindings/tokenWhitelist.go | 2 +- pkg/bindings/wallet.go | 2 +- pkg/bindings/walletCache.go | 2 +- pkg/bindings/walletDeployer.go | 2 +- 13 files changed, 27 insertions(+), 18 deletions(-) diff --git a/contracts/externals/upgradeability/UpgradeabilityProxy.sol b/contracts/externals/upgradeability/UpgradeabilityProxy.sol index 98a0dcf2..b0f1b7ff 100644 --- a/contracts/externals/upgradeability/UpgradeabilityProxy.sol +++ b/contracts/externals/upgradeability/UpgradeabilityProxy.sol @@ -23,5 +23,6 @@ contract UpgradeabilityProxy is BaseUpgradeabilityProxy { (bool success,) = _logic.delegatecall(_data); require(success); } - } + } + } diff --git a/contracts/internals/ensResolvable.sol b/contracts/internals/ensResolvable.sol index 7b1d4cf2..547e35c0 100644 --- a/contracts/internals/ensResolvable.sol +++ b/contracts/internals/ensResolvable.sol @@ -26,8 +26,8 @@ import "../externals/ens/PublicResolver.sol"; ///@title ENSResolvable - Ethereum Name Service Resolver ///@notice contract should be used to get an address for an ENS node contract ENSResolvable is Initializable { - /// @notice _ensRegistry points to the ENS registry smart contract. - address private _ensRegistry; + /// @notice Address of the ENS registry contract set to the default ENS registry address. + address private _ensRegistry = 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e; /// @notice Checks if the contract has been initialized succesfully i.e. the ENS registry has been set. modifier initialized() { @@ -49,7 +49,9 @@ contract ENSResolvable is Initializable { /// @param _ensReg is the ENS registry used function _initializeENSResolvable(address _ensReg) internal initializer { - require(_ensReg != address(0), "ensReg is 0"); - _ensRegistry = _ensReg; + // Set ENS registry or use default + if (_ensReg != address(0)) { + _ensRegistry = _ensReg; + } } } diff --git a/contracts/internals/tokenWhitelistable.sol b/contracts/internals/tokenWhitelistable.sol index abc5eb08..5de41536 100644 --- a/contracts/internals/tokenWhitelistable.sol +++ b/contracts/internals/tokenWhitelistable.sol @@ -25,8 +25,11 @@ import "../externals/initializable.sol"; /// @title TokenWhitelistable implements access to the TokenWhitelist located behind ENS. contract TokenWhitelistable is ENSResolvable { - /// @notice Is the registered ENS node identifying the tokenWhitelist contract - bytes32 private _tokenWhitelistNode; + // token-whitelist.tokencard.eth + bytes32 private constant _DEFAULT_TOKEN_WHITELIST_NODE = 0xe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d396; + + /// @notice This is the registered ENS node identifying the tokenWhitelist contract + bytes32 private _tokenWhitelistNode = _DEFAULT_TOKEN_WHITELIST_NODE; /// @notice This shows what TokenWhitelist is being used /// @return TokenWhitelist's node registered in ENS. @@ -68,7 +71,10 @@ contract TokenWhitelistable is ENSResolvable { /// @notice Initializes the TokenWhitelistable object. /// @param _tokenWhitelistNode_ is the ENS node of the TokenWhitelist. function _initializeTokenWhitelistable(bytes32 _tokenWhitelistNode_) internal initializer { - _tokenWhitelistNode = _tokenWhitelistNode_; + // Set tokenWhitelistNode or use default + if (_tokenWhitelistNode_ != bytes32(0)) { + _tokenWhitelistNode = _tokenWhitelistNode_; + } } /// @notice Checks whether a token is available. diff --git a/pkg/bindings/externals/upgradeability/UpgradeabilityProxy.go b/pkg/bindings/externals/upgradeability/UpgradeabilityProxy.go index 2c6e76f6..39b5f6f4 100644 --- a/pkg/bindings/externals/upgradeability/UpgradeabilityProxy.go +++ b/pkg/bindings/externals/upgradeability/UpgradeabilityProxy.go @@ -31,7 +31,7 @@ var ( const UpgradeabilityProxyABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Received\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"}]" // UpgradeabilityProxyBin is the compiled bytecode used for deploying new contracts. -var UpgradeabilityProxyBin = "0x60806040526040516103a13803806103a18339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b5060408181527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000082525190819003601c01902060008051602061034683398151915260001990910114925061012a91505057fe5b61013c826001600160e01b036101fb16565b8051156101f4576000826001600160a01b0316826040518082805190602001908083835b6020831061017f5780518252601f199092019160209182019101610160565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101df576040519150601f19603f3d011682016040523d82523d6000602084013e6101e4565b606091505b50509050806101f257600080fd5b505b5050610261565b61020e8161025b60201b61009c1760201c565b6102495760405162461bcd60e51b815260040180806020018281038252603b815260200180610366603b913960400191505060405180910390fd5b60008051602061034683398151915255565b3b151590565b60d78061026f6000396000f3fe6080604052366046576040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a16052565b6052604e6054565b6079565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156097573d6000f35b3d6000fd5b3b15159056fea265627a7a72315820d7acf9351a4581110b7581842069d15e8ceb9389b8b74b0186dcc5ab93ecfff764736f6c63430005110032360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373" +var UpgradeabilityProxyBin = "0x60806040526040516103a13803806103a18339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b5060408181527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000082525190819003601c01902060008051602061034683398151915260001990910114925061012a91505057fe5b61013c826001600160e01b036101fb16565b8051156101f4576000826001600160a01b0316826040518082805190602001908083835b6020831061017f5780518252601f199092019160209182019101610160565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101df576040519150601f19603f3d011682016040523d82523d6000602084013e6101e4565b606091505b50509050806101f257600080fd5b505b5050610261565b61020e8161025b60201b61009c1760201c565b6102495760405162461bcd60e51b815260040180806020018281038252603b815260200180610366603b913960400191505060405180910390fd5b60008051602061034683398151915255565b3b151590565b60d78061026f6000396000f3fe6080604052366046576040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a16052565b6052604e6054565b6079565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156097573d6000f35b3d6000fd5b3b15159056fea265627a7a7231582058f40811b947b3087b4bc98e2e55fad06453ab3add16603dca7f42157d4de2e364736f6c63430005110032360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373" // DeployUpgradeabilityProxy deploys a new Ethereum contract, binding an instance of UpgradeabilityProxy to it. func DeployUpgradeabilityProxy(auth *bind.TransactOpts, backend bind.ContractBackend, _logic common.Address, _data []byte) (common.Address, *types.Transaction, *UpgradeabilityProxy, error) { diff --git a/pkg/bindings/holder.go b/pkg/bindings/holder.go index 521cdd67..f6942721 100644 --- a/pkg/bindings/holder.go +++ b/pkg/bindings/holder.go @@ -31,7 +31,7 @@ var ( const HolderABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_burnerContract_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tokenWhitelistNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"CashAndBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Received\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_nonRedeemableAddresses\",\"type\":\"address[]\"}],\"name\":\"nonRedeemableTokenClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" // HolderBin is the compiled bytecode used for deploying new contracts. -var HolderBin = "0x60806040527f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034553480156200003557600080fd5b506040516200131138038062001311833981810160405260808110156200005b57600080fd5b508051602082015160408301516060909301519192909162000086836001600160e01b03620000d816565b6200009a816001600160e01b03620001f116565b620000ae826001600160e01b03620002b116565b5050603680546001600160a01b0319166001600160a01b039390931692909217909155506200036f565b600054610100900460ff1680620000fd5750620000fd6001600160e01b036200036916565b806200010c575060005460ff16155b620001495760405162461bcd60e51b815260040180806020018281038252602e815260200180620012e3602e913960400191505060405180910390fd5b600054610100900460ff1615801562000175576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216620001bf576040805162461bcd60e51b815260206004820152600b60248201526a0656e7352656720697320360ac1b604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b0384161790558015620001ed576000805461ff00191690555b5050565b600054610100900460ff1680620002165750620002166001600160e01b036200036916565b8062000225575060005460ff16155b620002625760405162461bcd60e51b815260040180806020018281038252602e815260200180620012e3602e913960400191505060405180910390fd5b600054610100900460ff161580156200028e576000805460ff1961ff0019909116610100171660011790555b81156200029b5760348290555b8015620001ed576000805461ff00191690555050565b600054610100900460ff1680620002d65750620002d66001600160e01b036200036916565b80620002e5575060005460ff16155b620003225760405162461bcd60e51b815260040180806020018281038252602e815260200180620012e3602e913960400191505060405180910390fd5b600054610100900460ff161580156200034e576000805460ff1961ff0019909116610100171660011790555b60358290558015620001ed576000805461ff00191690555050565b303b1590565b610f64806200037f6000396000f3fe6080604052600436106100555760003560e01c806327810b6e1461009157806340f6a70f146100c25780637d73b23114610163578063877337b0146101785780639dc29fac1461019f578063e2b4ce97146101d8575b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b34801561009d57600080fd5b506100a66101ed565b604080516001600160a01b039092168252519081900360200190f35b3480156100ce57600080fd5b5061014f600480360360408110156100e557600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561011057600080fd5b82018360208201111561012257600080fd5b8035906020019184602083028401116401000000008311171561014457600080fd5b5090925090506101fc565b604080519115158252519081900360200190f35b34801561016f57600080fd5b506100a661039e565b34801561018457600080fd5b5061018d6103ad565b60408051918252519081900360200190f35b3480156101ab57600080fd5b5061014f600480360360408110156101c257600080fd5b506001600160a01b0381351690602001356103b3565b3480156101e457600080fd5b5061018d6105b1565b6036546001600160a01b031690565b6000610207336105b7565b610251576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b60005b828110156103935761028084848381811061026b57fe5b905060200201356001600160a01b031661064d565b156102d2576040805162461bcd60e51b815260206004820152601d60248201527f72656465656d61626c65732063616e6e6f7420626520636c61696d6564000000604482015290519081900360640190fd5b60006102f88585848181106102e357fe5b905060200201356001600160a01b0316610666565b9050801561038a576103268686868581811061031057fe5b905060200201356001600160a01b0316836106f7565b7ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838686868581811061035457fe5b604080516001600160a01b0395861681526020928302949094013594909416908301525080820184905290519081900360600190a15b50600101610254565b506001949350505050565b6033546001600160a01b031690565b60355490565b6036546000906001600160a01b031633146103ff5760405162461bcd60e51b8152600401808060200182810382526021815260200180610f0f6021913960400191505060405180910390fd5b8161040c575060016105ab565b600061049883603660009054906101000a90046001600160a01b03166001600160a01b031663771282f66040518163ffffffff1660e01b815260040160206040518083038186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d602081101561048a57600080fd5b50519063ffffffff6107c616565b905060606104a4610827565b905060005b81518110156105a35760006104d08383815181106104c357fe5b6020026020010151610666565b9050801561059a5760006104fa856104ee848a63ffffffff61093a16565b9063ffffffff61099316565b905061051a8885858151811061050c57fe5b6020026020010151836106f7565b7f43e074e3351faae8657cc314cf10440a8e7a87ce5092ee4bf9baf56f73fe6c568885858151811061054857fe5b60200260200101518360405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a1505b506001016104a9565b506001925050505b92915050565b60345490565b60006105c46034546109fd565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d602081101561064357600080fd5b505190505b919050565b60008061065983610b1e565b5098975050505050505050565b60006001600160a01b038216156106f057604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106bd57600080fd5b505afa1580156106d1573d6000803e3d6000fd5b505050506040513d60208110156106e757600080fd5b50519050610648565b5047610648565b6001600160a01b0382166107a7576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114610750576040519150601f19603f3d011682016040523d82523d6000602084013e610755565b606091505b50509050806107a1576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506107c1565b6107c16001600160a01b038316848363ffffffff610cb216565b505050565b600082820183811015610820576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60606108346035546109fd565b6001600160a01b03166344b049bc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561086c57600080fd5b505afa158015610880573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156108a957600080fd5b81019080805160405193929190846401000000008211156108c957600080fd5b9083019060208201858111156108de57600080fd5b82518660208202830111640100000000821117156108fb57600080fd5b82525081516020918201928201910280838360005b83811015610928578181015183820152602001610910565b50505050905001604052505050905090565b600082610949575060006105ab565b8282028284828161095657fe5b04146108205760405162461bcd60e51b8152600401808060200182810382526021815260200180610ec46021913960400191505060405180910390fd5b60008082116109e9576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816109f457fe5b04949350505050565b6033546000906001600160a01b0316610a5d576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015610aa957600080fd5b505afa158015610abd573d6000803e3d6000fd5b505050506040513d6020811015610ad357600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561061957600080fd5b6060600080600080600080610b346035546109fd565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b158015610b8957600080fd5b505afa158015610b9d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610bc657600080fd5b8101908080516040519392919084640100000000821115610be657600080fd5b908301906020820185811115610bfb57600080fd5b8251640100000000811182820188101715610c1557600080fd5b82525081516020918201929091019080838360005b83811015610c42578181015183820152602001610c2a565b50505050905090810190601f168015610c6f5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107c1908490610d11826001600160a01b0316610ebd565b610d62576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310610da05780518252601f199092019160209182019101610d81565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610e02576040519150601f19603f3d011682016040523d82523d6000602084013e610e07565b606091505b509150915081610e5e576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610eb757808060200190516020811015610e7a57600080fd5b5051610eb75760405162461bcd60e51b815260040180806020018281038252602a815260200180610ee5602a913960400191505060405180910390fd5b50505050565b3b15159056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646275726e657220636f6e7472616374206973206e6f74207468652073656e646572a265627a7a723158206ec0f86f60c8fde3425ba7555d2475650a941fcc320a85d41e84cf042977221664736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var HolderBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d3966035553480156200007a57600080fd5b50604051620013233803806200132383398181016040526080811015620000a057600080fd5b5080516020820151604083015160609093015191929091620000cb836001600160e01b036200011d16565b620000df816001600160e01b03620001fd16565b620000f3826001600160e01b03620002bc16565b5050603680546001600160a01b0319166001600160a01b0393909316929092179091555062000381565b600054610100900460ff1680620001425750620001426001600160e01b036200037b16565b8062000151575060005460ff16155b6200018e5760405162461bcd60e51b815260040180806020018281038252602e815260200180620012f5602e913960400191505060405180910390fd5b600054610100900460ff16158015620001ba576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821615620001e657603380546001600160a01b0319166001600160a01b0384161790555b8015620001f9576000805461ff00191690555b5050565b600054610100900460ff1680620002225750620002226001600160e01b036200037b16565b8062000231575060005460ff16155b6200026e5760405162461bcd60e51b815260040180806020018281038252602e815260200180620012f5602e913960400191505060405180910390fd5b600054610100900460ff161580156200029a576000805460ff1961ff0019909116610100171660011790555b8115620001e65760348290558015620001f9576000805461ff00191690555050565b600054610100900460ff1680620002e15750620002e16001600160e01b036200037b16565b80620002f0575060005460ff16155b6200032d5760405162461bcd60e51b815260040180806020018281038252602e815260200180620012f5602e913960400191505060405180910390fd5b600054610100900460ff1615801562000359576000805460ff1961ff0019909116610100171660011790555b8115620001e65760358290558015620001f9576000805461ff00191690555050565b303b1590565b610f6480620003916000396000f3fe6080604052600436106100555760003560e01c806327810b6e1461009157806340f6a70f146100c25780637d73b23114610163578063877337b0146101785780639dc29fac1461019f578063e2b4ce97146101d8575b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b34801561009d57600080fd5b506100a66101ed565b604080516001600160a01b039092168252519081900360200190f35b3480156100ce57600080fd5b5061014f600480360360408110156100e557600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561011057600080fd5b82018360208201111561012257600080fd5b8035906020019184602083028401116401000000008311171561014457600080fd5b5090925090506101fc565b604080519115158252519081900360200190f35b34801561016f57600080fd5b506100a661039e565b34801561018457600080fd5b5061018d6103ad565b60408051918252519081900360200190f35b3480156101ab57600080fd5b5061014f600480360360408110156101c257600080fd5b506001600160a01b0381351690602001356103b3565b3480156101e457600080fd5b5061018d6105b1565b6036546001600160a01b031690565b6000610207336105b7565b610251576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b60005b828110156103935761028084848381811061026b57fe5b905060200201356001600160a01b031661064d565b156102d2576040805162461bcd60e51b815260206004820152601d60248201527f72656465656d61626c65732063616e6e6f7420626520636c61696d6564000000604482015290519081900360640190fd5b60006102f88585848181106102e357fe5b905060200201356001600160a01b0316610666565b9050801561038a576103268686868581811061031057fe5b905060200201356001600160a01b0316836106f7565b7ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838686868581811061035457fe5b604080516001600160a01b0395861681526020928302949094013594909416908301525080820184905290519081900360600190a15b50600101610254565b506001949350505050565b6033546001600160a01b031690565b60355490565b6036546000906001600160a01b031633146103ff5760405162461bcd60e51b8152600401808060200182810382526021815260200180610f0f6021913960400191505060405180910390fd5b8161040c575060016105ab565b600061049883603660009054906101000a90046001600160a01b03166001600160a01b031663771282f66040518163ffffffff1660e01b815260040160206040518083038186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d602081101561048a57600080fd5b50519063ffffffff6107c616565b905060606104a4610827565b905060005b81518110156105a35760006104d08383815181106104c357fe5b6020026020010151610666565b9050801561059a5760006104fa856104ee848a63ffffffff61093a16565b9063ffffffff61099316565b905061051a8885858151811061050c57fe5b6020026020010151836106f7565b7f43e074e3351faae8657cc314cf10440a8e7a87ce5092ee4bf9baf56f73fe6c568885858151811061054857fe5b60200260200101518360405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a1505b506001016104a9565b506001925050505b92915050565b60345490565b60006105c46034546109fd565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d602081101561064357600080fd5b505190505b919050565b60008061065983610b1e565b5098975050505050505050565b60006001600160a01b038216156106f057604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106bd57600080fd5b505afa1580156106d1573d6000803e3d6000fd5b505050506040513d60208110156106e757600080fd5b50519050610648565b5047610648565b6001600160a01b0382166107a7576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114610750576040519150601f19603f3d011682016040523d82523d6000602084013e610755565b606091505b50509050806107a1576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506107c1565b6107c16001600160a01b038316848363ffffffff610cb216565b505050565b600082820183811015610820576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60606108346035546109fd565b6001600160a01b03166344b049bc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561086c57600080fd5b505afa158015610880573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156108a957600080fd5b81019080805160405193929190846401000000008211156108c957600080fd5b9083019060208201858111156108de57600080fd5b82518660208202830111640100000000821117156108fb57600080fd5b82525081516020918201928201910280838360005b83811015610928578181015183820152602001610910565b50505050905001604052505050905090565b600082610949575060006105ab565b8282028284828161095657fe5b04146108205760405162461bcd60e51b8152600401808060200182810382526021815260200180610ec46021913960400191505060405180910390fd5b60008082116109e9576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816109f457fe5b04949350505050565b6033546000906001600160a01b0316610a5d576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015610aa957600080fd5b505afa158015610abd573d6000803e3d6000fd5b505050506040513d6020811015610ad357600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561061957600080fd5b6060600080600080600080610b346035546109fd565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b158015610b8957600080fd5b505afa158015610b9d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610bc657600080fd5b8101908080516040519392919084640100000000821115610be657600080fd5b908301906020820185811115610bfb57600080fd5b8251640100000000811182820188101715610c1557600080fd5b82525081516020918201929091019080838360005b83811015610c42578181015183820152602001610c2a565b50505050905090810190601f168015610c6f5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107c1908490610d11826001600160a01b0316610ebd565b610d62576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310610da05780518252601f199092019160209182019101610d81565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610e02576040519150601f19603f3d011682016040523d82523d6000602084013e610e07565b606091505b509150915081610e5e576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610eb757808060200190516020811015610e7a57600080fd5b5051610eb75760405162461bcd60e51b815260040180806020018281038252602a815260200180610ee5602a913960400191505060405180910390fd5b50505050565b3b15159056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646275726e657220636f6e7472616374206973206e6f74207468652073656e646572a265627a7a7231582085a39a71165d6f9d9c41c2f40759f4d21cb8f572d9d499f4fc637fb8d4f5754364736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployHolder deploys a new Ethereum contract, binding an instance of Holder to it. func DeployHolder(auth *bind.TransactOpts, backend bind.ContractBackend, _burnerContract_ common.Address, _ens_ common.Address, _tokenWhitelistNode_ [32]byte, _controllerNode_ [32]byte) (common.Address, *types.Transaction, *Holder, error) { diff --git a/pkg/bindings/licence.go b/pkg/bindings/licence.go index f95f8f98..e43b4482 100644 --- a/pkg/bindings/licence.go +++ b/pkg/bindings/licence.go @@ -31,7 +31,7 @@ var ( const LicenceABI = "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_licence_\",\"type\":\"uint256\"},{\"internalType\":\"addresspayable\",\"name\":\"_float_\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"_holder_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tknAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TransferredToCryptoFloat\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TransferredToTokenHolder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFloat\",\"type\":\"address\"}],\"name\":\"UpdatedCryptoFloat\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"UpdatedLicenceAmount\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newDAO\",\"type\":\"address\"}],\"name\":\"UpdatedLicenceDAO\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newTKN\",\"type\":\"address\"}],\"name\":\"UpdatedTKNContractAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newHolder\",\"type\":\"address\"}],\"name\":\"UpdatedTokenHolder\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_AMOUNT_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_AMOUNT_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cryptoFloat\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"floatLocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"holderLocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"licenceAmountScaled\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"licenceDAO\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"licenceDAOLocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"load\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"lockFloat\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"lockHolder\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"lockLicenceDAO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"lockTKNContractAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tknContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tknContractAddressLocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenHolder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_newFloat\",\"type\":\"address\"}],\"name\":\"updateFloat\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_newHolder\",\"type\":\"address\"}],\"name\":\"updateHolder\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"updateLicenceAmount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newDAO\",\"type\":\"address\"}],\"name\":\"updateLicenceDAO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newTKN\",\"type\":\"address\"}],\"name\":\"updateTKNContractAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" // LicenceBin is the compiled bytecode used for deploying new contracts. -var LicenceBin = "0x60806040527f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d5893697603455603580546001600160a01b03191673aaaf91d9b90df800df4f55c205fd6989c977e73a1790553480156200005b57600080fd5b506040516200187a3803806200187a833981810160405260c08110156200008157600080fd5b508051602082015160408301516060840151608085015160a090950151939492939192909160018610801590620000ba57506103e88611155b6200010c576040805162461bcd60e51b815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b62000120826001600160e01b036200019716565b62000134816001600160e01b03620002b016565b6039869055603680546001600160a01b038088166001600160a01b0319928316179092556037805487841692169190911790558316156200018b57603580546001600160a01b0319166001600160a01b0385161790555b50505050505062000376565b600054610100900460ff1680620001bc5750620001bc6001600160e01b036200037016565b80620001cb575060005460ff16155b620002085760405162461bcd60e51b815260040180806020018281038252602e8152602001806200184c602e913960400191505060405180910390fd5b600054610100900460ff1615801562000234576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166200027e576040805162461bcd60e51b815260206004820152600b60248201526a0656e7352656720697320360ac1b604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b0384161790558015620002ac576000805461ff00191690555b5050565b600054610100900460ff1680620002d55750620002d56001600160e01b036200037016565b80620002e4575060005460ff16155b620003215760405162461bcd60e51b815260040180806020018281038252602e8152602001806200184c602e913960400191505060405180910390fd5b600054610100900460ff161580156200034d576000805460ff1961ff0019909116610100171660011790555b81156200035a5760348290555b8015620002ac576000805461ff00191690555050565b303b1590565b6114c680620003866000396000f3fe60806040526004361061014b5760003560e01c8063996cba68116100b6578063d0cddd671161006f578063d0cddd671461039f578063d1696b16146103d2578063e2b4ce97146103e7578063e30c5fa8146103fc578063e3d8024214610411578063f15ff455146104445761014b565b8063996cba68146102f357806399a5e1d014610336578063a036ba601461034b578063ac904c6314610360578063ca0e2e2014610375578063d08b4ecc1461038a5761014b565b806342719faa1161010857806342719faa1461022e5780634ac22b3c1461026157806368ce74e7146102765780637d73b231146102a0578063837c70ef146102b5578063940b9c3b146102de5761014b565b80630bf25c911461014d5780630d42e82f146101625780631b3c96b4146101955780633a7afe02146101c15780633acec15f146101f2578063420a83e714610219575b005b34801561015957600080fd5b5061014b610459565b34801561016e57600080fd5b5061014b6004803603602081101561018557600080fd5b50356001600160a01b03166104b6565b61014b600480360360408110156101ab57600080fd5b506001600160a01b03813516906020013561059c565b3480156101cd57600080fd5b506101d66107ec565b604080516001600160a01b039092168252519081900360200190f35b3480156101fe57600080fd5b506102076107fb565b60408051918252519081900360200190f35b34801561022557600080fd5b506101d6610800565b34801561023a57600080fd5b5061014b6004803603602081101561025157600080fd5b50356001600160a01b031661080f565b34801561026d57600080fd5b5061014b610905565b34801561028257600080fd5b5061014b6004803603602081101561029957600080fd5b5035610962565b3480156102ac57600080fd5b506101d6610a60565b3480156102c157600080fd5b506102ca610a6f565b604080519115158252519081900360200190f35b3480156102ea57600080fd5b506102ca610a7f565b3480156102ff57600080fd5b5061014b6004803603606081101561031657600080fd5b506001600160a01b03813581169160208101359091169060400135610a8f565b34801561034257600080fd5b506101d6610b31565b34801561035757600080fd5b506101d6610b40565b34801561036c57600080fd5b50610207610b4f565b34801561038157600080fd5b50610207610b55565b34801561039657600080fd5b5061014b610b5b565b3480156103ab57600080fd5b5061014b600480360360208110156103c257600080fd5b50356001600160a01b0316610bb8565b3480156103de57600080fd5b5061014b610ca0565b3480156103f357600080fd5b50610207610cfd565b34801561040857600080fd5b506102ca610d03565b34801561041d57600080fd5b5061014b6004803603602081101561043457600080fd5b50356001600160a01b0316610d13565b34801561045057600080fd5b506102ca610df9565b61046233610e09565b6104a1576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60b81b1916600160b81b179055565b6104bf33610e09565b6104fe576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610506610a6f565b15610548576040805162461bcd60e51b815260206004820152600d60248201526c1512d3881a5cc81b1bd8dad959609a1b604482015290519081900360640190fd5b603580546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f2aeed92123e61fe64748a447c2ba122c4bfc0201d1ed5149e9ce9ede5adda5459181900360200190a150565b60355481906001600160a01b03848116911614156105db576036546105d6906001600160a01b03858116913391168463ffffffff610e9d16565b610794565b6106066103e8603954016105fa6103e885610efd90919063ffffffff16565b9063ffffffff610f5f16565b9050600061061a838363ffffffff610fc916565b90506001600160a01b038416156106745760375461064d906001600160a01b03868116913391168463ffffffff610e9d16565b60365461066f906001600160a01b03868116913391168563ffffffff610e9d16565b61073f565b8234146106c8576040805162461bcd60e51b815260206004820152601f60248201527f4554482073656e74206973206e6f7420657175616c20746f20616d6f756e7400604482015290519081900360640190fd5b6037546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610702573d6000803e3d6000fd5b506036546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561073d573d6000803e3d6000fd5b505b603754604080513381526001600160a01b0392831660208201529186168282015260608201839052517fdd9dfad7b30d6b224e235f89565871419d3dec3b563a4e231f12d2cc97f9acfc9181900360800190a1505b603654604080513381526001600160a01b0392831660208201529185168282015260608201839052517fc8a7b0bd71097b47b2cad75e4e939d2aeb7fae88110e68f93b83fed08e9d3c389181900360800190a1505050565b6038546001600160a01b031690565b600181565b6037546001600160a01b031690565b61081833610e09565b610857576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b61085f610df9565b156108b1576040805162461bcd60e51b815260206004820152601960248201527f686f6c64657220636f6e7472616374206973206c6f636b656400000000000000604482015290519081900360640190fd5b603780546001600160a01b0383166001600160a01b0319909116811790915560408051918252517ffa6bae0f250db86534a013b1c7a6c4076aa8f8d1ac248771a1c73f4ba366922a9181900360200190a150565b61090e33610e09565b61094d576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60b01b1916600160b01b179055565b6038546001600160a01b031633146109c1576040805162461bcd60e51b815260206004820152601860248201527f7468652073656e6465722069736e2774207468652044414f0000000000000000604482015290519081900360640190fd5b806001111580156109d457506103e88111155b610a25576040805162461bcd60e51b815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b60398190556040805182815290517f587b6068be8c555e2cddc6ad8a56df5e8dfb1533cc063d6703f79c791de151489181900360200190a150565b6033546001600160a01b031690565b603854600160b81b900460ff1690565b603854600160a01b900460ff1690565b610a9833610e09565b610ad7576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610ae2838383611026565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6035546001600160a01b031690565b6036546001600160a01b031690565b60395490565b6103e881565b610b6433610e09565b610ba3576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60a01b1916600160a01b179055565b610bc133610e09565b610c00576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610c08610a7f565b15610c4c576040805162461bcd60e51b815260206004820152600f60248201526e199b1bd85d081a5cc81b1bd8dad959608a1b604482015290519081900360640190fd5b603680546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f9af2841b0db134bda87280e2a9cababb156f95023c87023d708a677d61b4b6d89181900360200190a150565b610ca933610e09565b610ce8576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60a81b1916600160a81b179055565b60345490565b603854600160b01b900460ff1690565b610d1c33610e09565b610d5b576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610d63610d03565b15610da5576040805162461bcd60e51b815260206004820152600d60248201526c111053c81a5cc81b1bd8dad959609a1b604482015290519081900360640190fd5b603880546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fd32c17b277c7e87842861153d758814a267634f4308ec2461f88756df7dd70689181900360200190a150565b603854600160a81b900460ff1690565b6000610e166034546110f5565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610e6b57600080fd5b505afa158015610e7f573d6000803e3d6000fd5b505050506040513d6020811015610e9557600080fd5b505192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ef7908590611216565b50505050565b600082610f0c57506000610f59565b82820282848281610f1957fe5b0414610f565760405162461bcd60e51b81526004018080602001828103825260218152602001806114476021913960400191505060405180910390fd5b90505b92915050565b6000808211610fb5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610fc057fe5b04949350505050565b600082821115611020576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0382166110d6576040516000906001600160a01b0385169083908381818185875af1925050503d806000811461107f576040519150601f19603f3d011682016040523d82523d6000602084013e611084565b606091505b50509050806110d0576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506110f0565b6110f06001600160a01b038316848363ffffffff6113ce16565b505050565b6033546000906001600160a01b0316611155576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156111a157600080fd5b505afa1580156111b5573d6000803e3d6000fd5b505050506040513d60208110156111cb57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015610e6b57600080fd5b611228826001600160a01b0316611420565b611279576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106112b75780518252601f199092019160209182019101611298565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611319576040519150601f19603f3d011682016040523d82523d6000602084013e61131e565b606091505b509150915081611375576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610ef75780806020019051602081101561139157600080fd5b5051610ef75760405162461bcd60e51b815260040180806020018281038252602a815260200180611468602a913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526110f0908490611216565b3b15159056fe73656e646572206973206e6f7420616e2061646d696e00000000000000000000536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582041809323803bb136fba012f77cb6ad70504114dc91f1ba71c7d4fac6a5ae453564736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var LicenceBin = "0x6080604052603380546001600160a01b03199081166e0c2e074ec69a0dfb2997ba6c7d2e1e179091557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034556035805490911673aaaf91d9b90df800df4f55c205fd6989c977e73a1790553480156200007857600080fd5b506040516200185d3803806200185d833981810160405260c08110156200009e57600080fd5b508051602082015160408301516060840151608085015160a090950151939492939192909160018610801590620000d757506103e88611155b62000129576040805162461bcd60e51b815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b6200013d826001600160e01b03620001b416565b62000151816001600160e01b036200029416565b6039869055603680546001600160a01b038088166001600160a01b031992831617909255603780548784169216919091179055831615620001a857603580546001600160a01b0319166001600160a01b0385161790555b50505050505062000359565b600054610100900460ff1680620001d95750620001d96001600160e01b036200035316565b80620001e8575060005460ff16155b620002255760405162461bcd60e51b815260040180806020018281038252602e8152602001806200182f602e913960400191505060405180910390fd5b600054610100900460ff1615801562000251576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200027d57603380546001600160a01b0319166001600160a01b0384161790555b801562000290576000805461ff00191690555b5050565b600054610100900460ff1680620002b95750620002b96001600160e01b036200035316565b80620002c8575060005460ff16155b620003055760405162461bcd60e51b815260040180806020018281038252602e8152602001806200182f602e913960400191505060405180910390fd5b600054610100900460ff1615801562000331576000805460ff1961ff0019909116610100171660011790555b81156200027d576034829055801562000290576000805461ff00191690555050565b303b1590565b6114c680620003696000396000f3fe60806040526004361061014b5760003560e01c8063996cba68116100b6578063d0cddd671161006f578063d0cddd671461039f578063d1696b16146103d2578063e2b4ce97146103e7578063e30c5fa8146103fc578063e3d8024214610411578063f15ff455146104445761014b565b8063996cba68146102f357806399a5e1d014610336578063a036ba601461034b578063ac904c6314610360578063ca0e2e2014610375578063d08b4ecc1461038a5761014b565b806342719faa1161010857806342719faa1461022e5780634ac22b3c1461026157806368ce74e7146102765780637d73b231146102a0578063837c70ef146102b5578063940b9c3b146102de5761014b565b80630bf25c911461014d5780630d42e82f146101625780631b3c96b4146101955780633a7afe02146101c15780633acec15f146101f2578063420a83e714610219575b005b34801561015957600080fd5b5061014b610459565b34801561016e57600080fd5b5061014b6004803603602081101561018557600080fd5b50356001600160a01b03166104b6565b61014b600480360360408110156101ab57600080fd5b506001600160a01b03813516906020013561059c565b3480156101cd57600080fd5b506101d66107ec565b604080516001600160a01b039092168252519081900360200190f35b3480156101fe57600080fd5b506102076107fb565b60408051918252519081900360200190f35b34801561022557600080fd5b506101d6610800565b34801561023a57600080fd5b5061014b6004803603602081101561025157600080fd5b50356001600160a01b031661080f565b34801561026d57600080fd5b5061014b610905565b34801561028257600080fd5b5061014b6004803603602081101561029957600080fd5b5035610962565b3480156102ac57600080fd5b506101d6610a60565b3480156102c157600080fd5b506102ca610a6f565b604080519115158252519081900360200190f35b3480156102ea57600080fd5b506102ca610a7f565b3480156102ff57600080fd5b5061014b6004803603606081101561031657600080fd5b506001600160a01b03813581169160208101359091169060400135610a8f565b34801561034257600080fd5b506101d6610b31565b34801561035757600080fd5b506101d6610b40565b34801561036c57600080fd5b50610207610b4f565b34801561038157600080fd5b50610207610b55565b34801561039657600080fd5b5061014b610b5b565b3480156103ab57600080fd5b5061014b600480360360208110156103c257600080fd5b50356001600160a01b0316610bb8565b3480156103de57600080fd5b5061014b610ca0565b3480156103f357600080fd5b50610207610cfd565b34801561040857600080fd5b506102ca610d03565b34801561041d57600080fd5b5061014b6004803603602081101561043457600080fd5b50356001600160a01b0316610d13565b34801561045057600080fd5b506102ca610df9565b61046233610e09565b6104a1576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60b81b1916600160b81b179055565b6104bf33610e09565b6104fe576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610506610a6f565b15610548576040805162461bcd60e51b815260206004820152600d60248201526c1512d3881a5cc81b1bd8dad959609a1b604482015290519081900360640190fd5b603580546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f2aeed92123e61fe64748a447c2ba122c4bfc0201d1ed5149e9ce9ede5adda5459181900360200190a150565b60355481906001600160a01b03848116911614156105db576036546105d6906001600160a01b03858116913391168463ffffffff610e9d16565b610794565b6106066103e8603954016105fa6103e885610efd90919063ffffffff16565b9063ffffffff610f5f16565b9050600061061a838363ffffffff610fc916565b90506001600160a01b038416156106745760375461064d906001600160a01b03868116913391168463ffffffff610e9d16565b60365461066f906001600160a01b03868116913391168563ffffffff610e9d16565b61073f565b8234146106c8576040805162461bcd60e51b815260206004820152601f60248201527f4554482073656e74206973206e6f7420657175616c20746f20616d6f756e7400604482015290519081900360640190fd5b6037546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610702573d6000803e3d6000fd5b506036546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561073d573d6000803e3d6000fd5b505b603754604080513381526001600160a01b0392831660208201529186168282015260608201839052517fdd9dfad7b30d6b224e235f89565871419d3dec3b563a4e231f12d2cc97f9acfc9181900360800190a1505b603654604080513381526001600160a01b0392831660208201529185168282015260608201839052517fc8a7b0bd71097b47b2cad75e4e939d2aeb7fae88110e68f93b83fed08e9d3c389181900360800190a1505050565b6038546001600160a01b031690565b600181565b6037546001600160a01b031690565b61081833610e09565b610857576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b61085f610df9565b156108b1576040805162461bcd60e51b815260206004820152601960248201527f686f6c64657220636f6e7472616374206973206c6f636b656400000000000000604482015290519081900360640190fd5b603780546001600160a01b0383166001600160a01b0319909116811790915560408051918252517ffa6bae0f250db86534a013b1c7a6c4076aa8f8d1ac248771a1c73f4ba366922a9181900360200190a150565b61090e33610e09565b61094d576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60b01b1916600160b01b179055565b6038546001600160a01b031633146109c1576040805162461bcd60e51b815260206004820152601860248201527f7468652073656e6465722069736e2774207468652044414f0000000000000000604482015290519081900360640190fd5b806001111580156109d457506103e88111155b610a25576040805162461bcd60e51b815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b60398190556040805182815290517f587b6068be8c555e2cddc6ad8a56df5e8dfb1533cc063d6703f79c791de151489181900360200190a150565b6033546001600160a01b031690565b603854600160b81b900460ff1690565b603854600160a01b900460ff1690565b610a9833610e09565b610ad7576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610ae2838383611026565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6035546001600160a01b031690565b6036546001600160a01b031690565b60395490565b6103e881565b610b6433610e09565b610ba3576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60a01b1916600160a01b179055565b610bc133610e09565b610c00576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610c08610a7f565b15610c4c576040805162461bcd60e51b815260206004820152600f60248201526e199b1bd85d081a5cc81b1bd8dad959608a1b604482015290519081900360640190fd5b603680546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f9af2841b0db134bda87280e2a9cababb156f95023c87023d708a677d61b4b6d89181900360200190a150565b610ca933610e09565b610ce8576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60a81b1916600160a81b179055565b60345490565b603854600160b01b900460ff1690565b610d1c33610e09565b610d5b576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610d63610d03565b15610da5576040805162461bcd60e51b815260206004820152600d60248201526c111053c81a5cc81b1bd8dad959609a1b604482015290519081900360640190fd5b603880546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fd32c17b277c7e87842861153d758814a267634f4308ec2461f88756df7dd70689181900360200190a150565b603854600160a81b900460ff1690565b6000610e166034546110f5565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610e6b57600080fd5b505afa158015610e7f573d6000803e3d6000fd5b505050506040513d6020811015610e9557600080fd5b505192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ef7908590611216565b50505050565b600082610f0c57506000610f59565b82820282848281610f1957fe5b0414610f565760405162461bcd60e51b81526004018080602001828103825260218152602001806114476021913960400191505060405180910390fd5b90505b92915050565b6000808211610fb5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610fc057fe5b04949350505050565b600082821115611020576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0382166110d6576040516000906001600160a01b0385169083908381818185875af1925050503d806000811461107f576040519150601f19603f3d011682016040523d82523d6000602084013e611084565b606091505b50509050806110d0576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506110f0565b6110f06001600160a01b038316848363ffffffff6113ce16565b505050565b6033546000906001600160a01b0316611155576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156111a157600080fd5b505afa1580156111b5573d6000803e3d6000fd5b505050506040513d60208110156111cb57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015610e6b57600080fd5b611228826001600160a01b0316611420565b611279576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106112b75780518252601f199092019160209182019101611298565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611319576040519150601f19603f3d011682016040523d82523d6000602084013e61131e565b606091505b509150915081611375576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610ef75780806020019051602081101561139157600080fd5b5051610ef75760405162461bcd60e51b815260040180806020018281038252602a815260200180611468602a913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526110f0908490611216565b3b15159056fe73656e646572206973206e6f7420616e2061646d696e00000000000000000000536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72315820ffd4bd2f367caa8d1d1fb4488494ef933ba8368a84f2000c404a6b0acb3ac6ea64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployLicence deploys a new Ethereum contract, binding an instance of Licence to it. func DeployLicence(auth *bind.TransactOpts, backend bind.ContractBackend, _licence_ *big.Int, _float_ common.Address, _holder_ common.Address, _tknAddress_ common.Address, _ens_ common.Address, _controllerNode_ [32]byte) (common.Address, *types.Transaction, *Licence, error) { diff --git a/pkg/bindings/mocks/isValidSignatureExporter.go b/pkg/bindings/mocks/isValidSignatureExporter.go index d6d2e709..b6d8b274 100644 --- a/pkg/bindings/mocks/isValidSignatureExporter.go +++ b/pkg/bindings/mocks/isValidSignatureExporter.go @@ -31,7 +31,7 @@ var ( const IsValidSignatureExporterABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" // IsValidSignatureExporterBin is the compiled bytecode used for deploying new contracts. -var IsValidSignatureExporterBin = "0x608060405234801561001057600080fd5b506040516102833803806102838339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561021e806100656000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806320c13b0b14610030575b600080fd5b6100f26004803603604081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9193909290916020810190356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460018302840111640100000000831117156100e757600080fd5b50909250905061010f565b604080516001600160e01b03199092168252519081900360200190f35b60008054604080516320c13b0b60e01b815260048101918252604481018790526001600160a01b03909216916320c13b0b9188918891889188919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f820116905080830192505050965050505050505060206040518083038186803b1580156101b457600080fd5b505afa1580156101c8573d6000803e3d6000fd5b505050506040513d60208110156101de57600080fd5b50519594505050505056fea265627a7a7231582043eaed63904a030c007ff04c970b8c148e0b158c9b24e82d49b83dbfb6fa45ef64736f6c63430005110032" +var IsValidSignatureExporterBin = "0x608060405234801561001057600080fd5b506040516102833803806102838339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561021e806100656000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806320c13b0b14610030575b600080fd5b6100f26004803603604081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9193909290916020810190356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460018302840111640100000000831117156100e757600080fd5b50909250905061010f565b604080516001600160e01b03199092168252519081900360200190f35b60008054604080516320c13b0b60e01b815260048101918252604481018790526001600160a01b03909216916320c13b0b9188918891889188919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f820116905080830192505050965050505050505060206040518083038186803b1580156101b457600080fd5b505afa1580156101c8573d6000803e3d6000fd5b505050506040513d60208110156101de57600080fd5b50519594505050505056fea265627a7a72315820ca6d31d5102e3310ae85e6c085210baac3a4064e0532be7bb513c35e5841144964736f6c63430005110032" // DeployIsValidSignatureExporter deploys a new Ethereum contract, binding an instance of IsValidSignatureExporter to it. func DeployIsValidSignatureExporter(auth *bind.TransactOpts, backend bind.ContractBackend, _wallet common.Address) (common.Address, *types.Transaction, *IsValidSignatureExporter, error) { diff --git a/pkg/bindings/mocks/tokenWhitelistableExporter.go b/pkg/bindings/mocks/tokenWhitelistableExporter.go index cc53afb2..d1c45f65 100644 --- a/pkg/bindings/mocks/tokenWhitelistableExporter.go +++ b/pkg/bindings/mocks/tokenWhitelistableExporter.go @@ -31,7 +31,7 @@ var ( const TokenWhitelistableExporterABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tokenWhitelistNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"getERC20RecipientAndAmount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getStablecoinInfo\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"getTokenInfo\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"isTokenAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"isTokenLoadable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"isTokenRedeemable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemableTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_rate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_updateDate\",\"type\":\"uint256\"}],\"name\":\"updateTokenRate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" // TokenWhitelistableExporterBin is the compiled bytecode used for deploying new contracts. -var TokenWhitelistableExporterBin = "0x60806040523480156200001157600080fd5b5060405162000ed138038062000ed1833981810160405260408110156200003757600080fd5b50805160209091015162000054826001600160e01b036200007016565b62000068816001600160e01b036200018916565b505062000247565b600054610100900460ff1680620000955750620000956001600160e01b036200024116565b80620000a4575060005460ff16155b620000e15760405162461bcd60e51b815260040180806020018281038252602e81526020018062000ea3602e913960400191505060405180910390fd5b600054610100900460ff161580156200010d576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821662000157576040805162461bcd60e51b815260206004820152600b60248201526a0656e7352656720697320360ac1b604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b038416179055801562000185576000805461ff00191690555b5050565b600054610100900460ff1680620001ae5750620001ae6001600160e01b036200024116565b80620001bd575060005460ff16155b620001fa5760405162461bcd60e51b815260040180806020018281038252602e81526020018062000ea3602e913960400191505060405180910390fd5b600054610100900460ff1615801562000226576000805460ff1961ff0019909116610100171660011790555b6034829055801562000185576000805461ff00191690555050565b303b1590565b610c4c80620002576000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806344b049bc1161007157806344b049bc1461023e5780637d73b23114610246578063877337b01461026a578063afc72e9314610284578063d545782e14610325578063dcc922bc14610359576100a9565b806317e73794146100ae5780631f69565f146100e85780632ff0fcaa146101b85780633efec5e9146101de578063443dd2a4146101e6575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b031661037f565b604080519115158252519081900360200190f35b61010e600480360360208110156100fe57600080fd5b50356001600160a01b0316610390565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561017757818101518382015260200161015f565b50505050905090810190601f1680156101a45780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b6100d4600480360360208110156101ce57600080fd5b50356001600160a01b03166103bb565b61010e6103c6565b6101ee6103ef565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022a578181015183820152602001610212565b505050509050019250505060405180910390f35b6101ee6103fe565b61024e610408565b604080516001600160a01b039092168252519081900360200190f35b610272610417565b60408051918252519081900360200190f35b6103026004803603604081101561029a57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156102c457600080fd5b8201836020820111156102d657600080fd5b803590602001918460018302840111600160201b831117156102f757600080fd5b50909250905061041d565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6103576004803603606081101561033b57600080fd5b506001600160a01b03813516906020810135906040013561046c565b005b6100d46004803603602081101561036f57600080fd5b50356001600160a01b031661047c565b600061038a82610487565b92915050565b60606000806000806000806103a4886104a1565b959e949d50929b5090995097509550909350915050565b600061038a82610633565b60606000806000806000806103d961064d565b959d949c50929a50909850965094509092509050565b60606103f96107bc565b905090565b60606103f96108cd565b6033546001600160a01b031690565b60345490565b6000806104608585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061091292505050565b91509150935093915050565b610477838383610a1c565b505050565b600061038a82610aab565b600080610493836104a1565b509098975050505050505050565b60606000806000806000806104b7603454610ac4565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b15801561050c57600080fd5b505afa158015610520573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561054957600080fd5b8101908080516040519392919084600160201b82111561056857600080fd5b90830190602082018581111561057d57600080fd5b8251600160201b81118282018810171561059657600080fd5b82525081516020918201929091019080838360005b838110156105c35781810151838201526020016105ab565b50505050905090810190601f1680156105f05780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b60008061063f836104a1565b509198975050505050505050565b6060600080600080600080610663603454610ac4565b6001600160a01b0316633efec5e96040518163ffffffff1660e01b815260040160006040518083038186803b15801561069b57600080fd5b505afa1580156106af573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156106d857600080fd5b8101908080516040519392919084600160201b8211156106f757600080fd5b90830190602082018581111561070c57600080fd5b8251600160201b81118282018810171561072557600080fd5b82525081516020918201929091019080838360005b8381101561075257818101518382015260200161073a565b50505050905090810190601f16801561077f5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979f939e50919c509a5098509096509294509192505050565b60606107c9603454610ac4565b6001600160a01b031663443dd2a46040518163ffffffff1660e01b815260040160006040518083038186803b15801561080157600080fd5b505afa158015610815573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561083e57600080fd5b8101908080516040519392919084600160201b82111561085d57600080fd5b90830190602082018581111561087257600080fd5b82518660208202830111600160201b8211171561088e57600080fd5b82525081516020918201928201910280838360005b838110156108bb5781810151838201526020016108a3565b50505050905001604052505050905090565b60606108da603454610ac4565b6001600160a01b03166344b049bc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561080157600080fd5b600080610920603454610ac4565b6001600160a01b031663afc72e9385856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561099457818101518382015260200161097c565b50505050905090810190601f1680156109c15780820380516001836020036101000a031916815260200191505b509350505050604080518083038186803b1580156109de57600080fd5b505afa1580156109f2573d6000803e3d6000fd5b505050506040513d6040811015610a0857600080fd5b508051602090910151909590945092505050565b610a27603454610ac4565b6001600160a01b031663d545782e8484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b158015610a8e57600080fd5b505af1158015610aa2573d6000803e3d6000fd5b50505050505050565b600080610ab7836104a1565b5098975050505050505050565b6033546000906001600160a01b0316610b24576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015610b7057600080fd5b505afa158015610b84573d6000803e3d6000fd5b505050506040513d6020811015610b9a57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015610be557600080fd5b505afa158015610bf9573d6000803e3d6000fd5b505050506040513d6020811015610c0f57600080fd5b50519291505056fea265627a7a72315820edb22c51899cb0ecc3dffbfc6b4b59947ef5eb857b381d61f1847f7801f15d6a64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var TokenWhitelistableExporterBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d3966034553480156200005657600080fd5b5060405162000ee438038062000ee4833981810160405260408110156200007c57600080fd5b50805160209091015162000099826001600160e01b03620000b516565b620000ad816001600160e01b036200019516565b50506200025a565b600054610100900460ff1680620000da5750620000da6001600160e01b036200025416565b80620000e9575060005460ff16155b620001265760405162461bcd60e51b815260040180806020018281038252602e81526020018062000eb6602e913960400191505060405180910390fd5b600054610100900460ff1615801562000152576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200017e57603380546001600160a01b0319166001600160a01b0384161790555b801562000191576000805461ff00191690555b5050565b600054610100900460ff1680620001ba5750620001ba6001600160e01b036200025416565b80620001c9575060005460ff16155b620002065760405162461bcd60e51b815260040180806020018281038252602e81526020018062000eb6602e913960400191505060405180910390fd5b600054610100900460ff1615801562000232576000805460ff1961ff0019909116610100171660011790555b81156200017e576034829055801562000191576000805461ff00191690555050565b303b1590565b610c4c806200026a6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806344b049bc1161007157806344b049bc1461023e5780637d73b23114610246578063877337b01461026a578063afc72e9314610284578063d545782e14610325578063dcc922bc14610359576100a9565b806317e73794146100ae5780631f69565f146100e85780632ff0fcaa146101b85780633efec5e9146101de578063443dd2a4146101e6575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b031661037f565b604080519115158252519081900360200190f35b61010e600480360360208110156100fe57600080fd5b50356001600160a01b0316610390565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561017757818101518382015260200161015f565b50505050905090810190601f1680156101a45780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b6100d4600480360360208110156101ce57600080fd5b50356001600160a01b03166103bb565b61010e6103c6565b6101ee6103ef565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022a578181015183820152602001610212565b505050509050019250505060405180910390f35b6101ee6103fe565b61024e610408565b604080516001600160a01b039092168252519081900360200190f35b610272610417565b60408051918252519081900360200190f35b6103026004803603604081101561029a57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156102c457600080fd5b8201836020820111156102d657600080fd5b803590602001918460018302840111600160201b831117156102f757600080fd5b50909250905061041d565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6103576004803603606081101561033b57600080fd5b506001600160a01b03813516906020810135906040013561046c565b005b6100d46004803603602081101561036f57600080fd5b50356001600160a01b031661047c565b600061038a82610487565b92915050565b60606000806000806000806103a4886104a1565b959e949d50929b5090995097509550909350915050565b600061038a82610633565b60606000806000806000806103d961064d565b959d949c50929a50909850965094509092509050565b60606103f96107bc565b905090565b60606103f96108cd565b6033546001600160a01b031690565b60345490565b6000806104608585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061091292505050565b91509150935093915050565b610477838383610a1c565b505050565b600061038a82610aab565b600080610493836104a1565b509098975050505050505050565b60606000806000806000806104b7603454610ac4565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b15801561050c57600080fd5b505afa158015610520573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561054957600080fd5b8101908080516040519392919084600160201b82111561056857600080fd5b90830190602082018581111561057d57600080fd5b8251600160201b81118282018810171561059657600080fd5b82525081516020918201929091019080838360005b838110156105c35781810151838201526020016105ab565b50505050905090810190601f1680156105f05780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b60008061063f836104a1565b509198975050505050505050565b6060600080600080600080610663603454610ac4565b6001600160a01b0316633efec5e96040518163ffffffff1660e01b815260040160006040518083038186803b15801561069b57600080fd5b505afa1580156106af573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156106d857600080fd5b8101908080516040519392919084600160201b8211156106f757600080fd5b90830190602082018581111561070c57600080fd5b8251600160201b81118282018810171561072557600080fd5b82525081516020918201929091019080838360005b8381101561075257818101518382015260200161073a565b50505050905090810190601f16801561077f5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979f939e50919c509a5098509096509294509192505050565b60606107c9603454610ac4565b6001600160a01b031663443dd2a46040518163ffffffff1660e01b815260040160006040518083038186803b15801561080157600080fd5b505afa158015610815573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561083e57600080fd5b8101908080516040519392919084600160201b82111561085d57600080fd5b90830190602082018581111561087257600080fd5b82518660208202830111600160201b8211171561088e57600080fd5b82525081516020918201928201910280838360005b838110156108bb5781810151838201526020016108a3565b50505050905001604052505050905090565b60606108da603454610ac4565b6001600160a01b03166344b049bc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561080157600080fd5b600080610920603454610ac4565b6001600160a01b031663afc72e9385856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561099457818101518382015260200161097c565b50505050905090810190601f1680156109c15780820380516001836020036101000a031916815260200191505b509350505050604080518083038186803b1580156109de57600080fd5b505afa1580156109f2573d6000803e3d6000fd5b505050506040513d6040811015610a0857600080fd5b508051602090910151909590945092505050565b610a27603454610ac4565b6001600160a01b031663d545782e8484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b158015610a8e57600080fd5b505af1158015610aa2573d6000803e3d6000fd5b50505050505050565b600080610ab7836104a1565b5098975050505050505050565b6033546000906001600160a01b0316610b24576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015610b7057600080fd5b505afa158015610b84573d6000803e3d6000fd5b505050506040513d6020811015610b9a57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015610be557600080fd5b505afa158015610bf9573d6000803e3d6000fd5b505050506040513d6020811015610c0f57600080fd5b50519291505056fea265627a7a723158206403f1137a0964273b8910caeded2f377fab235b7bdc05d69b389dbce47fedf864736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployTokenWhitelistableExporter deploys a new Ethereum contract, binding an instance of TokenWhitelistableExporter to it. func DeployTokenWhitelistableExporter(auth *bind.TransactOpts, backend bind.ContractBackend, _ens_ common.Address, _tokenWhitelistNode_ [32]byte) (common.Address, *types.Transaction, *TokenWhitelistableExporter, error) { diff --git a/pkg/bindings/oracle.go b/pkg/bindings/oracle.go index 4388b1a0..d086cf41 100644 --- a/pkg/bindings/oracle.go +++ b/pkg/bindings/oracle.go @@ -31,7 +31,7 @@ var ( const OracleABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_resolver_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_tokenWhitelistNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"FailedUpdateRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_queryID\",\"type\":\"bytes32\"}],\"name\":\"RequestedUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_publicKey\",\"type\":\"bytes\"}],\"name\":\"SetCryptoComparePublicKey\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_gasPrice\",\"type\":\"uint256\"}],\"name\":\"SetGasPrice\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_publicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_result\",\"type\":\"string\"}],\"name\":\"VerifiedProof\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryID\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"_result\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"__callback\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cryptoCompareAPIPublicKey\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasPrice\",\"type\":\"uint256\"}],\"name\":\"setCustomGasPrice\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_publicKey\",\"type\":\"bytes\"}],\"name\":\"updateCryptoCompareAPIPublicKey\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"updateTokenRates\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_tokenList\",\"type\":\"address[]\"}],\"name\":\"updateTokenRatesList\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"}]" // OracleBin is the compiled bytecode used for deploying new contracts. -var OracleBin = "0x60806040527f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976039553480156200003557600080fd5b50604051620056b2380380620056b2833981810160405260808110156200005b57600080fd5b508051602082015160408301516060909301519192909162000086836001600160e01b036200012c16565b6200009a826001600160e01b036200024516565b620000ae816001600160e01b036200030516565b60405180606001604052806040815260200162005672604091398051620000de91603b9160209091019062000bc9565b50603580546001600160a01b0319166001600160a01b0386161790556200010a6402540be400620003bd565b62000122600f60fc1b6001600160e01b03620005ae16565b5050505062000c6b565b600054610100900460ff1680620001515750620001516001600160e01b03620007a416565b8062000160575060005460ff16155b6200019d5760405162461bcd60e51b815260040180806020018281038252602e81526020018062005644602e913960400191505060405180910390fd5b600054610100900460ff16158015620001c9576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821662000213576040805162461bcd60e51b815260206004820152600b60248201526a0656e7352656720697320360ac1b604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b038416179055801562000241576000805461ff00191690555b5050565b600054610100900460ff16806200026a57506200026a6001600160e01b03620007a416565b8062000279575060005460ff16155b620002b65760405162461bcd60e51b815260040180806020018281038252602e81526020018062005644602e913960400191505060405180910390fd5b600054610100900460ff16158015620002e2576000805460ff1961ff0019909116610100171660011790555b8115620002ef5760398290555b801562000241576000805461ff00191690555050565b600054610100900460ff16806200032a57506200032a6001600160e01b03620007a416565b8062000339575060005460ff16155b620003765760405162461bcd60e51b815260040180806020018281038252602e81526020018062005644602e913960400191505060405180910390fd5b600054610100900460ff16158015620003a2576000805460ff1961ff0019909116610100171660011790555b603a829055801562000241576000805461ff00191690555050565b6035546001600160a01b03161580620003f35750603554620003f1906001600160a01b03166001600160e01b03620007ab16565b155b1562000410576200040e60006001600160e01b03620007af16565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200046157600080fd5b505af115801562000476573d6000803e3d6000fd5b505050506040513d60208110156200048d57600080fd5b50516034546001600160a01b039081169116146200054457603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015620004f657600080fd5b505af11580156200050b573d6000803e3d6000fd5b505050506040513d60208110156200052257600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163329ab47960e21b81526004810184905290516001600160a01b039092169163ca6ad1e49160248082019260009290919082900301818387803b1580156200059257600080fd5b505af1158015620005a7573d6000803e3d6000fd5b5050505050565b6035546001600160a01b03161580620005e45750603554620005e2906001600160a01b03166001600160e01b03620007ab16565b155b156200060157620005ff60006001600160e01b03620007af16565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200065257600080fd5b505af115801562000667573d6000803e3d6000fd5b505050506040513d60208110156200067e57600080fd5b50516034546001600160a01b039081169116146200073557603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015620006e757600080fd5b505af1158015620006fc573d6000803e3d6000fd5b505050506040513d60208110156200071357600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163688dcfd760e01b81527fff000000000000000000000000000000000000000000000000000000000000008416600482015290516001600160a01b039092169163688dcfd79160248082019260009290919082900301818387803b1580156200059257600080fd5b303b155b90565b3b90565b6000620007c46001600160e01b03620007ca16565b92915050565b600080620007f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed6001600160e01b03620007ab16565b11156200086157603580546001600160a01b031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81526a195d1a17db585a5b9b995d60aa1b602082015262000858906001600160e01b0362000bb916565b506001620007a8565b60006200088b73c03a2615d5efaf5f49f60b7bb6583eaec212fdf16001600160e01b03620007ab16565b1115620008ef57603580546001600160a01b03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81526b6574685f726f707374656e3360a01b602082015262000858906001600160e01b0362000bb916565b60006200091973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e6001600160e01b03620007ab16565b11156200097a57603580546001600160a01b03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981526832ba342fb5b7bb30b760b91b602082015262000858906001600160e01b0362000bb916565b6000620009a473146500cfd35b22e4a392fe0adc06de1a1368ed486001600160e01b03620007ab16565b111562000a0757603580546001600160a01b03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81526a6574685f72696e6b65627960a81b602082015262000858906001600160e01b0362000bb916565b600062000a3173a2998efd205fb9d4b4963afb70778d6354ad3a416001600160e01b03620007ab16565b111562000a9357603580546001600160a01b03191673a2998efd205fb9d4b4963afb70778d6354ad3a4117905560408051808201909152600a8152696574685f676f65726c6960b01b602082015262000858906001600160e01b0362000bb916565b600062000abd736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4756001600160e01b03620007ab16565b111562000af35750603580546001600160a01b031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001620007a8565b600062000b1d7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf6001600160e01b03620007ab16565b111562000b535750603580546001600160a01b0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001620007a8565b600062000b7d7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa6001600160e01b03620007ab16565b111562000bb35750603580546001600160a01b0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001620007a8565b50600090565b8051620002419060369060208401905b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000c0c57805160ff191683800117855562000c3c565b8280016001018555821562000c3c579182015b8281111562000c3c57825182559160200191906001019062000c1f565b5062000c4a92915062000c4e565b5090565b620007a891905b8082111562000c4a576000815560010162000c55565b6149c98062000c7b6000396000f3fe6080604052600436106100915760003560e01c8063996cba6811610059578063996cba681461032c578063b598f8821461036f578063c2c3d0541461038c578063ca6ad1e414610407578063e2b4ce971461043157610091565b806338bbfa50146100965780633acbe96e146101d55780637d73b2311461025f578063877337b014610290578063937f54a4146102b7575b600080fd5b3480156100a257600080fd5b506101d3600480360360608110156100b957600080fd5b81359190810190604081016020820135600160201b8111156100da57600080fd5b8201836020820111156100ec57600080fd5b803590602001918460018302840111600160201b8311171561010d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561015f57600080fd5b82018360208201111561017157600080fd5b803590602001918460018302840111600160201b8311171561019257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610446945050505050565b005b3480156101e157600080fd5b506101ea61061a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022457818101518382015260200161020c565b50505050905090810190601f1680156102515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026b57600080fd5b506102746106a8565b604080516001600160a01b039092168252519081900360200190f35b34801561029c57600080fd5b506102a56106b8565b60408051918252519081900360200190f35b6101d3600480360360408110156102cd57600080fd5b81359190810190604081016020820135600160201b8111156102ee57600080fd5b82018360208201111561030057600080fd5b803590602001918460208302840111600160201b8311171561032157600080fd5b5090925090506106be565b34801561033857600080fd5b506101d36004803603606081101561034f57600080fd5b506001600160a01b03813581169160208101359091169060400135610757565b6101d36004803603602081101561038557600080fd5b5035610804565b34801561039857600080fd5b506101d3600480360360208110156103af57600080fd5b810190602081018135600160201b8111156103c957600080fd5b8201836020820111156103db57600080fd5b803590602001918460018302840111600160201b831117156103fc57600080fd5b509092509050610867565b34801561041357600080fd5b506101d36004803603602081101561042a57600080fd5b5035610935565b34801561043d57600080fd5b506102a56109d3565b61044e6109d9565b6001600160a01b0316336001600160a01b0316146104ac576040805162461bcd60e51b815260206004820152601660248201527573656e646572206973206e6f74206f7261636c697a6560501b604482015290519081900360640190fd5b6000838152603c60205260408120546001600160a01b031690806104cf83610bc3565b96505050945050505081610524576040805162461bcd60e51b8152602060048201526017602482015276746f6b656e206d75737420626520617661696c61626c6560481b604482015290519081900360640190fd5b603b8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260009384936105c5938b938b93909290918301828280156105ba5780601f1061058f576101008083540402835291602001916105ba565b820191906000526020600020905b81548152906001019060200180831161059d57829003601f168201915b505050505086610d55565b909250905081156106105760006105e36105de89611287565b61152a565b60008a8152603c6020526040902080546001600160a01b031916905590508161060d87838361153d565b50505b5050505050505050565b603b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b6033546001600160a01b03165b90565b603a5490565b6106c7336115cc565b610715576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b6107528383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061166092505050565b505050565b61076033611982565b6107aa576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6107b58383836119e4565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b61080d336115cc565b61085b576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b61086481611aae565b50565b61087033611982565b6108ba576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6108c6603b838361473a565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa929091859185919060608201848480828437600083820152604051601f909101601f1916909201829003965090945050505050a15050565b61093e336115cc565b61098c576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b61099581611d5f565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60395490565b6035546000906001600160a01b03161580610a065750603554610a04906001600160a01b0316611f28565b155b15610a1757610a156000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a6757600080fd5b505af1158015610a7b573d6000803e3d6000fd5b505050506040513d6020811015610a9157600080fd5b50516034546001600160a01b03908116911614610b4457603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610af857600080fd5b505af1158015610b0c573d6000803e3d6000fd5b505050506040513d6020811015610b2257600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b603460009054906101000a90046001600160a01b03166001600160a01b031663c281d19e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9257600080fd5b505afa158015610ba6573d6000803e3d6000fd5b505050506040513d6020811015610bbc57600080fd5b5051905090565b6060600080600080600080610bd9603a54611f36565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610c6b57600080fd5b8101908080516040519392919084600160201b821115610c8a57600080fd5b908301906020820185811115610c9f57600080fd5b8251600160201b811182820188101715610cb857600080fd5b82525081516020918201929091019080838360005b83811015610ce5578181015183820152602001610ccd565b50505050905090810190601f168015610d125780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b60008060a5855114610da5576040805162461bcd60e51b81526020600482015260146024820152730d2dcecc2d8d2c840e0e4dedecc40d8cadccee8d60631b604482015290519081900360640190fd5b604185600181518110610db457fe5b016020015160f81c14610e0e576040805162461bcd60e51b815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252606091602082018180388339019050509050610e408660026041846000612057565b865190915060609087906044908110610e5557fe5b0160200151875160f89190911c906101009089906043908110610e7457fe5b016020015160f81c020114610ec9576040805162461bcd60e51b81526020600482015260166024820152750d2dcecc2d8d2c840d0cac2c8cae4e640d8cadccee8d60531b604482015290519081900360640190fd5b6040805160608082526080820190925281602082018180388339019050509050610ef98760456060846000612057565b9050610f068183886120a5565b610f4b576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b604080516014808252818301909252606091602082018180388339019050509050610f7c82600b6014846000612057565b9050600080610f8b8389612169565b909250905081610fd1576040805162461bcd60e51b815260206004820152600c60248201526b696e76616c6964206461746560a01b604482015290519081900360640190fd5b60408051602c8082526060828101909352602082018180388339019050509050611001856034602c846000612057565b905061100c816124ee565b8051906020012060028d6040516020018082805190602001908083835b602083106110485780518252601f199092019160209182019101611029565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106110ab5780518252601f19909201916020918201910161108c565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa1580156110ea573d6000803e3d6000fd5b5050506040513d60208110156110ff57600080fd5b505160408051602081810193909352815180820384018152908201909152805191012014611174576040805162461bcd60e51b815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156111d85781810151838201526020016111c0565b50505050905090810190601f1680156112055780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611238578181015183820152602001611220565b50505050905090810190601f1680156112655780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000826040516020018082805190602001908083835b602083106112be5780518252601f19909201916020918201910161129f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525190506008811180156113065750601c8111155b61134c576040805162461bcd60e51b81526020600482015260126024820152711b5a5cd99bdc9b585d1d1959081a5b9c1d5d60721b604482015290519081900360640190fd5b6040805160078082528183019092526060916020820181803883390190505090506113e3846040516020018082805190602001908083835b602083106113a35780518252601f199092019160209182019101611384565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007846000612057565b5060408051663d9122aa24111d60c91b81529051908190036007019020815160208301201461144b576040805162461bcd60e51b815260206004820152600f60248201526e0e0e4caccd2f040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b6114536147b8565b61145c85612b0b565b9050611490611483604051806040016040528060018152602001601d60f91b815250612b0b565b829063ffffffff612b3016565b50806000015192506114ca6114bd604051806040016040528060018152602001607d60f81b815250612b0b565b829063ffffffff612b4a16565b508051600019840114611516576040805162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a9cdbdb88199bdc9b585d608a1b604482015290519081900360640190fd5b61151f81612ba8565b93505050505b919050565b6000611537826012612bf8565b92915050565b611548603a54611f36565b6001600160a01b031663d545782e8484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156115af57600080fd5b505af11580156115c3573d6000803e3d6000fd5b50505050505050565b60006115d9603954611f36565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561162e57600080fd5b505afa158015611642573d6000803e3d6000fd5b505050506040513d602081101561165857600080fd5b505192915050565b80516116ac576040805160208082526010908201526f195b5c1d1e481d1bdad95b881b1a5cdd60821b81830152905160008051602061492a8339815191529181900360600190a161197e565b4781516116d36040518060400160405280600381526020016215549360ea1b8152506134a9565b0211156117245760408051602080825260149082015273696e73756666696369656e742062616c616e636560601b81830152905160008051602061492a8339815191529181900360600190a161197e565b61172c6147b8565b61174d60405180606001604052806032815260200161485b60329139612b0b565b90506117576147b8565b61178c60405180604001604052806014815260200173267473796d733d455448267369676e3d7472756560601b815250612b0b565b905060005b835181101561197a57606060006117ba8684815181106117ad57fe5b6020026020010151610bc3565b5050509350505091508061180f576040805162461bcd60e51b8152602060048201526017602482015276746f6b656e206d75737420626520617661696c61626c6560481b604482015290519081900360640190fd5b6118176147b8565b61182083612b0b565b905060006118746040518060400160405280600381526020016215549360ea1b81525061186e8861186261185d878d6136d490919063ffffffff16565b612b0b565b9063ffffffff6136d416565b8b613748565b905087858151811061188257fe5b6020026020010151603c600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f47737841f636da1ca9f2de10d9bfb96c4251e0b31de72a902d4fd4ac8797bbbe6118eb83612ba8565b826040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561192f578181015183820152602001611917565b50505050905090810190601f16801561195c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050600190920191506117919050565b5050505b5050565b600061198f603954611f36565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561162e57600080fd5b6001600160a01b038216611a94576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114611a3d576040519150601f19603f3d011682016040523d82523d6000602084013e611a42565b606091505b5050905080611a8e576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b50610752565b6107526001600160a01b038316848363ffffffff613b1516565b6060611ab8613b67565b9050805160001415611b0357604080516020808252600990820152686e6f20746f6b656e7360b81b81830152905160008051602061492a8339815191529181900360600190a161197e565b478151611b2a6040518060400160405280600381526020016215549360ea1b8152506134a9565b021115611b7b5760408051602080825260149082015273696e73756666696369656e742062616c616e636560601b81830152905160008051602061492a8339815191529181900360600190a161197e565b611b836147b8565b611ba460405180606001604052806032815260200161485b60329139612b0b565b9050611bae6147b8565b611be360405180604001604052806014815260200173267473796d733d455448267369676e3d7472756560601b815250612b0b565b905060005b835181101561197a576060611c028583815181106117ad57fe5b5050505050509050611c126147b8565b611c1b82612b0b565b90506000611c5e6040518060400160405280600381526020016215549360ea1b815250611c588761186261185d878c6136d490919063ffffffff16565b8a613748565b9050868481518110611c6c57fe5b6020026020010151603c600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f47737841f636da1ca9f2de10d9bfb96c4251e0b31de72a902d4fd4ac8797bbbe611cd583612ba8565b826040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611d19578181015183820152602001611d01565b50505050905090810190601f168015611d465780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050600101611be8565b6035546001600160a01b03161580611d895750603554611d87906001600160a01b0316611f28565b155b15611d9a57611d986000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611dea57600080fd5b505af1158015611dfe573d6000803e3d6000fd5b505050506040513d6020811015611e1457600080fd5b50516034546001600160a01b03908116911614611ec757603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611e7b57600080fd5b505af1158015611e8f573d6000803e3d6000fd5b505050506040513d6020811015611ea557600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163329ab47960e21b81526004810184905290516001600160a01b039092169163ca6ad1e49160248082019260009290919082900301818387803b158015611f1457600080fd5b505af115801561197a573d6000803e3d6000fd5b3b90565b6000611537613c78565b6033546000906001600160a01b0316611f96576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015611fe257600080fd5b505afa158015611ff6573d6000803e3d6000fd5b505050506040513d602081101561200c57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561162e57600080fd5b606060008285019050808451101561206e57600080fd5b60208087019084015b86886020010182101561209857888201518682015260209182019101612077565b5093979650505050505050565b600080600061213b6002876040518082805190602001908083835b602083106120df5780518252601f1990920191602091820191016120c0565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa15801561211e573d6000803e3d6000fd5b5050506040513d602081101561213357600080fd5b505186613fcc565b9250905080801561215d5750835160208501206001600160a01b038381169116145b925050505b9392505050565b600080836040516020018082805190602001908083835b6020831061219f5780518252601f199092019160209182019101612180565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052516014146121dd57fe5b6121e56147b8565b6121ee85612b0b565b90506121f86147b8565b61221a604051806040016040528060018152602001601d60f91b815250612b0b565b90506122246147b8565b612246604051806040016040528060018152602001600160fd1b815250612b0b565b9050600061226a612265612260868563ffffffff612b3016565b612ba8565b614056565b905060008111801561227c5750602081105b6122b9576040805162461bcd60e51b81526020600482015260096024820152683230bc9032b93937b960b91b604482015290519081900360640190fd5b60006122d66122d1612260878663ffffffff612b3016565b614063565b60ff1690506000811180156122eb5750600d81105b61232a576040805162461bcd60e51b815260206004820152600b60248201526a36b7b73a341032b93937b960a91b604482015290519081900360640190fd5b6000612342612265612260888763ffffffff612b3016565b90506107e1811180156123565750610bb881105b612394576040805162461bcd60e51b815260206004820152600a6024820152693cb2b0b91032b93937b960b11b604482015290519081900360640190fd5b60006123ac612265612260898963ffffffff612b3016565b9050601981106123f0576040805162461bcd60e51b815260206004820152600a6024820152693437bab91032b93937b960b11b604482015290519081900360640190fd5b60006124086122656122608a8a63ffffffff612b3016565b9050603c811061244e576040805162461bcd60e51b815260206004820152600c60248201526b36b4b73aba329032b93937b960a11b604482015290519081900360640190fd5b60006124666122656122608b8b63ffffffff612b3016565b9050603c81106124ac576040805162461bcd60e51b815260206004820152600c60248201526b39b2b1b7b7321032b93937b960a11b604482015290519081900360640190fd5b60008183606402856127100289620f424002896305f5e10002896402540be40002010101010190508c8111819b509b50505050505050505050505b9250929050565b60606000806000806000865190506060816040519080825280601f01601f191660200182016040528015612529576020820181803883390190505b5090506000808311801561253e575060048306155b61258f576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b60408051603d60f81b8152905190819003600101902089518a9060011986019081106125b757fe5b01602090810151604080516001600160f81b0319909216828401528051808303600101815260219092019052805191012014156125f95760028303925061265f565b60408051603d60f81b8152905190819003600101902089518a90600019860190811061262157fe5b01602090810151604080516001600160f81b03199092168284015280518083036001018152602190920190528051910120141561265f576001830392505b600319831660005b8181101561287d576040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061269957fe5b0160200151815160f89190911c9081106126af57fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106126e657fe5b0160200151815160f89190911c9081106126fc57fe5b602001015160f81c60f81b97506040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061273357fe5b0160200151815160f89190911c90811061274957fe5b602001015160f81c60f81b96506040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061278057fe5b0160200151815160f89190911c90811061279657fe5b016020015184516001600160f81b031991821697506001850194603f60fa1b60028d901b1660ff60f41b60048d901c161790921691869181106127d557fe5b60200101906001600160f81b031916908160001a90535083516001840193600f60fc1b60048b901b1660ff60f61b60028b901c16176001600160f81b03191691869190811061282057fe5b60200101906001600160f81b031916908160001a90535083516001840193600360fe1b60068a901b1688176001600160f81b03191691869190811061286157fe5b60200101906001600160f81b031916908160001a905350612667565b81850360021415612975576040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106128b257fe5b0160200151815160f89190911c9081106128c857fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106128ff57fe5b0160200151815160f89190911c90811061291557fe5b602001015160f81c60f81b97506004886001600160f81b031916901c60028a6001600160f81b031916901b1760ff60f81b1684848060010195508151811061295957fe5b60200101906001600160f81b031916908160001a905350612afc565b81850360031415612afc576040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106129aa57fe5b0160200151815160f89190911c9081106129c057fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106129f757fe5b0160200151815160f89190911c908110612a0d57fe5b602001015160f81c60f81b97506040518060a00160405280607b81526020016148af607b91398b5160018301928d918110612a4457fe5b0160200151815160f89190911c908110612a5a57fe5b016020015184516001600160f81b031991821698506001850194603f60fa1b60028d901b1660ff60f41b60048d901c16179092169186918110612a9957fe5b60200101906001600160f81b031916908160001a90535083516001840193600f60fc1b60048b901b1660ff60f61b60028b901c16176001600160f81b031916918691908110612ae457fe5b60200101906001600160f81b031916908160001a9053505b50508152979650505050505050565b612b136147b8565b506040805180820190915281518152602082810190820152919050565b612b386147b8565b612b43838383614307565b5092915050565b612b526147b8565b815183511015612b63575081611537565b8151835160208086015190850151910191909103906001908214612b91575082516020840151819020908220145b8015612b9f57835185510385525b50929392505050565b60608082600001516040519080825280601f01601f191660200182016040528015612bda576020820181803883390190505b5090506000602082019050612b438185602001518660000151614378565b60008281808080808080808080805b8b5181101561323a578b51600360fc1b908d9083908110612c2457fe5b01602001516001600160f81b03191610801590612c6257508b51603960f81b908d9083908110612c5057fe5b01602001516001600160f81b03191611155b8015612c6c575083155b15612d1c578415612cca57612c888a600a63ffffffff6143b616565b9950612cbd603060f81b60f81c8d8381518110612ca157fe5b01602001518c9160f89190911c0360ff1663ffffffff61440f16565b9950600190970196612d17565b60019550612cdf8b600a63ffffffff6143b616565b9a50612d14603060f81b60f81c8d8381518110612cf857fe5b01602001518d9160f89190911c0360ff1663ffffffff61440f16565b9a505b613232565b8b51600360fc1b908d9083908110612d3057fe5b01602001516001600160f81b03191610801590612d6e57508b51603960f81b908d9083908110612d5c57fe5b01602001516001600160f81b03191611155b8015612d775750835b15612dc957612d8d89600a63ffffffff6143b616565b9850612dc2603060f81b60f81c8d8381518110612da657fe5b01602001518b9160f89190911c0360ff1663ffffffff61440f16565b9850613232565b8b51601760f91b908d9083908110612ddd57fe5b01602001516001600160f81b0319161415612ee45785612e3c576040805162461bcd60e51b81526020600482015260156024820152741b5a5cdcda5b99c81a5b9d1959dc985b081c185c9d605a1b604482015290519081900360640190fd5b8415612e8f576040805162461bcd60e51b815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b8315612edb576040805162461bcd60e51b8152602060048201526016602482015275191958da5b585b0818599d195c88195e1c1bdb995b9d60521b604482015290519081900360640190fd5b60019450613232565b8b51602d60f81b908d9083908110612ef857fe5b01602001516001600160f81b0319161415612fee578215612f4e576040805162461bcd60e51b815260206004820152600b60248201526a6475706c6963617465202d60a81b604482015290519081900360640190fd5b8115612f8e576040805162461bcd60e51b815260206004820152600a60248201526932bc3a39309039b4b3b760b11b604482015290519081900360640190fd5b808760010114612fe5576040805162461bcd60e51b815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613232565b8b51602b60f81b908d908390811061300257fe5b01602001516001600160f81b03191614156130f8578115613058576040805162461bcd60e51b815260206004820152600b60248201526a6475706c6963617465202b60a81b604482015290519081900360640190fd5b8215613098576040805162461bcd60e51b815260206004820152600a60248201526932bc3a39309039b4b3b760b11b604482015290519081900360640190fd5b8087600101146130ef576040805162461bcd60e51b815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613232565b8b51604560f81b908d908390811061310c57fe5b01602001516001600160f81b031916148061314757508b51606560f81b908d908390811061313657fe5b01602001516001600160f81b031916145b156131f55785613196576040805162461bcd60e51b81526020600482015260156024820152741b5a5cdcda5b99c81a5b9d1959dc985b081c185c9d605a1b604482015290519081900360640190fd5b83156131e9576040805162461bcd60e51b815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613232565b6040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a5908191a59da5d609a1b604482015290519081900360640190fd5b600101612c07565b82806132435750815b1561325c5786600201811161325757600080fd5b613271565b83156132715786600101811161327157600080fd5b82156132f2578d89106132e857604e8e8a03106132c5576040805162461bcd60e51b815260206004820152600d60248201526c6578706f6e656e74203e20373760981b604482015290519081900360640190fd5b8d8903600a0a8b816132d357fe5b049c506115379b505050505050505050505050565b888e039d50613305565b6133028e8a63ffffffff61440f16565b9d505b878e106133d957604e881061334b5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b61335f8b600a8a900a63ffffffff6143b616565b9a506133718b8b63ffffffff61440f16565b9a50604e888f03106133ba576040805162461bcd60e51b815260206004820152600d60248201526c6578706f6e656e74203e20373760981b604482015290519081900360640190fd5b6133d2888f03600a0a8c6143b690919063ffffffff16565b9a50613496565b8d88039750604e881061341d5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b87600a0a8a8161342957fe5b049950604e8e1061346b5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b6134818e600a0a8c6143b690919063ffffffff16565b9a506134938b8b63ffffffff61440f16565b9a505b50989d9c50505050505050505050505050565b6035546000906001600160a01b031615806134d657506035546134d4906001600160a01b0316611f28565b155b156134e7576134e56000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561353757600080fd5b505af115801561354b573d6000803e3d6000fd5b505050506040513d602081101561356157600080fd5b50516034546001600160a01b0390811691161461361457603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156135c857600080fd5b505af11580156135dc573d6000803e3d6000fd5b505050506040513d60208110156135f257600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b60345460405163524f388960e01b81526020600482018181528551602484015285516001600160a01b039094169363524f388993879383926044909201919085019080838360005b8381101561367457818101518382015260200161365c565b50505050905090810190601f1680156136a15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156136c057600080fd5b505af1158015611642573d6000803e3d6000fd5b60608082600001518460000151016040519080825280601f01601f19166020018201604052801561370c576020820181803883390190505b509050600060208201905061372a8186602001518760000151614378565b8451602085015185516137409284019190614378565b509392505050565b6035546000906001600160a01b031615806137755750603554613773906001600160a01b0316611f28565b155b15613786576137846000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156137d657600080fd5b505af11580156137ea573d6000803e3d6000fd5b505050506040513d602081101561380057600080fd5b50516034546001600160a01b039081169116146138b357603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561386757600080fd5b505af115801561387b573d6000803e3d6000fd5b505050506040513d602081101561389157600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b60345460408051630bbceb3360e21b815260248101859052600481019182528651604482015286516000936001600160a01b031692632ef3accc928992889291829160649091019060208601908083838c5b8381101561391d578181015183820152602001613905565b50505050905090810190601f16801561394a5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561396a57600080fd5b505af115801561397e573d6000803e3d6000fd5b505050506040513d602081101561399457600080fd5b50519050670de0b6b3a76400003a8402018111156139b6575060009050612162565b60345460405163c51be90f60e01b8152600060048201818152606483018790526080602484019081528951608485015289516001600160a01b039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b83811015613a30578181015183820152602001613a18565b50505050905090810190601f168015613a5d5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015613a90578181015183820152602001613a78565b50505050905090810190601f168015613abd5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b158015613adf57600080fd5b505af1158015613af3573d6000803e3d6000fd5b50505050506040513d6020811015613b0a57600080fd5b505195945050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610752908490614469565b6060613b74603a54611f36565b6001600160a01b031663443dd2a46040518163ffffffff1660e01b815260040160006040518083038186803b158015613bac57600080fd5b505afa158015613bc0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613be957600080fd5b8101908080516040519392919084600160201b821115613c0857600080fd5b908301906020820185811115613c1d57600080fd5b82518660208202830111600160201b82111715613c3957600080fd5b82525081516020918201928201910280838360005b83811015613c66578181015183820152602001613c4e565b50505050905001604052505050905090565b600080613c98731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed611f28565b1115613cf757603580546001600160a01b031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81526a195d1a17db585a5b9b995d60aa1b6020820152613cef90614627565b5060016106b5565b6000613d1673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1611f28565b1115613d6e57603580546001600160a01b03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81526b6574685f726f707374656e3360a01b6020820152613cef90614627565b6000613d8d73b7a07bcf2ba2f2703b24c0691b5278999c59ac7e611f28565b1115613de257603580546001600160a01b03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981526832ba342fb5b7bb30b760b91b6020820152613cef90614627565b6000613e0173146500cfd35b22e4a392fe0adc06de1a1368ed48611f28565b1115613e5857603580546001600160a01b03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81526a6574685f72696e6b65627960a81b6020820152613cef90614627565b6000613e7773a2998efd205fb9d4b4963afb70778d6354ad3a41611f28565b1115613ecd57603580546001600160a01b03191673a2998efd205fb9d4b4963afb70778d6354ad3a4117905560408051808201909152600a8152696574685f676f65726c6960b01b6020820152613cef90614627565b6000613eec736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475611f28565b1115613f205750603580546001600160a01b031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47517905560016106b5565b6000613f3f7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf611f28565b1115613f735750603580546001600160a01b0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf17905560016106b5565b6000613f927351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa611f28565b1115613fc65750603580546001600160a01b0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa17905560016106b5565b50600090565b60008060008060008551604114613fed5750600093508392506124e7915050565b50505060208301516040840151606085015160001a601b81101561400f57601b015b8060ff16601b1415801561402757508060ff16601c14155b1561403c5750600093508392506124e7915050565b6140488782858561463a565b945094505050509250929050565b6000611537826000612bf8565b600080826040516020018082805190602001908083835b602083106140995780518252601f19909201916020918201910161407a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012090506040518080622530b760e91b81525060030190506040518091039020811415614103576001915050611525565b60408051622332b160e91b8152905190819003600301902081141561412c576002915050611525565b604080516226b0b960e91b81529051908190036003019020811415614155576003915050611525565b604080516220b83960e91b8152905190819003600301902081141561417e576004915050611525565b60408051624d617960e81b815290519081900360030190208114156141a7576005915050611525565b6040805162253ab760e91b815290519081900360030190208114156141d0576006915050611525565b6040805162129d5b60ea1b815290519081900360030190208114156141f9576007915050611525565b604080516241756760e81b81529051908190036003019020811415614222576008915050611525565b604080516205365760ec1b8152905190819003600301902081141561424b576009915050611525565b604080516213d8dd60ea1b8152905190819003600301902081141561427457600a915050611525565b60408051622737bb60e91b8152905190819003600301902081141561429d57600b915050611525565b604080516244656360e81b815290519081900360030190208114156142c657600c915050611525565b6040805162461bcd60e51b81526020600482015260116024820152700dcdee840c240ecc2d8d2c840dadedce8d607b1b604482015290519081900360640190fd5b61430f6147b8565b600061432d8560000151866020015186600001518760200151614677565b60208087018051918601919091528051820385528651905191925001811415614359576000855261436f565b8351835186519101900385528351810160208601525b50909392505050565b5b60208110614398578151835260209283019290910190601f1901614379565b905182516020929092036101000a6000190180199091169116179052565b6000826143c557506000611537565b828202828482816143d257fe5b04146121625760405162461bcd60e51b815260040180806020018281038252602181526020018061494a6021913960400191505060405180910390fd5b600082820183811015612162576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61447b826001600160a01b0316614734565b6144cc576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b6020831061450a5780518252601f1990920191602091820191016144eb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461456c576040519150601f19603f3d011682016040523d82523d6000602084013e614571565b606091505b5091509150816145c8576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115614621578080602001905160208110156145e457600080fd5b50516146215760405162461bcd60e51b815260040180806020018281038252602a81526020018061496b602a913960400191505060405180910390fd5b50505050565b805161197e9060369060208401906147d2565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b6000838186851161472557602085116146ea5783518251600019600860208990030260020a011991821690888a018890039083165b8281146146dc578186106146ca578a8a01965050505050505061472c565b506001909401805190949083166146ac565b85965050505050505061472c565b508383206000905b85880382116147235785832081811415614712578394505050505061472c565b5060019283019291909101906146f2565b505b5050508284015b949350505050565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061477b5782800160ff198235161785556147a8565b828001600101855582156147a8579182015b828111156147a857823582559160200191906001019061478d565b506147b4929150614840565b5090565b604051806040016040528060008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061481357805160ff19168380011785556147a8565b828001600101855582156147a8579182015b828111156147a8578251825591602001919060010190614825565b6106b591905b808211156147b4576000815560010161484656fe68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f6d2f646174612f70726963653f6673796d3d6d6f7265207468616e20373720646563696d616c2064696769747320706172736564000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000000000102030405060708090a0b0c0d0e0f10111213141516171819000000003f001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132334eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72315820ee90fea3ab325ef41eaef12511ff88a30f2960c64601fcf7610a4704b564a22064736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a983710bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca" +var OracleBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976039557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d396603a553480156200007a57600080fd5b50604051620056c4380380620056c483398181016040526080811015620000a057600080fd5b5080516020820151604083015160609093015191929091620000cb836001600160e01b036200017116565b620000df826001600160e01b036200025116565b620000f3816001600160e01b036200031016565b604051806060016040528060408152602001620056846040913980516200012391603b9160209091019062000bdb565b50603580546001600160a01b0319166001600160a01b0386161790556200014f6402540be400620003cf565b62000167600f60fc1b6001600160e01b03620005c016565b5050505062000c7d565b600054610100900460ff1680620001965750620001966001600160e01b03620007b616565b80620001a5575060005460ff16155b620001e25760405162461bcd60e51b815260040180806020018281038252602e81526020018062005656602e913960400191505060405180910390fd5b600054610100900460ff161580156200020e576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200023a57603380546001600160a01b0319166001600160a01b0384161790555b80156200024d576000805461ff00191690555b5050565b600054610100900460ff1680620002765750620002766001600160e01b03620007b616565b8062000285575060005460ff16155b620002c25760405162461bcd60e51b815260040180806020018281038252602e81526020018062005656602e913960400191505060405180910390fd5b600054610100900460ff16158015620002ee576000805460ff1961ff0019909116610100171660011790555b81156200023a57603982905580156200024d576000805461ff00191690555050565b600054610100900460ff1680620003355750620003356001600160e01b03620007b616565b8062000344575060005460ff16155b620003815760405162461bcd60e51b815260040180806020018281038252602e81526020018062005656602e913960400191505060405180910390fd5b600054610100900460ff16158015620003ad576000805460ff1961ff0019909116610100171660011790555b81156200023a57603a82905580156200024d576000805461ff00191690555050565b6035546001600160a01b0316158062000405575060355462000403906001600160a01b03166001600160e01b03620007bd16565b155b1562000422576200042060006001600160e01b03620007c116565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200047357600080fd5b505af115801562000488573d6000803e3d6000fd5b505050506040513d60208110156200049f57600080fd5b50516034546001600160a01b039081169116146200055657603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200050857600080fd5b505af11580156200051d573d6000803e3d6000fd5b505050506040513d60208110156200053457600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163329ab47960e21b81526004810184905290516001600160a01b039092169163ca6ad1e49160248082019260009290919082900301818387803b158015620005a457600080fd5b505af1158015620005b9573d6000803e3d6000fd5b5050505050565b6035546001600160a01b03161580620005f65750603554620005f4906001600160a01b03166001600160e01b03620007bd16565b155b1562000613576200061160006001600160e01b03620007c116565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200066457600080fd5b505af115801562000679573d6000803e3d6000fd5b505050506040513d60208110156200069057600080fd5b50516034546001600160a01b039081169116146200074757603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015620006f957600080fd5b505af11580156200070e573d6000803e3d6000fd5b505050506040513d60208110156200072557600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163688dcfd760e01b81527fff000000000000000000000000000000000000000000000000000000000000008416600482015290516001600160a01b039092169163688dcfd79160248082019260009290919082900301818387803b158015620005a457600080fd5b303b155b90565b3b90565b6000620007d66001600160e01b03620007dc16565b92915050565b60008062000807731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed6001600160e01b03620007bd16565b11156200087357603580546001600160a01b031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81526a195d1a17db585a5b9b995d60aa1b60208201526200086a906001600160e01b0362000bcb16565b506001620007ba565b60006200089d73c03a2615d5efaf5f49f60b7bb6583eaec212fdf16001600160e01b03620007bd16565b11156200090157603580546001600160a01b03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81526b6574685f726f707374656e3360a01b60208201526200086a906001600160e01b0362000bcb16565b60006200092b73b7a07bcf2ba2f2703b24c0691b5278999c59ac7e6001600160e01b03620007bd16565b11156200098c57603580546001600160a01b03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981526832ba342fb5b7bb30b760b91b60208201526200086a906001600160e01b0362000bcb16565b6000620009b673146500cfd35b22e4a392fe0adc06de1a1368ed486001600160e01b03620007bd16565b111562000a1957603580546001600160a01b03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81526a6574685f72696e6b65627960a81b60208201526200086a906001600160e01b0362000bcb16565b600062000a4373a2998efd205fb9d4b4963afb70778d6354ad3a416001600160e01b03620007bd16565b111562000aa557603580546001600160a01b03191673a2998efd205fb9d4b4963afb70778d6354ad3a4117905560408051808201909152600a8152696574685f676f65726c6960b01b60208201526200086a906001600160e01b0362000bcb16565b600062000acf736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4756001600160e01b03620007bd16565b111562000b055750603580546001600160a01b031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001620007ba565b600062000b2f7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf6001600160e01b03620007bd16565b111562000b655750603580546001600160a01b0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001620007ba565b600062000b8f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa6001600160e01b03620007bd16565b111562000bc55750603580546001600160a01b0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001620007ba565b50600090565b80516200024d9060369060208401905b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000c1e57805160ff191683800117855562000c4e565b8280016001018555821562000c4e579182015b8281111562000c4e57825182559160200191906001019062000c31565b5062000c5c92915062000c60565b5090565b620007ba91905b8082111562000c5c576000815560010162000c67565b6149c98062000c8d6000396000f3fe6080604052600436106100915760003560e01c8063996cba6811610059578063996cba681461032c578063b598f8821461036f578063c2c3d0541461038c578063ca6ad1e414610407578063e2b4ce971461043157610091565b806338bbfa50146100965780633acbe96e146101d55780637d73b2311461025f578063877337b014610290578063937f54a4146102b7575b600080fd5b3480156100a257600080fd5b506101d3600480360360608110156100b957600080fd5b81359190810190604081016020820135600160201b8111156100da57600080fd5b8201836020820111156100ec57600080fd5b803590602001918460018302840111600160201b8311171561010d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561015f57600080fd5b82018360208201111561017157600080fd5b803590602001918460018302840111600160201b8311171561019257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610446945050505050565b005b3480156101e157600080fd5b506101ea61061a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022457818101518382015260200161020c565b50505050905090810190601f1680156102515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026b57600080fd5b506102746106a8565b604080516001600160a01b039092168252519081900360200190f35b34801561029c57600080fd5b506102a56106b8565b60408051918252519081900360200190f35b6101d3600480360360408110156102cd57600080fd5b81359190810190604081016020820135600160201b8111156102ee57600080fd5b82018360208201111561030057600080fd5b803590602001918460208302840111600160201b8311171561032157600080fd5b5090925090506106be565b34801561033857600080fd5b506101d36004803603606081101561034f57600080fd5b506001600160a01b03813581169160208101359091169060400135610757565b6101d36004803603602081101561038557600080fd5b5035610804565b34801561039857600080fd5b506101d3600480360360208110156103af57600080fd5b810190602081018135600160201b8111156103c957600080fd5b8201836020820111156103db57600080fd5b803590602001918460018302840111600160201b831117156103fc57600080fd5b509092509050610867565b34801561041357600080fd5b506101d36004803603602081101561042a57600080fd5b5035610935565b34801561043d57600080fd5b506102a56109d3565b61044e6109d9565b6001600160a01b0316336001600160a01b0316146104ac576040805162461bcd60e51b815260206004820152601660248201527573656e646572206973206e6f74206f7261636c697a6560501b604482015290519081900360640190fd5b6000838152603c60205260408120546001600160a01b031690806104cf83610bc3565b96505050945050505081610524576040805162461bcd60e51b8152602060048201526017602482015276746f6b656e206d75737420626520617661696c61626c6560481b604482015290519081900360640190fd5b603b8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260009384936105c5938b938b93909290918301828280156105ba5780601f1061058f576101008083540402835291602001916105ba565b820191906000526020600020905b81548152906001019060200180831161059d57829003601f168201915b505050505086610d55565b909250905081156106105760006105e36105de89611287565b61152a565b60008a8152603c6020526040902080546001600160a01b031916905590508161060d87838361153d565b50505b5050505050505050565b603b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b6033546001600160a01b03165b90565b603a5490565b6106c7336115cc565b610715576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b6107528383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061166092505050565b505050565b61076033611982565b6107aa576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6107b58383836119e4565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b61080d336115cc565b61085b576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b61086481611aae565b50565b61087033611982565b6108ba576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6108c6603b838361473a565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa929091859185919060608201848480828437600083820152604051601f909101601f1916909201829003965090945050505050a15050565b61093e336115cc565b61098c576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b61099581611d5f565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60395490565b6035546000906001600160a01b03161580610a065750603554610a04906001600160a01b0316611f28565b155b15610a1757610a156000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a6757600080fd5b505af1158015610a7b573d6000803e3d6000fd5b505050506040513d6020811015610a9157600080fd5b50516034546001600160a01b03908116911614610b4457603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610af857600080fd5b505af1158015610b0c573d6000803e3d6000fd5b505050506040513d6020811015610b2257600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b603460009054906101000a90046001600160a01b03166001600160a01b031663c281d19e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9257600080fd5b505afa158015610ba6573d6000803e3d6000fd5b505050506040513d6020811015610bbc57600080fd5b5051905090565b6060600080600080600080610bd9603a54611f36565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610c6b57600080fd5b8101908080516040519392919084600160201b821115610c8a57600080fd5b908301906020820185811115610c9f57600080fd5b8251600160201b811182820188101715610cb857600080fd5b82525081516020918201929091019080838360005b83811015610ce5578181015183820152602001610ccd565b50505050905090810190601f168015610d125780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b60008060a5855114610da5576040805162461bcd60e51b81526020600482015260146024820152730d2dcecc2d8d2c840e0e4dedecc40d8cadccee8d60631b604482015290519081900360640190fd5b604185600181518110610db457fe5b016020015160f81c14610e0e576040805162461bcd60e51b815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252606091602082018180388339019050509050610e408660026041846000612057565b865190915060609087906044908110610e5557fe5b0160200151875160f89190911c906101009089906043908110610e7457fe5b016020015160f81c020114610ec9576040805162461bcd60e51b81526020600482015260166024820152750d2dcecc2d8d2c840d0cac2c8cae4e640d8cadccee8d60531b604482015290519081900360640190fd5b6040805160608082526080820190925281602082018180388339019050509050610ef98760456060846000612057565b9050610f068183886120a5565b610f4b576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b604080516014808252818301909252606091602082018180388339019050509050610f7c82600b6014846000612057565b9050600080610f8b8389612169565b909250905081610fd1576040805162461bcd60e51b815260206004820152600c60248201526b696e76616c6964206461746560a01b604482015290519081900360640190fd5b60408051602c8082526060828101909352602082018180388339019050509050611001856034602c846000612057565b905061100c816124ee565b8051906020012060028d6040516020018082805190602001908083835b602083106110485780518252601f199092019160209182019101611029565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106110ab5780518252601f19909201916020918201910161108c565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa1580156110ea573d6000803e3d6000fd5b5050506040513d60208110156110ff57600080fd5b505160408051602081810193909352815180820384018152908201909152805191012014611174576040805162461bcd60e51b815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156111d85781810151838201526020016111c0565b50505050905090810190601f1680156112055780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611238578181015183820152602001611220565b50505050905090810190601f1680156112655780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000826040516020018082805190602001908083835b602083106112be5780518252601f19909201916020918201910161129f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525190506008811180156113065750601c8111155b61134c576040805162461bcd60e51b81526020600482015260126024820152711b5a5cd99bdc9b585d1d1959081a5b9c1d5d60721b604482015290519081900360640190fd5b6040805160078082528183019092526060916020820181803883390190505090506113e3846040516020018082805190602001908083835b602083106113a35780518252601f199092019160209182019101611384565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007846000612057565b5060408051663d9122aa24111d60c91b81529051908190036007019020815160208301201461144b576040805162461bcd60e51b815260206004820152600f60248201526e0e0e4caccd2f040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b6114536147b8565b61145c85612b0b565b9050611490611483604051806040016040528060018152602001601d60f91b815250612b0b565b829063ffffffff612b3016565b50806000015192506114ca6114bd604051806040016040528060018152602001607d60f81b815250612b0b565b829063ffffffff612b4a16565b508051600019840114611516576040805162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a9cdbdb88199bdc9b585d608a1b604482015290519081900360640190fd5b61151f81612ba8565b93505050505b919050565b6000611537826012612bf8565b92915050565b611548603a54611f36565b6001600160a01b031663d545782e8484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156115af57600080fd5b505af11580156115c3573d6000803e3d6000fd5b50505050505050565b60006115d9603954611f36565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561162e57600080fd5b505afa158015611642573d6000803e3d6000fd5b505050506040513d602081101561165857600080fd5b505192915050565b80516116ac576040805160208082526010908201526f195b5c1d1e481d1bdad95b881b1a5cdd60821b81830152905160008051602061492a8339815191529181900360600190a161197e565b4781516116d36040518060400160405280600381526020016215549360ea1b8152506134a9565b0211156117245760408051602080825260149082015273696e73756666696369656e742062616c616e636560601b81830152905160008051602061492a8339815191529181900360600190a161197e565b61172c6147b8565b61174d60405180606001604052806032815260200161485b60329139612b0b565b90506117576147b8565b61178c60405180604001604052806014815260200173267473796d733d455448267369676e3d7472756560601b815250612b0b565b905060005b835181101561197a57606060006117ba8684815181106117ad57fe5b6020026020010151610bc3565b5050509350505091508061180f576040805162461bcd60e51b8152602060048201526017602482015276746f6b656e206d75737420626520617661696c61626c6560481b604482015290519081900360640190fd5b6118176147b8565b61182083612b0b565b905060006118746040518060400160405280600381526020016215549360ea1b81525061186e8861186261185d878d6136d490919063ffffffff16565b612b0b565b9063ffffffff6136d416565b8b613748565b905087858151811061188257fe5b6020026020010151603c600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f47737841f636da1ca9f2de10d9bfb96c4251e0b31de72a902d4fd4ac8797bbbe6118eb83612ba8565b826040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561192f578181015183820152602001611917565b50505050905090810190601f16801561195c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050600190920191506117919050565b5050505b5050565b600061198f603954611f36565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561162e57600080fd5b6001600160a01b038216611a94576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114611a3d576040519150601f19603f3d011682016040523d82523d6000602084013e611a42565b606091505b5050905080611a8e576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b50610752565b6107526001600160a01b038316848363ffffffff613b1516565b6060611ab8613b67565b9050805160001415611b0357604080516020808252600990820152686e6f20746f6b656e7360b81b81830152905160008051602061492a8339815191529181900360600190a161197e565b478151611b2a6040518060400160405280600381526020016215549360ea1b8152506134a9565b021115611b7b5760408051602080825260149082015273696e73756666696369656e742062616c616e636560601b81830152905160008051602061492a8339815191529181900360600190a161197e565b611b836147b8565b611ba460405180606001604052806032815260200161485b60329139612b0b565b9050611bae6147b8565b611be360405180604001604052806014815260200173267473796d733d455448267369676e3d7472756560601b815250612b0b565b905060005b835181101561197a576060611c028583815181106117ad57fe5b5050505050509050611c126147b8565b611c1b82612b0b565b90506000611c5e6040518060400160405280600381526020016215549360ea1b815250611c588761186261185d878c6136d490919063ffffffff16565b8a613748565b9050868481518110611c6c57fe5b6020026020010151603c600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f47737841f636da1ca9f2de10d9bfb96c4251e0b31de72a902d4fd4ac8797bbbe611cd583612ba8565b826040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611d19578181015183820152602001611d01565b50505050905090810190601f168015611d465780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050600101611be8565b6035546001600160a01b03161580611d895750603554611d87906001600160a01b0316611f28565b155b15611d9a57611d986000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611dea57600080fd5b505af1158015611dfe573d6000803e3d6000fd5b505050506040513d6020811015611e1457600080fd5b50516034546001600160a01b03908116911614611ec757603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611e7b57600080fd5b505af1158015611e8f573d6000803e3d6000fd5b505050506040513d6020811015611ea557600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163329ab47960e21b81526004810184905290516001600160a01b039092169163ca6ad1e49160248082019260009290919082900301818387803b158015611f1457600080fd5b505af115801561197a573d6000803e3d6000fd5b3b90565b6000611537613c78565b6033546000906001600160a01b0316611f96576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015611fe257600080fd5b505afa158015611ff6573d6000803e3d6000fd5b505050506040513d602081101561200c57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561162e57600080fd5b606060008285019050808451101561206e57600080fd5b60208087019084015b86886020010182101561209857888201518682015260209182019101612077565b5093979650505050505050565b600080600061213b6002876040518082805190602001908083835b602083106120df5780518252601f1990920191602091820191016120c0565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa15801561211e573d6000803e3d6000fd5b5050506040513d602081101561213357600080fd5b505186613fcc565b9250905080801561215d5750835160208501206001600160a01b038381169116145b925050505b9392505050565b600080836040516020018082805190602001908083835b6020831061219f5780518252601f199092019160209182019101612180565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052516014146121dd57fe5b6121e56147b8565b6121ee85612b0b565b90506121f86147b8565b61221a604051806040016040528060018152602001601d60f91b815250612b0b565b90506122246147b8565b612246604051806040016040528060018152602001600160fd1b815250612b0b565b9050600061226a612265612260868563ffffffff612b3016565b612ba8565b614056565b905060008111801561227c5750602081105b6122b9576040805162461bcd60e51b81526020600482015260096024820152683230bc9032b93937b960b91b604482015290519081900360640190fd5b60006122d66122d1612260878663ffffffff612b3016565b614063565b60ff1690506000811180156122eb5750600d81105b61232a576040805162461bcd60e51b815260206004820152600b60248201526a36b7b73a341032b93937b960a91b604482015290519081900360640190fd5b6000612342612265612260888763ffffffff612b3016565b90506107e1811180156123565750610bb881105b612394576040805162461bcd60e51b815260206004820152600a6024820152693cb2b0b91032b93937b960b11b604482015290519081900360640190fd5b60006123ac612265612260898963ffffffff612b3016565b9050601981106123f0576040805162461bcd60e51b815260206004820152600a6024820152693437bab91032b93937b960b11b604482015290519081900360640190fd5b60006124086122656122608a8a63ffffffff612b3016565b9050603c811061244e576040805162461bcd60e51b815260206004820152600c60248201526b36b4b73aba329032b93937b960a11b604482015290519081900360640190fd5b60006124666122656122608b8b63ffffffff612b3016565b9050603c81106124ac576040805162461bcd60e51b815260206004820152600c60248201526b39b2b1b7b7321032b93937b960a11b604482015290519081900360640190fd5b60008183606402856127100289620f424002896305f5e10002896402540be40002010101010190508c8111819b509b50505050505050505050505b9250929050565b60606000806000806000865190506060816040519080825280601f01601f191660200182016040528015612529576020820181803883390190505b5090506000808311801561253e575060048306155b61258f576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b60408051603d60f81b8152905190819003600101902089518a9060011986019081106125b757fe5b01602090810151604080516001600160f81b0319909216828401528051808303600101815260219092019052805191012014156125f95760028303925061265f565b60408051603d60f81b8152905190819003600101902089518a90600019860190811061262157fe5b01602090810151604080516001600160f81b03199092168284015280518083036001018152602190920190528051910120141561265f576001830392505b600319831660005b8181101561287d576040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061269957fe5b0160200151815160f89190911c9081106126af57fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106126e657fe5b0160200151815160f89190911c9081106126fc57fe5b602001015160f81c60f81b97506040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061273357fe5b0160200151815160f89190911c90811061274957fe5b602001015160f81c60f81b96506040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061278057fe5b0160200151815160f89190911c90811061279657fe5b016020015184516001600160f81b031991821697506001850194603f60fa1b60028d901b1660ff60f41b60048d901c161790921691869181106127d557fe5b60200101906001600160f81b031916908160001a90535083516001840193600f60fc1b60048b901b1660ff60f61b60028b901c16176001600160f81b03191691869190811061282057fe5b60200101906001600160f81b031916908160001a90535083516001840193600360fe1b60068a901b1688176001600160f81b03191691869190811061286157fe5b60200101906001600160f81b031916908160001a905350612667565b81850360021415612975576040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106128b257fe5b0160200151815160f89190911c9081106128c857fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106128ff57fe5b0160200151815160f89190911c90811061291557fe5b602001015160f81c60f81b97506004886001600160f81b031916901c60028a6001600160f81b031916901b1760ff60f81b1684848060010195508151811061295957fe5b60200101906001600160f81b031916908160001a905350612afc565b81850360031415612afc576040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106129aa57fe5b0160200151815160f89190911c9081106129c057fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106129f757fe5b0160200151815160f89190911c908110612a0d57fe5b602001015160f81c60f81b97506040518060a00160405280607b81526020016148af607b91398b5160018301928d918110612a4457fe5b0160200151815160f89190911c908110612a5a57fe5b016020015184516001600160f81b031991821698506001850194603f60fa1b60028d901b1660ff60f41b60048d901c16179092169186918110612a9957fe5b60200101906001600160f81b031916908160001a90535083516001840193600f60fc1b60048b901b1660ff60f61b60028b901c16176001600160f81b031916918691908110612ae457fe5b60200101906001600160f81b031916908160001a9053505b50508152979650505050505050565b612b136147b8565b506040805180820190915281518152602082810190820152919050565b612b386147b8565b612b43838383614307565b5092915050565b612b526147b8565b815183511015612b63575081611537565b8151835160208086015190850151910191909103906001908214612b91575082516020840151819020908220145b8015612b9f57835185510385525b50929392505050565b60608082600001516040519080825280601f01601f191660200182016040528015612bda576020820181803883390190505b5090506000602082019050612b438185602001518660000151614378565b60008281808080808080808080805b8b5181101561323a578b51600360fc1b908d9083908110612c2457fe5b01602001516001600160f81b03191610801590612c6257508b51603960f81b908d9083908110612c5057fe5b01602001516001600160f81b03191611155b8015612c6c575083155b15612d1c578415612cca57612c888a600a63ffffffff6143b616565b9950612cbd603060f81b60f81c8d8381518110612ca157fe5b01602001518c9160f89190911c0360ff1663ffffffff61440f16565b9950600190970196612d17565b60019550612cdf8b600a63ffffffff6143b616565b9a50612d14603060f81b60f81c8d8381518110612cf857fe5b01602001518d9160f89190911c0360ff1663ffffffff61440f16565b9a505b613232565b8b51600360fc1b908d9083908110612d3057fe5b01602001516001600160f81b03191610801590612d6e57508b51603960f81b908d9083908110612d5c57fe5b01602001516001600160f81b03191611155b8015612d775750835b15612dc957612d8d89600a63ffffffff6143b616565b9850612dc2603060f81b60f81c8d8381518110612da657fe5b01602001518b9160f89190911c0360ff1663ffffffff61440f16565b9850613232565b8b51601760f91b908d9083908110612ddd57fe5b01602001516001600160f81b0319161415612ee45785612e3c576040805162461bcd60e51b81526020600482015260156024820152741b5a5cdcda5b99c81a5b9d1959dc985b081c185c9d605a1b604482015290519081900360640190fd5b8415612e8f576040805162461bcd60e51b815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b8315612edb576040805162461bcd60e51b8152602060048201526016602482015275191958da5b585b0818599d195c88195e1c1bdb995b9d60521b604482015290519081900360640190fd5b60019450613232565b8b51602d60f81b908d9083908110612ef857fe5b01602001516001600160f81b0319161415612fee578215612f4e576040805162461bcd60e51b815260206004820152600b60248201526a6475706c6963617465202d60a81b604482015290519081900360640190fd5b8115612f8e576040805162461bcd60e51b815260206004820152600a60248201526932bc3a39309039b4b3b760b11b604482015290519081900360640190fd5b808760010114612fe5576040805162461bcd60e51b815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613232565b8b51602b60f81b908d908390811061300257fe5b01602001516001600160f81b03191614156130f8578115613058576040805162461bcd60e51b815260206004820152600b60248201526a6475706c6963617465202b60a81b604482015290519081900360640190fd5b8215613098576040805162461bcd60e51b815260206004820152600a60248201526932bc3a39309039b4b3b760b11b604482015290519081900360640190fd5b8087600101146130ef576040805162461bcd60e51b815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613232565b8b51604560f81b908d908390811061310c57fe5b01602001516001600160f81b031916148061314757508b51606560f81b908d908390811061313657fe5b01602001516001600160f81b031916145b156131f55785613196576040805162461bcd60e51b81526020600482015260156024820152741b5a5cdcda5b99c81a5b9d1959dc985b081c185c9d605a1b604482015290519081900360640190fd5b83156131e9576040805162461bcd60e51b815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613232565b6040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a5908191a59da5d609a1b604482015290519081900360640190fd5b600101612c07565b82806132435750815b1561325c5786600201811161325757600080fd5b613271565b83156132715786600101811161327157600080fd5b82156132f2578d89106132e857604e8e8a03106132c5576040805162461bcd60e51b815260206004820152600d60248201526c6578706f6e656e74203e20373760981b604482015290519081900360640190fd5b8d8903600a0a8b816132d357fe5b049c506115379b505050505050505050505050565b888e039d50613305565b6133028e8a63ffffffff61440f16565b9d505b878e106133d957604e881061334b5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b61335f8b600a8a900a63ffffffff6143b616565b9a506133718b8b63ffffffff61440f16565b9a50604e888f03106133ba576040805162461bcd60e51b815260206004820152600d60248201526c6578706f6e656e74203e20373760981b604482015290519081900360640190fd5b6133d2888f03600a0a8c6143b690919063ffffffff16565b9a50613496565b8d88039750604e881061341d5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b87600a0a8a8161342957fe5b049950604e8e1061346b5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b6134818e600a0a8c6143b690919063ffffffff16565b9a506134938b8b63ffffffff61440f16565b9a505b50989d9c50505050505050505050505050565b6035546000906001600160a01b031615806134d657506035546134d4906001600160a01b0316611f28565b155b156134e7576134e56000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561353757600080fd5b505af115801561354b573d6000803e3d6000fd5b505050506040513d602081101561356157600080fd5b50516034546001600160a01b0390811691161461361457603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156135c857600080fd5b505af11580156135dc573d6000803e3d6000fd5b505050506040513d60208110156135f257600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b60345460405163524f388960e01b81526020600482018181528551602484015285516001600160a01b039094169363524f388993879383926044909201919085019080838360005b8381101561367457818101518382015260200161365c565b50505050905090810190601f1680156136a15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156136c057600080fd5b505af1158015611642573d6000803e3d6000fd5b60608082600001518460000151016040519080825280601f01601f19166020018201604052801561370c576020820181803883390190505b509050600060208201905061372a8186602001518760000151614378565b8451602085015185516137409284019190614378565b509392505050565b6035546000906001600160a01b031615806137755750603554613773906001600160a01b0316611f28565b155b15613786576137846000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156137d657600080fd5b505af11580156137ea573d6000803e3d6000fd5b505050506040513d602081101561380057600080fd5b50516034546001600160a01b039081169116146138b357603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561386757600080fd5b505af115801561387b573d6000803e3d6000fd5b505050506040513d602081101561389157600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b60345460408051630bbceb3360e21b815260248101859052600481019182528651604482015286516000936001600160a01b031692632ef3accc928992889291829160649091019060208601908083838c5b8381101561391d578181015183820152602001613905565b50505050905090810190601f16801561394a5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561396a57600080fd5b505af115801561397e573d6000803e3d6000fd5b505050506040513d602081101561399457600080fd5b50519050670de0b6b3a76400003a8402018111156139b6575060009050612162565b60345460405163c51be90f60e01b8152600060048201818152606483018790526080602484019081528951608485015289516001600160a01b039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b83811015613a30578181015183820152602001613a18565b50505050905090810190601f168015613a5d5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015613a90578181015183820152602001613a78565b50505050905090810190601f168015613abd5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b158015613adf57600080fd5b505af1158015613af3573d6000803e3d6000fd5b50505050506040513d6020811015613b0a57600080fd5b505195945050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610752908490614469565b6060613b74603a54611f36565b6001600160a01b031663443dd2a46040518163ffffffff1660e01b815260040160006040518083038186803b158015613bac57600080fd5b505afa158015613bc0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613be957600080fd5b8101908080516040519392919084600160201b821115613c0857600080fd5b908301906020820185811115613c1d57600080fd5b82518660208202830111600160201b82111715613c3957600080fd5b82525081516020918201928201910280838360005b83811015613c66578181015183820152602001613c4e565b50505050905001604052505050905090565b600080613c98731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed611f28565b1115613cf757603580546001600160a01b031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81526a195d1a17db585a5b9b995d60aa1b6020820152613cef90614627565b5060016106b5565b6000613d1673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1611f28565b1115613d6e57603580546001600160a01b03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81526b6574685f726f707374656e3360a01b6020820152613cef90614627565b6000613d8d73b7a07bcf2ba2f2703b24c0691b5278999c59ac7e611f28565b1115613de257603580546001600160a01b03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981526832ba342fb5b7bb30b760b91b6020820152613cef90614627565b6000613e0173146500cfd35b22e4a392fe0adc06de1a1368ed48611f28565b1115613e5857603580546001600160a01b03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81526a6574685f72696e6b65627960a81b6020820152613cef90614627565b6000613e7773a2998efd205fb9d4b4963afb70778d6354ad3a41611f28565b1115613ecd57603580546001600160a01b03191673a2998efd205fb9d4b4963afb70778d6354ad3a4117905560408051808201909152600a8152696574685f676f65726c6960b01b6020820152613cef90614627565b6000613eec736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475611f28565b1115613f205750603580546001600160a01b031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47517905560016106b5565b6000613f3f7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf611f28565b1115613f735750603580546001600160a01b0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf17905560016106b5565b6000613f927351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa611f28565b1115613fc65750603580546001600160a01b0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa17905560016106b5565b50600090565b60008060008060008551604114613fed5750600093508392506124e7915050565b50505060208301516040840151606085015160001a601b81101561400f57601b015b8060ff16601b1415801561402757508060ff16601c14155b1561403c5750600093508392506124e7915050565b6140488782858561463a565b945094505050509250929050565b6000611537826000612bf8565b600080826040516020018082805190602001908083835b602083106140995780518252601f19909201916020918201910161407a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012090506040518080622530b760e91b81525060030190506040518091039020811415614103576001915050611525565b60408051622332b160e91b8152905190819003600301902081141561412c576002915050611525565b604080516226b0b960e91b81529051908190036003019020811415614155576003915050611525565b604080516220b83960e91b8152905190819003600301902081141561417e576004915050611525565b60408051624d617960e81b815290519081900360030190208114156141a7576005915050611525565b6040805162253ab760e91b815290519081900360030190208114156141d0576006915050611525565b6040805162129d5b60ea1b815290519081900360030190208114156141f9576007915050611525565b604080516241756760e81b81529051908190036003019020811415614222576008915050611525565b604080516205365760ec1b8152905190819003600301902081141561424b576009915050611525565b604080516213d8dd60ea1b8152905190819003600301902081141561427457600a915050611525565b60408051622737bb60e91b8152905190819003600301902081141561429d57600b915050611525565b604080516244656360e81b815290519081900360030190208114156142c657600c915050611525565b6040805162461bcd60e51b81526020600482015260116024820152700dcdee840c240ecc2d8d2c840dadedce8d607b1b604482015290519081900360640190fd5b61430f6147b8565b600061432d8560000151866020015186600001518760200151614677565b60208087018051918601919091528051820385528651905191925001811415614359576000855261436f565b8351835186519101900385528351810160208601525b50909392505050565b5b60208110614398578151835260209283019290910190601f1901614379565b905182516020929092036101000a6000190180199091169116179052565b6000826143c557506000611537565b828202828482816143d257fe5b04146121625760405162461bcd60e51b815260040180806020018281038252602181526020018061494a6021913960400191505060405180910390fd5b600082820183811015612162576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61447b826001600160a01b0316614734565b6144cc576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b6020831061450a5780518252601f1990920191602091820191016144eb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461456c576040519150601f19603f3d011682016040523d82523d6000602084013e614571565b606091505b5091509150816145c8576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115614621578080602001905160208110156145e457600080fd5b50516146215760405162461bcd60e51b815260040180806020018281038252602a81526020018061496b602a913960400191505060405180910390fd5b50505050565b805161197e9060369060208401906147d2565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b6000838186851161472557602085116146ea5783518251600019600860208990030260020a011991821690888a018890039083165b8281146146dc578186106146ca578a8a01965050505050505061472c565b506001909401805190949083166146ac565b85965050505050505061472c565b508383206000905b85880382116147235785832081811415614712578394505050505061472c565b5060019283019291909101906146f2565b505b5050508284015b949350505050565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061477b5782800160ff198235161785556147a8565b828001600101855582156147a8579182015b828111156147a857823582559160200191906001019061478d565b506147b4929150614840565b5090565b604051806040016040528060008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061481357805160ff19168380011785556147a8565b828001600101855582156147a8579182015b828111156147a8578251825591602001919060010190614825565b6106b591905b808211156147b4576000815560010161484656fe68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f6d2f646174612f70726963653f6673796d3d6d6f7265207468616e20373720646563696d616c2064696769747320706172736564000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000000000102030405060708090a0b0c0d0e0f10111213141516171819000000003f001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132334eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582027e38ed8a4a47b3d09fcb9cf924d14a84e4869cd745eb43b919921205fc49f6964736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a983710bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca" // DeployOracle deploys a new Ethereum contract, binding an instance of Oracle to it. func DeployOracle(auth *bind.TransactOpts, backend bind.ContractBackend, _resolver_ common.Address, _ens_ common.Address, _controllerNode_ [32]byte, _tokenWhitelistNode_ [32]byte) (common.Address, *types.Transaction, *Oracle, error) { diff --git a/pkg/bindings/tokenWhitelist.go b/pkg/bindings/tokenWhitelist.go index 3778cd07..8b50edc1 100644 --- a/pkg/bindings/tokenWhitelist.go +++ b/pkg/bindings/tokenWhitelist.go @@ -31,7 +31,7 @@ var ( const TokenWhitelistABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_oracleNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_stablecoinAddress_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"AddedExclusiveMethod\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"AddedMethodId\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_magnitude\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_loadable\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_redeemable\",\"type\":\"bool\"}],\"name\":\"AddedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"RemovedExclusiveMethod\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"RemovedMethodId\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"RemovedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_loadable\",\"type\":\"bool\"}],\"name\":\"UpdatedTokenLoadable\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_rate\",\"type\":\"uint256\"}],\"name\":\"UpdatedTokenRate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_redeemable\",\"type\":\"bool\"}],\"name\":\"UpdatedTokenRedeemable\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_tokens\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_symbols\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_magnitude\",\"type\":\"uint256[]\"},{\"internalType\":\"bool[]\",\"name\":\"_loadable\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"_redeemable\",\"type\":\"bool[]\"},{\"internalType\":\"uint256\",\"name\":\"_lastUpdate\",\"type\":\"uint256\"}],\"name\":\"addTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"getERC20RecipientAndAmount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getStablecoinInfo\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"getTokenInfo\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"isERC20MethodSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"isERC20MethodWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"oracleNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemableCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemableTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_tokens\",\"type\":\"address[]\"}],\"name\":\"removeTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_loadable\",\"type\":\"bool\"}],\"name\":\"setTokenLoadable\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_redeemable\",\"type\":\"bool\"}],\"name\":\"setTokenRedeemable\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"stablecoin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_rate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_updateDate\",\"type\":\"uint256\"}],\"name\":\"updateTokenRate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" // TokenWhitelistBin is the compiled bytecode used for deploying new contracts. -var TokenWhitelistBin = "0x60806040527f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034553480156200003557600080fd5b506040516200274538038062002745833981810160405260808110156200005b57600080fd5b508051602082015160408301516060909301519192909162000086846001600160e01b036200018516565b6200009a826001600160e01b036200029e16565b603a9290925550603980546001600160a01b0319166001600160a01b039092169190911790555060366020527f36aaa0d2a881446a5d284caf55fe779596f3dd15619675545d6094c8909139c2805460ff1990811660019081179092557fbdd45af1473e0dd27b6e035ccafb153373c61968247ba4b7c0e6c1c96496792f80548216831790557f877171c55a6bbc4aa0ea34a24de07dd3c5952b4a7d66df2b953f79c7955a122780548216831790556323b872dd60e01b6000527f04324ec27bf37ba85969616ff61c6c0e3939d6b141697b749b0be22765b298708054909116909117905562000364565b600054610100900460ff1680620001aa5750620001aa6001600160e01b036200035e16565b80620001b9575060005460ff16155b620001f65760405162461bcd60e51b815260040180806020018281038252602e81526020018062002717602e913960400191505060405180910390fd5b600054610100900460ff1615801562000222576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166200026c576040805162461bcd60e51b815260206004820152600b60248201526a0656e7352656720697320360ac1b604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b03841617905580156200029a576000805461ff00191690555b5050565b600054610100900460ff1680620002c35750620002c36001600160e01b036200035e16565b80620002d2575060005460ff16155b6200030f5760405162461bcd60e51b815260040180806020018281038252602e81526020018062002717602e913960400191505060405180910390fd5b600054610100900460ff161580156200033b576000805460ff1961ff0019909116610100171660011790555b8115620003485760348290555b80156200029a576000805461ff00191690555050565b303b1590565b6123a380620003746000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80636c3824ef116100a2578063996cba6811610071578063996cba6814610584578063afc72e93146105ba578063d545782e1461065b578063e2b4ce971461068d578063e9cbd8221461069557610116565b80636c3824ef146104bc5780637d73b2311461052a57806380cc0dda1461054e578063872773061461055657610116565b80633efec5e9116100e95780633efec5e9146103f0578063443dd2a4146103f857806344b049bc146104505780635d793a7d146104585780636a1744dc1461048657610116565b806313d5e8461461011b5780631d3a069f146101355780631f69565f1461017057806334c73edc14610240575b600080fd5b61012361069d565b60408051918252519081900360200190f35b61015c6004803603602081101561014b57600080fd5b50356001600160e01b0319166106a4565b604080519115158252519081900360200190f35b6101966004803603602081101561018657600080fd5b50356001600160a01b03166106c7565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b838110156101ff5781810151838201526020016101e7565b50505050905090810190601f16801561022c5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b6103ee600480360360c081101561025657600080fd5b810190602081018135600160201b81111561027057600080fd5b82018360208201111561028257600080fd5b803590602001918460208302840111600160201b831117156102a357600080fd5b919390929091602081019035600160201b8111156102c057600080fd5b8201836020820111156102d257600080fd5b803590602001918460208302840111600160201b831117156102f357600080fd5b919390929091602081019035600160201b81111561031057600080fd5b82018360208201111561032257600080fd5b803590602001918460208302840111600160201b8311171561034357600080fd5b919390929091602081019035600160201b81111561036057600080fd5b82018360208201111561037257600080fd5b803590602001918460208302840111600160201b8311171561039357600080fd5b919390929091602081019035600160201b8111156103b057600080fd5b8201836020820111156103c257600080fd5b803590602001918460208302840111600160201b831117156103e357600080fd5b9193509150356107c5565b005b610196610c57565b610400610d55565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043c578181015183820152602001610424565b505050509050019250505060405180910390f35b610400610db7565b6103ee6004803603604081101561046e57600080fd5b506001600160a01b0381351690602001351515610e85565b61015c6004803603604081101561049c57600080fd5b5080356001600160a01b031690602001356001600160e01b03191661107b565b6103ee600480360360208110156104d257600080fd5b810190602081018135600160201b8111156104ec57600080fd5b8201836020820111156104fe57600080fd5b803590602001918460208302840111600160201b8311171561051f57600080fd5b509092509050611102565b6105326113a5565b604080516001600160a01b039092168252519081900360200190f35b6101236113b4565b6103ee6004803603604081101561056c57600080fd5b506001600160a01b03813516906020013515156113ba565b6103ee6004803603606081101561059a57600080fd5b506001600160a01b038135811691602081013590911690604001356114f6565b610638600480360360408110156105d057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105fa57600080fd5b82018360208201111561060c57600080fd5b803590602001918460018302840111600160201b8311171561062d57600080fd5b5090925090506115a3565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6103ee6004803603606081101561067157600080fd5b506001600160a01b0381351690602081013590604001356118e7565b610123611a31565b610532611a37565b6038545b90565b6001600160e01b0319811660009081526036602052604090205460ff165b919050565b6001600160a01b038116600090815260356020908152604080832060018082015460028084015460038501546004860154865488516101009782161588026000190190911694909404601f81018a90048a0285018a019098528784526060999889988998899889988998929788979196909560ff8084169694840481169562010000909404169391929189918301828280156107a45780601f10610779576101008083540402835291602001916107a4565b820191906000526020600020905b81548152906001019060200180831161078757829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b6107ce33611a46565b610818576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b898814801561082657508986145b801561083157508984145b801561083c57508984145b61088d576040805162461bcd60e51b815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b60005b8a811015610c4957603560008d8d848181106108a857fe5b602090810292909201356001600160a01b03168352508101919091526040016000206003015460ff1615610923576040805162461bcd60e51b815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b60606109486109438c8c8581811061093757fe5b90506020020135611ada565b611b06565b90506040518060e001604052808281526020018a8a8581811061096757fe5b9050602002013581526020016000815260200160011515815260200188888581811061098f57fe5b905060200201351515151581526020018686858181106109ab57fe5b9050602002013515151515815260200184815250603560008f8f868181106109cf57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000019080519060200190610a1b929190612202565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560378d8d84818110610a9257fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b039590920293909301359390931692909217905550848483818110610ada57fe5b9050602002013515610afe57603854610afa90600163ffffffff611b5d16565b6038555b7f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e85818110610b2c57fe5b905060200201356001600160a01b0316838c8c87818110610b4957fe5b905060200201358b8b88818110610b5c57fe5b9050602002013515158a8a89818110610b7157fe5b90506020020135151560405180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610c01578181015183820152602001610be9565b50505050905090810190601f168015610c2e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a150600101610890565b505050505050505050505050565b6039546001600160a01b0316600090815260356020908152604080832060018082015460028084015460038501546004860154865488516101009782161588026000190190911694909404601f81018a90048a0285018a019098528784526060999889988998899889988998929788979196909560ff808416969484048116956201000090940416939192918991830182828015610d365780601f10610d0b57610100808354040283529160200191610d36565b820191906000526020600020905b815481529060010190602001808311610d1957829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606037805480602002602001604051908101604052809291908181526020018280548015610dad57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d8f575b5050505050905090565b606080603854604051908082528060200260200182016040528015610de6578160200160208202803883390190505b5090506000805b603754811015610e7d57600060378281548110610e0657fe5b60009182526020808320909101546001600160a01b0316808352603590915260409091206003015490915060ff620100009091041615610e745780848481518110610e4d57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001830192505b50600101610ded565b509091505090565b610e8e33611a46565b610ed8576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff16610f48576040805162461bcd60e51b815260206004820152601f60248201527f72656465656d61626c653a20746f6b656e206e6f7420617661696c61626c6500604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff620100009091041615158115151415610fc6576040805162461bcd60e51b815260206004820152601b60248201527f72656465656d61626c653a206e6f207374617465206368616e67650000000000604482015290519081900360640190fd5b8015610fe857603854610fe090600163ffffffff611b5d16565b603855611000565b603854610ffc90600163ffffffff611bbe16565b6038555b6001600160a01b038216600081815260356020908152604091829020600301805485151562010000810262ff0000199092169190911790915582513381529182019390935280820192909252517fcaa111d70d53608b9c8e3278c634595491de54f572a17a297dedad20f517039d9181900360600190a15050565b6001600160a01b03821660009081526035602052604081206003015460ff166110e0576040805162461bcd60e51b81526020600482015260126024820152713737b716b2bc34b9ba34b733903a37b5b2b760711b604482015290519081900360640190fd5b506001600160e01b03191660009081526036602052604090205460ff16919050565b61110b33611a46565b611155576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b60005b818110156113a057600083838381811061116e57fe5b602090810292909201356001600160a01b0316600081815260359093526040909220600301549192505060ff166111e5576040805162461bcd60e51b8152602060048201526016602482015275746f6b656e206973206e6f7420617661696c61626c6560501b604482015290519081900360640190fd5b6001600160a01b03811660009081526035602052604090206003015462010000900460ff16156112275760385461122390600163ffffffff611bbe16565b6038555b6001600160a01b03811660009081526035602052604081209061124a8282612280565b506000600182018190556002820181905560038201805462ffffff1916905560049091018190555b60375461128690600163ffffffff611bbe16565b81101561133f57816001600160a01b0316603782815481106112a457fe5b6000918252602090912001546001600160a01b0316141561133757603780546112d490600163ffffffff611bbe16565b815481106112de57fe5b600091825260209091200154603780546001600160a01b03909216918390811061130457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061133f565b600101611272565b5060378054906113539060001983016122c7565b50604080513381526001600160a01b038316602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a150600101611158565b505050565b6033546001600160a01b031690565b603a5490565b6113c333611a46565b61140d576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff1661147d576040805162461bcd60e51b815260206004820181905260248201527f6c6f616461626c653a20746f6b656e206973206e6f7420617661696c61626c65604482015290519081900360640190fd5b6001600160a01b0382166000818152603560209081526040918290206003018054851515610100810261ff00199092169190911790915582513381529182019390935280820192909252517f0e086282e8e406857ef1dce65e04a192ad8405e48484524cb2ddbf28e5d84eec9181900360600190a15050565b6114ff33611a46565b611549576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b611554838383611c1b565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008060248310156115fc576040805162461bcd60e51b815260206004820181905260248201527f6e6f7420656e6f756768206d6574686f642d656e636f64696e67206279746573604482015290519081900360640190fd5b6000611648600086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611ce5169050565b9050611654868261107b565b61169a576040805162461bcd60e51b81526020600482015260126024820152711d5b9cdd5c1c1bdc9d1959081b595d1a1bd960721b604482015290519081900360640190fd5b6001600160e01b03198116630852cd8d60e31b141561170857856116fe600487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b92509250506118df565b6001600160e01b031981166323b872dd60e01b141561180b576064841015611777576040805162461bcd60e51b815260206004820181905260248201527f6e6f7420656e6f756768206461746120666f72207472616e7366657246726f6d604482015290519081900360640190fd5b6117c1603086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d77169050565b6116fe604487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b604484101561184b5760405162461bcd60e51b81526004018080602001828103825260258152602001806123206025913960400191505060405180910390fd5b611895601086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d77169050565b6116fe602487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b935093915050565b60006118f4603a54611df9565b90506118ff33611a46565b806119125750336001600160a01b038216145b61195c576040805162461bcd60e51b815260206004820152601660248201527532b4ba3432b91037b930b1b6329037b91030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03841660009081526035602052604090206003015460ff166119c5576040805162461bcd60e51b8152602060048201526016602482015275746f6b656e206973206e6f7420617661696c61626c6560501b604482015290519081900360640190fd5b6001600160a01b03841660008181526035602090815260409182902060028101879055600401859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60345490565b6039546001600160a01b031690565b6000611a53603454611df9565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611aa857600080fd5b505afa158015611abc573d6000803e3d6000fd5b505050506040513d6020811015611ad257600080fd5b505192915050565b611ae26122eb565b6040516020810160405282815280602083015250611aff82611f1a565b8152919050565b60608082600001516040519080825280601f01601f191660200182016040528015611b38576020820181803883390190505b5090506000602082019050611b568185602001518660000151611fb3565b5092915050565b600082820183811015611bb7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082821115611c15576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b038216611ccb576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114611c74576040519150601f19603f3d011682016040523d82523d6000602084013e611c79565b606091505b5050905080611cc5576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506113a0565b6113a06001600160a01b038316848363ffffffff611ff116565b6000611cf882600463ffffffff611b5d16565b83511015611d44576040805162461bcd60e51b8152602060048201526014602482015273736c6963696e67206f7574206f662072616e676560601b604482015290519081900360640190fd5b600080611d5884602063ffffffff611b5d16565b90940151949350505050565b6000611cf882602063ffffffff611b5d16565b6000611d8a82601463ffffffff611b5d16565b83511015611dd6576040805162461bcd60e51b8152602060048201526014602482015273736c6963696e67206f7574206f662072616e676560601b604482015290519081900360640190fd5b600080611dea84602063ffffffff611b5d16565b9094015160601c949350505050565b6033546000906001600160a01b0316611e59576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015611ea557600080fd5b505afa158015611eb9573d6000803e3d6000fd5b505050506040513d6020811015611ecf57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015611aa857600080fd5b60008082611f2c5760009150506106c2565b6fffffffffffffffffffffffffffffffff8316611f5057601001600160801b830492505b67ffffffffffffffff8316611f715760080168010000000000000000830492505b63ffffffff8316611f8957600401600160201b830492505b61ffff8316611f9e5760020162010000830492505b60ff8316611faa576001015b60200392915050565b5b60208110611fd3578151835260209283019290910190601f1901611fb4565b905182516020929092036101000a6000190180199091169116179052565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113a0908490612050826001600160a01b03166121fc565b6120a1576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106120df5780518252601f1990920191602091820191016120c0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612141576040519150601f19603f3d011682016040523d82523d6000602084013e612146565b606091505b50915091508161219d576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156121f6578080602001905160208110156121b957600080fd5b50516121f65760405162461bcd60e51b815260040180806020018281038252602a815260200180612345602a913960400191505060405180910390fd5b50505050565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061224357805160ff1916838001178555612270565b82800160010185558215612270579182015b82811115612270578251825591602001919060010190612255565b5061227c929150612305565b5090565b50805460018160011615610100020316600290046000825580601f106122a657506122c4565b601f0160209004906000526020600020908101906122c49190612305565b50565b8154818355818111156113a0576000838152602090206113a0918101908301612305565b604051806040016040528060008152602001600081525090565b6106a191905b8082111561227c576000815560010161230b56fe6e6f7420656e6f756768206461746120666f72207472616e736665722f61707070726f76655361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582084ec3cf1de16285da0592be364edf2a70b1d669742be97a7ecae9b78930f2a0664736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var TokenWhitelistBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034553480156200005657600080fd5b506040516200272c3803806200272c833981810160405260808110156200007c57600080fd5b5080516020820151604083015160609093015191929091620000a7846001600160e01b03620001a616565b620000bb826001600160e01b036200028616565b603a9290925550603980546001600160a01b0319166001600160a01b039092169190911790555060366020527f36aaa0d2a881446a5d284caf55fe779596f3dd15619675545d6094c8909139c2805460ff1990811660019081179092557fbdd45af1473e0dd27b6e035ccafb153373c61968247ba4b7c0e6c1c96496792f80548216831790557f877171c55a6bbc4aa0ea34a24de07dd3c5952b4a7d66df2b953f79c7955a122780548216831790556323b872dd60e01b6000527f04324ec27bf37ba85969616ff61c6c0e3939d6b141697b749b0be22765b29870805490911690911790556200034b565b600054610100900460ff1680620001cb5750620001cb6001600160e01b036200034516565b80620001da575060005460ff16155b620002175760405162461bcd60e51b815260040180806020018281038252602e815260200180620026fe602e913960400191505060405180910390fd5b600054610100900460ff1615801562000243576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200026f57603380546001600160a01b0319166001600160a01b0384161790555b801562000282576000805461ff00191690555b5050565b600054610100900460ff1680620002ab5750620002ab6001600160e01b036200034516565b80620002ba575060005460ff16155b620002f75760405162461bcd60e51b815260040180806020018281038252602e815260200180620026fe602e913960400191505060405180910390fd5b600054610100900460ff1615801562000323576000805460ff1961ff0019909116610100171660011790555b81156200026f576034829055801562000282576000805461ff00191690555050565b303b1590565b6123a3806200035b6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80636c3824ef116100a2578063996cba6811610071578063996cba6814610584578063afc72e93146105ba578063d545782e1461065b578063e2b4ce971461068d578063e9cbd8221461069557610116565b80636c3824ef146104bc5780637d73b2311461052a57806380cc0dda1461054e578063872773061461055657610116565b80633efec5e9116100e95780633efec5e9146103f0578063443dd2a4146103f857806344b049bc146104505780635d793a7d146104585780636a1744dc1461048657610116565b806313d5e8461461011b5780631d3a069f146101355780631f69565f1461017057806334c73edc14610240575b600080fd5b61012361069d565b60408051918252519081900360200190f35b61015c6004803603602081101561014b57600080fd5b50356001600160e01b0319166106a4565b604080519115158252519081900360200190f35b6101966004803603602081101561018657600080fd5b50356001600160a01b03166106c7565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b838110156101ff5781810151838201526020016101e7565b50505050905090810190601f16801561022c5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b6103ee600480360360c081101561025657600080fd5b810190602081018135600160201b81111561027057600080fd5b82018360208201111561028257600080fd5b803590602001918460208302840111600160201b831117156102a357600080fd5b919390929091602081019035600160201b8111156102c057600080fd5b8201836020820111156102d257600080fd5b803590602001918460208302840111600160201b831117156102f357600080fd5b919390929091602081019035600160201b81111561031057600080fd5b82018360208201111561032257600080fd5b803590602001918460208302840111600160201b8311171561034357600080fd5b919390929091602081019035600160201b81111561036057600080fd5b82018360208201111561037257600080fd5b803590602001918460208302840111600160201b8311171561039357600080fd5b919390929091602081019035600160201b8111156103b057600080fd5b8201836020820111156103c257600080fd5b803590602001918460208302840111600160201b831117156103e357600080fd5b9193509150356107c5565b005b610196610c57565b610400610d55565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043c578181015183820152602001610424565b505050509050019250505060405180910390f35b610400610db7565b6103ee6004803603604081101561046e57600080fd5b506001600160a01b0381351690602001351515610e85565b61015c6004803603604081101561049c57600080fd5b5080356001600160a01b031690602001356001600160e01b03191661107b565b6103ee600480360360208110156104d257600080fd5b810190602081018135600160201b8111156104ec57600080fd5b8201836020820111156104fe57600080fd5b803590602001918460208302840111600160201b8311171561051f57600080fd5b509092509050611102565b6105326113a5565b604080516001600160a01b039092168252519081900360200190f35b6101236113b4565b6103ee6004803603604081101561056c57600080fd5b506001600160a01b03813516906020013515156113ba565b6103ee6004803603606081101561059a57600080fd5b506001600160a01b038135811691602081013590911690604001356114f6565b610638600480360360408110156105d057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105fa57600080fd5b82018360208201111561060c57600080fd5b803590602001918460018302840111600160201b8311171561062d57600080fd5b5090925090506115a3565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6103ee6004803603606081101561067157600080fd5b506001600160a01b0381351690602081013590604001356118e7565b610123611a31565b610532611a37565b6038545b90565b6001600160e01b0319811660009081526036602052604090205460ff165b919050565b6001600160a01b038116600090815260356020908152604080832060018082015460028084015460038501546004860154865488516101009782161588026000190190911694909404601f81018a90048a0285018a019098528784526060999889988998899889988998929788979196909560ff8084169694840481169562010000909404169391929189918301828280156107a45780601f10610779576101008083540402835291602001916107a4565b820191906000526020600020905b81548152906001019060200180831161078757829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b6107ce33611a46565b610818576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b898814801561082657508986145b801561083157508984145b801561083c57508984145b61088d576040805162461bcd60e51b815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b60005b8a811015610c4957603560008d8d848181106108a857fe5b602090810292909201356001600160a01b03168352508101919091526040016000206003015460ff1615610923576040805162461bcd60e51b815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b60606109486109438c8c8581811061093757fe5b90506020020135611ada565b611b06565b90506040518060e001604052808281526020018a8a8581811061096757fe5b9050602002013581526020016000815260200160011515815260200188888581811061098f57fe5b905060200201351515151581526020018686858181106109ab57fe5b9050602002013515151515815260200184815250603560008f8f868181106109cf57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000019080519060200190610a1b929190612202565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560378d8d84818110610a9257fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b039590920293909301359390931692909217905550848483818110610ada57fe5b9050602002013515610afe57603854610afa90600163ffffffff611b5d16565b6038555b7f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e85818110610b2c57fe5b905060200201356001600160a01b0316838c8c87818110610b4957fe5b905060200201358b8b88818110610b5c57fe5b9050602002013515158a8a89818110610b7157fe5b90506020020135151560405180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610c01578181015183820152602001610be9565b50505050905090810190601f168015610c2e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a150600101610890565b505050505050505050505050565b6039546001600160a01b0316600090815260356020908152604080832060018082015460028084015460038501546004860154865488516101009782161588026000190190911694909404601f81018a90048a0285018a019098528784526060999889988998899889988998929788979196909560ff808416969484048116956201000090940416939192918991830182828015610d365780601f10610d0b57610100808354040283529160200191610d36565b820191906000526020600020905b815481529060010190602001808311610d1957829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606037805480602002602001604051908101604052809291908181526020018280548015610dad57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d8f575b5050505050905090565b606080603854604051908082528060200260200182016040528015610de6578160200160208202803883390190505b5090506000805b603754811015610e7d57600060378281548110610e0657fe5b60009182526020808320909101546001600160a01b0316808352603590915260409091206003015490915060ff620100009091041615610e745780848481518110610e4d57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001830192505b50600101610ded565b509091505090565b610e8e33611a46565b610ed8576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff16610f48576040805162461bcd60e51b815260206004820152601f60248201527f72656465656d61626c653a20746f6b656e206e6f7420617661696c61626c6500604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff620100009091041615158115151415610fc6576040805162461bcd60e51b815260206004820152601b60248201527f72656465656d61626c653a206e6f207374617465206368616e67650000000000604482015290519081900360640190fd5b8015610fe857603854610fe090600163ffffffff611b5d16565b603855611000565b603854610ffc90600163ffffffff611bbe16565b6038555b6001600160a01b038216600081815260356020908152604091829020600301805485151562010000810262ff0000199092169190911790915582513381529182019390935280820192909252517fcaa111d70d53608b9c8e3278c634595491de54f572a17a297dedad20f517039d9181900360600190a15050565b6001600160a01b03821660009081526035602052604081206003015460ff166110e0576040805162461bcd60e51b81526020600482015260126024820152713737b716b2bc34b9ba34b733903a37b5b2b760711b604482015290519081900360640190fd5b506001600160e01b03191660009081526036602052604090205460ff16919050565b61110b33611a46565b611155576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b60005b818110156113a057600083838381811061116e57fe5b602090810292909201356001600160a01b0316600081815260359093526040909220600301549192505060ff166111e5576040805162461bcd60e51b8152602060048201526016602482015275746f6b656e206973206e6f7420617661696c61626c6560501b604482015290519081900360640190fd5b6001600160a01b03811660009081526035602052604090206003015462010000900460ff16156112275760385461122390600163ffffffff611bbe16565b6038555b6001600160a01b03811660009081526035602052604081209061124a8282612280565b506000600182018190556002820181905560038201805462ffffff1916905560049091018190555b60375461128690600163ffffffff611bbe16565b81101561133f57816001600160a01b0316603782815481106112a457fe5b6000918252602090912001546001600160a01b0316141561133757603780546112d490600163ffffffff611bbe16565b815481106112de57fe5b600091825260209091200154603780546001600160a01b03909216918390811061130457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061133f565b600101611272565b5060378054906113539060001983016122c7565b50604080513381526001600160a01b038316602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a150600101611158565b505050565b6033546001600160a01b031690565b603a5490565b6113c333611a46565b61140d576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff1661147d576040805162461bcd60e51b815260206004820181905260248201527f6c6f616461626c653a20746f6b656e206973206e6f7420617661696c61626c65604482015290519081900360640190fd5b6001600160a01b0382166000818152603560209081526040918290206003018054851515610100810261ff00199092169190911790915582513381529182019390935280820192909252517f0e086282e8e406857ef1dce65e04a192ad8405e48484524cb2ddbf28e5d84eec9181900360600190a15050565b6114ff33611a46565b611549576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b611554838383611c1b565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008060248310156115fc576040805162461bcd60e51b815260206004820181905260248201527f6e6f7420656e6f756768206d6574686f642d656e636f64696e67206279746573604482015290519081900360640190fd5b6000611648600086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611ce5169050565b9050611654868261107b565b61169a576040805162461bcd60e51b81526020600482015260126024820152711d5b9cdd5c1c1bdc9d1959081b595d1a1bd960721b604482015290519081900360640190fd5b6001600160e01b03198116630852cd8d60e31b141561170857856116fe600487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b92509250506118df565b6001600160e01b031981166323b872dd60e01b141561180b576064841015611777576040805162461bcd60e51b815260206004820181905260248201527f6e6f7420656e6f756768206461746120666f72207472616e7366657246726f6d604482015290519081900360640190fd5b6117c1603086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d77169050565b6116fe604487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b604484101561184b5760405162461bcd60e51b81526004018080602001828103825260258152602001806123206025913960400191505060405180910390fd5b611895601086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d77169050565b6116fe602487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b935093915050565b60006118f4603a54611df9565b90506118ff33611a46565b806119125750336001600160a01b038216145b61195c576040805162461bcd60e51b815260206004820152601660248201527532b4ba3432b91037b930b1b6329037b91030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03841660009081526035602052604090206003015460ff166119c5576040805162461bcd60e51b8152602060048201526016602482015275746f6b656e206973206e6f7420617661696c61626c6560501b604482015290519081900360640190fd5b6001600160a01b03841660008181526035602090815260409182902060028101879055600401859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60345490565b6039546001600160a01b031690565b6000611a53603454611df9565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611aa857600080fd5b505afa158015611abc573d6000803e3d6000fd5b505050506040513d6020811015611ad257600080fd5b505192915050565b611ae26122eb565b6040516020810160405282815280602083015250611aff82611f1a565b8152919050565b60608082600001516040519080825280601f01601f191660200182016040528015611b38576020820181803883390190505b5090506000602082019050611b568185602001518660000151611fb3565b5092915050565b600082820183811015611bb7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082821115611c15576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b038216611ccb576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114611c74576040519150601f19603f3d011682016040523d82523d6000602084013e611c79565b606091505b5050905080611cc5576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506113a0565b6113a06001600160a01b038316848363ffffffff611ff116565b6000611cf882600463ffffffff611b5d16565b83511015611d44576040805162461bcd60e51b8152602060048201526014602482015273736c6963696e67206f7574206f662072616e676560601b604482015290519081900360640190fd5b600080611d5884602063ffffffff611b5d16565b90940151949350505050565b6000611cf882602063ffffffff611b5d16565b6000611d8a82601463ffffffff611b5d16565b83511015611dd6576040805162461bcd60e51b8152602060048201526014602482015273736c6963696e67206f7574206f662072616e676560601b604482015290519081900360640190fd5b600080611dea84602063ffffffff611b5d16565b9094015160601c949350505050565b6033546000906001600160a01b0316611e59576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015611ea557600080fd5b505afa158015611eb9573d6000803e3d6000fd5b505050506040513d6020811015611ecf57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015611aa857600080fd5b60008082611f2c5760009150506106c2565b6fffffffffffffffffffffffffffffffff8316611f5057601001600160801b830492505b67ffffffffffffffff8316611f715760080168010000000000000000830492505b63ffffffff8316611f8957600401600160201b830492505b61ffff8316611f9e5760020162010000830492505b60ff8316611faa576001015b60200392915050565b5b60208110611fd3578151835260209283019290910190601f1901611fb4565b905182516020929092036101000a6000190180199091169116179052565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113a0908490612050826001600160a01b03166121fc565b6120a1576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106120df5780518252601f1990920191602091820191016120c0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612141576040519150601f19603f3d011682016040523d82523d6000602084013e612146565b606091505b50915091508161219d576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156121f6578080602001905160208110156121b957600080fd5b50516121f65760405162461bcd60e51b815260040180806020018281038252602a815260200180612345602a913960400191505060405180910390fd5b50505050565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061224357805160ff1916838001178555612270565b82800160010185558215612270579182015b82811115612270578251825591602001919060010190612255565b5061227c929150612305565b5090565b50805460018160011615610100020316600290046000825580601f106122a657506122c4565b601f0160209004906000526020600020908101906122c49190612305565b50565b8154818355818111156113a0576000838152602090206113a0918101908301612305565b604051806040016040528060008152602001600081525090565b6106a191905b8082111561227c576000815560010161230b56fe6e6f7420656e6f756768206461746120666f72207472616e736665722f61707070726f76655361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a723158206a22a1e753419487d17667b70ef1d246ac344e30cd9e3cd178d1bec37d030b8d64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployTokenWhitelist deploys a new Ethereum contract, binding an instance of TokenWhitelist to it. func DeployTokenWhitelist(auth *bind.TransactOpts, backend bind.ContractBackend, _ens_ common.Address, _oracleNode_ [32]byte, _controllerNode_ [32]byte, _stablecoinAddress_ common.Address) (common.Address, *types.Transaction, *TokenWhitelist, error) { diff --git a/pkg/bindings/wallet.go b/pkg/bindings/wallet.go index 66f8bc12..00c15f51 100644 --- a/pkg/bindings/wallet.go +++ b/pkg/bindings/wallet.go @@ -31,7 +31,7 @@ var ( const WalletABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"AddedToWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_assets\",\"type\":\"address[]\"}],\"name\":\"BulkTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"CancelledWhitelistAddition\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"CancelledWhitelistRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_returndata\",\"type\":\"bytes\"}],\"name\":\"ExecutedRelayedTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_returndata\",\"type\":\"bytes\"}],\"name\":\"ExecutedTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_currentNonce\",\"type\":\"uint256\"}],\"name\":\"IncreasedRelayNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"LoadedTokenCard\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_locked\",\"type\":\"address\"}],\"name\":\"LockedOwnership\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"RemovedFromWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SetGasTopUpLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SetLoadLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SetSpendLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SubmittedGasTopUpLimitUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SubmittedLoadLimitUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SubmittedSpendLimitUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"SubmittedWhitelistAddition\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"SubmittedWhitelistRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ToppedUpGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Transferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"TransferredOwnership\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"UpdatedAvailableLimit\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"WALLET_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_transactionBatch\",\"type\":\"bytes\"}],\"name\":\"batchExecuteTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_assets\",\"type\":\"address[]\"}],\"name\":\"bulkTransfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"calculateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"cancelWhitelistAddition\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"cancelWhitelistRemoval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmGasTopUpLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmLoadLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmSpendLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"confirmWhitelistAddition\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"confirmWhitelistRemoval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"convertToEther\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"convertToStablecoin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"executeRelayedTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitControllerConfirmationRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitPending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"increaseRelayNonce\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_owner_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_transferable_\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tokenWhitelistNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_licenceNode_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_spendLimit_\",\"type\":\"uint256\"}],\"name\":\"initializeWallet\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isSetWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isTransferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hashedData\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"licenceNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitControllerConfirmationRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitPending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"loadTokenCard\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingWhitelistAddition\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingWhitelistRemoval\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"relayNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setGasTopUpLimit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setLoadLimit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setSpendLimit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"setWhitelist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitControllerConfirmationRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitPending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitGasTopUpLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitLoadLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitSpendLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"submitWhitelistAddition\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"submitWhitelistRemoval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"submittedWhitelistAddition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"submittedWhitelistRemoval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"topUpGas\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_transferable\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"whitelistArray\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelistMap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" // WalletBin is the compiled bytecode used for deploying new contracts. -var WalletBin = "0x60806040527f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d589369760345534801561003457600080fd5b50615e1a80620000456000396000f3fe6080604052600436106103a25760003560e01c80637fd004fa116101e7578063cc0e7e561161010d578063e61c51ca116100a0578063f41c43191161006f578063f41c431914611114578063f42176481461113e578063f776f518146111b9578063f8b2cb4f146111ce576103a2565b8063e61c51ca1461105d578063eadd3cea14611087578063f36febda146110b1578063f40b51f8146110ea576103a2565b8063d251fefc116100dc578063d251fefc14610ff4578063da84b1ed1461101e578063de212bf314611033578063e2b4ce9714611048576103a2565b8063cc0e7e5614610ef2578063cccdc55614610f07578063cd7958dd14610f1c578063ce0b5bd514610fca576103a2565b8063b221f31611610185578063be40ba7911610154578063be40ba7914610e5b578063beabacc814610e70578063c4856cd914610eb3578063cbd2ac6814610ec8576103a2565b8063b221f31614610da8578063b242e53414610dd2578063b87e21ef14610e0d578063bcb8b74a14610e46576103a2565b806390e690c7116101c157806390e690c714610cb85780639b0dfd2714610ccd578063aaf1fc6214610ce2578063ab20599314610d93576103a2565b80637fd004fa14610c13578063877337b014610c8e5780638da5cb5b14610ca3576103a2565b80633a43199f116102cc5780635d2362a81161026a57806374624c551161023957806374624c5514610b8e578063747c31d614610bb85780637d73b23114610bcd5780637d7d004614610bfe576103a2565b80635d2362a814610a8e5780636137d67014610aa357806369efdfc014610b1e578063715018a614610b79576103a2565b80633f579f42116102a65780633f579f42146108b757806346efe0ed1461097d57806347b55a9d14610a4f5780635adc02ab14610a64576103a2565b80633a43199f146108375780633bfec254146108635780633c672eb71461088d576103a2565b80631efd0299116103445780632587a6a2116103135780632587a6a21461077557806326d05ab21461078a578063294f40251461079f57806332531c3c14610804576103a2565b80631efd02991461065657806320c13b0b1461066b5780632121dc751461073657806321ce918d1461074b576103a2565b8063100f23fd11610380578063100f23fd146104425780631127b57e1461046c5780631626ba7e146104f65780631aa21fba146105cb576103a2565b806301ffc9a7146103a7578063027ef3eb146103ef5780630f3a85d814610416575b600080fd5b3480156103b357600080fd5b506103db600480360360208110156103ca57600080fd5b50356001600160e01b031916611201565b604080519115158252519081900360200190f35b3480156103fb57600080fd5b5061040461121b565b60408051918252519081900360200190f35b34801561042257600080fd5b506104406004803603602081101561043957600080fd5b5035611222565b005b34801561044e57600080fd5b506104406004803603602081101561046557600080fd5b503561132e565b34801561047857600080fd5b506104816114d3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104bb5781810151838201526020016104a3565b50505050905090810190601f1680156104e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561050257600080fd5b506105ae6004803603604081101561051957600080fd5b81359190810190604081016020820135600160201b81111561053a57600080fd5b82018360208201111561054c57600080fd5b803590602001918460018302840111600160201b8311171561056d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506114f4945050505050565b604080516001600160e01b03199092168252519081900360200190f35b3480156105d757600080fd5b50610440600480360360408110156105ee57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561061857600080fd5b82018360208201111561062a57600080fd5b803590602001918460208302840111600160201b8311171561064b57600080fd5b509092509050611569565b34801561066257600080fd5b506104046116ee565b34801561067757600080fd5b506105ae6004803603604081101561068e57600080fd5b810190602081018135600160201b8111156106a857600080fd5b8201836020820111156106ba57600080fd5b803590602001918460018302840111600160201b831117156106db57600080fd5b919390929091602081019035600160201b8111156106f857600080fd5b82018360208201111561070a57600080fd5b803590602001918460018302840111600160201b8311171561072b57600080fd5b5090925090506116ff565b34801561074257600080fd5b506103db6117d4565b34801561075757600080fd5b506104406004803603602081101561076e57600080fd5b50356117e4565b34801561078157600080fd5b50610404611882565b34801561079657600080fd5b506103db611888565b3480156107ab57600080fd5b506107b4611891565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156107f05781810151838201526020016107d8565b505050509050019250505060405180910390f35b34801561081057600080fd5b506103db6004803603602081101561082757600080fd5b50356001600160a01b03166118f3565b6104406004803603604081101561084d57600080fd5b506001600160a01b038135169060200135611908565b34801561086f57600080fd5b506104406004803603602081101561088657600080fd5b5035611b46565b34801561089957600080fd5b50610440600480360360208110156108b057600080fd5b5035611c3e565b3480156108c357600080fd5b50610481600480360360608110156108da57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561090957600080fd5b82018360208201111561091b57600080fd5b803590602001918460018302840111600160201b8311171561093c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611ce4945050505050565b34801561098957600080fd5b50610440600480360360608110156109a057600080fd5b81359190810190604081016020820135600160201b8111156109c157600080fd5b8201836020820111156109d357600080fd5b803590602001918460018302840111600160201b831117156109f457600080fd5b919390929091602081019035600160201b811115610a1157600080fd5b820183602082011115610a2357600080fd5b803590602001918460018302840111600160201b83111715610a4457600080fd5b5090925090506121db565b348015610a5b57600080fd5b506107b461251c565b348015610a7057600080fd5b5061044060048036036020811015610a8757600080fd5b503561257c565b348015610a9a57600080fd5b5061040461284c565b348015610aaf57600080fd5b5061044060048036036020811015610ac657600080fd5b810190602081018135600160201b811115610ae057600080fd5b820183602082011115610af257600080fd5b803590602001918460208302840111600160201b83111715610b1357600080fd5b509092509050612858565b348015610b2a57600080fd5b50610440600480360360e0811015610b4157600080fd5b506001600160a01b03813581169160208101351515916040820135169060608101359060808101359060a08101359060c00135612a7e565b348015610b8557600080fd5b50610440612b62565b348015610b9a57600080fd5b5061044060048036036020811015610bb157600080fd5b5035612c60565b348015610bc457600080fd5b50610404612d64565b348015610bd957600080fd5b50610be2612d6a565b604080516001600160a01b039092168252519081900360200190f35b348015610c0a57600080fd5b50610404612d79565b348015610c1f57600080fd5b5061044060048036036020811015610c3657600080fd5b810190602081018135600160201b811115610c5057600080fd5b820183602082011115610c6257600080fd5b803590602001918460208302840111600160201b83111715610c8357600080fd5b509092509050612d85565b348015610c9a57600080fd5b506104046130c7565b348015610caf57600080fd5b50610be26130cd565b348015610cc457600080fd5b506104406130dc565b348015610cd957600080fd5b50610404613139565b348015610cee57600080fd5b5061044060048036036020811015610d0557600080fd5b810190602081018135600160201b811115610d1f57600080fd5b820183602082011115610d3157600080fd5b803590602001918460018302840111600160201b83111715610d5257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061313f945050505050565b348015610d9f57600080fd5b506103db613272565b348015610db457600080fd5b5061044060048036036020811015610dcb57600080fd5b503561327b565b348015610dde57600080fd5b5061044060048036036040811015610df557600080fd5b506001600160a01b038135169060200135151561336b565b348015610e1957600080fd5b5061040460048036036040811015610e3057600080fd5b506001600160a01b038135169060200135613525565b348015610e5257600080fd5b506103db6135b5565b348015610e6757600080fd5b506103db6135be565b348015610e7c57600080fd5b5061044060048036036060811015610e9357600080fd5b506001600160a01b038135811691602081013590911690604001356135cd565b348015610ebf57600080fd5b50610404613757565b348015610ed457600080fd5b5061044060048036036020811015610eeb57600080fd5b503561375d565b348015610efe57600080fd5b50610404613ada565b348015610f1357600080fd5b50610404613ae0565b348015610f2857600080fd5b5061040460048036036020811015610f3f57600080fd5b810190602081018135600160201b811115610f5957600080fd5b820183602082011115610f6b57600080fd5b803590602001918460208302840111600160201b83111715610f8c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613ae6945050505050565b348015610fd657600080fd5b5061044060048036036020811015610fed57600080fd5b5035613b40565b34801561100057600080fd5b50610be26004803603602081101561101757600080fd5b5035613ce9565b34801561102a57600080fd5b50610404613d10565b34801561103f57600080fd5b506103db613d16565b34801561105457600080fd5b50610404613d24565b34801561106957600080fd5b506104406004803603602081101561108057600080fd5b5035613d2a565b34801561109357600080fd5b50610440600480360360208110156110aa57600080fd5b5035613e74565b3480156110bd57600080fd5b50610404600480360360408110156110d457600080fd5b506001600160a01b038135169060200135613ecd565b3480156110f657600080fd5b506104406004803603602081101561110d57600080fd5b5035614080565b34801561112057600080fd5b506104406004803603602081101561113757600080fd5b50356140d9565b34801561114a57600080fd5b506104406004803603602081101561116157600080fd5b810190602081018135600160201b81111561117b57600080fd5b82018360208201111561118d57600080fd5b803590602001918460208302840111600160201b831117156111ae57600080fd5b509092509050614132565b3480156111c557600080fd5b506103db614484565b3480156111da57600080fd5b50610404600480360360208110156111f157600080fd5b50356001600160a01b031661448d565b6001600160e01b031981166301ffc9a760e01b145b919050565b603e545b90565b61122b33614498565b8061123557503330145b611279576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c680001115801561129857506706f05b59d3b200008111155b6112df576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b6112f060408263ffffffff6144ac16565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b61133733614498565b80611346575061134633614515565b611390576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a5460ff166113df576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b611442603880548060200260200160405190810160405280929190818152602001828054801561143857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161141a575b5050505050613ae6565b811461147f5760405162461bcd60e51b8152600401808060200182810382526023815260200180615d8d6023913960400191505060405180910390fd5b61148b60386000615bcf565b603a805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b60405180604001604052806005815260200164332e332e3160d81b81525081565b600080611507848463ffffffff6145a916565b905061151281614498565b611557576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b50630b135d3f60e11b90505b92915050565b61157233614498565b8061157c57503330145b6115c0576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b80611609576040805162461bcd60e51b8152602060048201526014602482015273617373657420617272617920697320656d70747960601b604482015290519081900360640190fd5b60005b8181101561166b57600061163a84848481811061162557fe5b905060200201356001600160a01b0316614697565b90506116628585858581811061164c57fe5b905060200201356001600160a01b0316836135cd565b5060010161160c565b507fd4f62f23021706247dcffea245d104ae7ddaec7f23acf3d11d7136d5de6a69ad83838360405180846001600160a01b03166001600160a01b03168152602001806020018281038252848482818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60006116fa6047614728565b905090565b6000808585604051602001808383808284376040805191909301818103601f190182528084528151602092830120601f8b01839004830282018301909452898152929650630b135d3f60e11b955061177694508693508991508890819084018382808284376000920191909152506114f492505050565b6001600160e01b031916146117c2576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b506320c13b0b60e01b95945050505050565b603554600160a01b900460ff1690565b6117ed33614498565b806117f757503330145b61183b576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b61184c603b8263ffffffff61475d16565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b60405490565b603a5460ff1681565b606060398054806020026020016040519081016040528092919081815260200182805480156118e957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118cb575b5050505050905090565b60366020526000908152604090205460ff1681565b61191133614498565b8061191b57503330145b61195f576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611968826147be565b6119ae576040805162461bcd60e51b8152602060048201526012602482015271746f6b656e206e6f74206c6f616461626c6560701b604482015290519081900360640190fd5b60006119ba8383613ecd565b90506119cd60478263ffffffff6147d816565b60006119da604d5461484e565b90506001600160a01b03841615611a8257611a056001600160a01b038516828563ffffffff61496f16565b806001600160a01b0316631b3c96b485856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611a6557600080fd5b505af1158015611a79573d6000803e3d6000fd5b50505050611afc565b806001600160a01b0316631b3c96b48486866040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001828152602001925050506000604051808303818588803b158015611ae257600080fd5b505af1158015611af6573d6000803e3d6000fd5b50505050505b604080516001600160a01b03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b611b4f33614498565b80611b5957503330145b611b9d576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b604654811115611bef576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b611c0060478263ffffffff6144ac16565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611c4733614498565b80611c5157503330145b611c95576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611ca6603b8263ffffffff6144ac16565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6060611cef33614498565b80611cf957503330145b611d3d576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff16611d6e57611d6e603b8463ffffffff6147d816565b611d80846001600160a01b0316614a87565b8015611d905750611d9084614a8d565b15611f7757600080611da28685614aa7565b6001600160a01b038216600090815260366020526040902054919350915060ff16611de8576000611dd38783613525565b9050611de6603b8263ffffffff6147d816565b505b611e016001600160a01b0387168563ffffffff614bb116565b604080516020808252818301909252606091602082018180388339019050509050600160f81b81601f81518110611e3457fe5b60200101906001600160f81b031916908160001a9053507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138787878460405180856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ecf578181015183820152602001611eb7565b50505050905090810190601f168015611efc5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611f2f578181015183820152602001611f17565b50505050905090810190601f168015611f5c5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a192506121d4915050565b60006060856001600160a01b031685856040518082805190602001908083835b60208310611fb65780518252601f199092019160209182019101611f97565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612018576040519150601f19603f3d011682016040523d82523d6000602084013e61201d565b606091505b50915091508181906120ad5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561207257818101518382015260200161205a565b50505050905090810190601f16801561209f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138686868460405180856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561213257818101518382015260200161211a565b50505050905090810190601f16801561215f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561219257818101518382015260200161217a565b50505050905090810190601f1680156121bf5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a19150505b9392505050565b6121e433614515565b612223576040805162461bcd60e51b815260206004820152601a6024820152600080516020615cd1833981519152604482015290519081900360640190fd5b600046905060006122a3823089898960405160200180806836b7b737b634ba341d60b91b815250600901868152602001856001600160a01b03166001600160a01b031660601b8152601401848152602001838380828437808301925050509550505050505060405160208183030381529060405280519060200120614d6f565b9050631626ba7e60e01b6001600160e01b0319166122f78286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114f492505050565b6001600160e01b03191614612343576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b604c548714612385576040805162461bcd60e51b81526020600482015260096024820152687478207265706c617960b81b604482015290519081900360640190fd5b61238d614dc0565b60006060306001600160a01b03168888604051808383808284376040519201945060009350909150508083038183865af19150503d80600081146123ed576040519150601f19603f3d011682016040523d82523d6000602084013e6123f2565b606091505b50915091508181906124455760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561207257818101518382015260200161205a565b507f823dbcf2b7b0f265871963ca65ac033f6b4c71e0d82cd123d2ff23d752dc21c188888360405180806020018060200183810383528686828181526020019250808284376000838201819052601f909101601f191690920185810384528651815286516020918201939188019250908190849084905b838110156124d45781810151838201526020016124bc565b50505050905090810190601f1680156125015780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050505050505050565b606060388054806020026020016040519081016040528092919081815260200182805480156118e9576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116118cb575050505050905090565b61258533614515565b6125c4576040805162461bcd60e51b815260206004820152601a6024820152600080516020615cd1833981519152604482015290519081900360640190fd5b603a5460ff16612613576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b6126746038805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b81146126b15760405162461bcd60e51b8152600401808060200182810382526023815260200180615d8d6023913960400191505060405180910390fd5b60005b6038548110156127985760366000603883815481106126cf57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff16612790576001603660006038848154811061270e57fe5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905560388054603791908390811061275457fe5b60009182526020808320909101548354600181018555938352912090910180546001600160a01b0319166001600160a01b039092169190911790555b6001016126b4565b507fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a33603860405180836001600160a01b03166001600160a01b0316815260200180602001828103825283818154815260200191508054801561282457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612806575b5050935050505060405180910390a161283f60386000615bcf565b50603a805460ff19169055565b60006116fa603b614728565b61286133614498565b8061286b57503330145b6128af576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff161580156128ca5750603a54610100900460ff16155b61291b576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b603a5462010000900460ff16612974576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b806129b8576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b6129c460398383615bed565b50603a805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592612a3392859185918291850190849080828437600092019190915250613ae692505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a15050565b600054610100900460ff1680612a975750612a97614e08565b80612aa5575060005460ff16155b612ae05760405162461bcd60e51b815260040180806020018281038252602e815260200180615d12602e913960400191505060405180910390fd5b600054610100900460ff16158015612b0b576000805460ff1961ff0019909116610100171660011790555b612b1486614e0e565b612b1d84614f15565b612b278888614fc3565b612b3082615122565b612b3861520d565b612b41856152fe565b604d8390558015612b58576000805461ff00191690555b5050505050505050565b612b6b33614498565b612bb5576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff16612c13576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b603580546001600160a01b0319169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b612c6933614498565b80612c7357503330145b612cb7576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c6800011158015612cd657506706f05b59d3b200008111155b612d1d576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b612d2e60408263ffffffff61475d16565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b604d5490565b6033546001600160a01b031690565b60006116fa6040614728565b612d8e33614498565b80612d9857503330145b612ddc576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff16158015612df75750603a54610100900460ff16155b612e48576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015612f6457612ea1828281518110612e9457fe5b6020026020010151614498565b15612eec576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b0316828281518110612f0357fe5b60200260200101516001600160a01b03161415612f5c576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b600101612e7c565b50603a5462010000900460ff16612fbe576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b81613002576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b61300e60388484615bed565b50603a805460ff1916600117905560408051602080850282810182019093528482527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928692869261307b92859185918291850190849080828437600092019190915250613ae692505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60455490565b6035546001600160a01b031690565b6130e533614498565b61312f576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b613137614dc0565b565b603b5490565b61314833614498565b8061315257503330145b613196576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8051602080820191906000808060605b86851015612b58576131bf86605463ffffffff61545016565b888601805160148201516034909201805193995060609190911c9650909450909250905061320460546131f8878563ffffffff6154ad16565b9063ffffffff6154ad16565b94508685111561324b576040805162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015290519081900360640190fd5b8161326157506040805160208101909152600081525b61326c848483611ce4565b506131a6565b604b5460ff1690565b61328433614498565b8061328e57503330145b6132d2576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b604654811115613324576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b61333560478263ffffffff61475d16565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b61337433614498565b6133be576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff1661341c576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6001600160a01b0382166134615760405162461bcd60e51b8152600401808060200182810382526023815260200180615d406023913960400191505060405180910390fd5b6035805460ff60a01b1916600160a01b83151502179055806134ba57604080516001600160a01b038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b603554604080516001600160a01b039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a150603580546001600160a01b0319166001600160a01b0392909216919091179055565b60008060008061353486615507565b5050509350935093505080156135a9578161357f576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b61359f83613593878563ffffffff61569916565b9063ffffffff6156f216565b9350505050611563565b50600095945050505050565b603f5460ff1690565b603a5462010000900460ff1681565b6135d633614498565b806135e057503330145b613624576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8080613661576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b6001600160a01b0384166136ac576040805162461bcd60e51b815260206004820152600d60248201526c064657374696e6174696f6e3d3609c1b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff166136fc57816001600160a01b038416156136e9576136e68484613525565b90505b6136fa603b8263ffffffff6147d816565b505b61370784848461575c565b604080516001600160a01b0380871682528516602082015280820184905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a150505050565b604a5490565b61376633614515565b6137a5576040805162461bcd60e51b815260206004820152601a6024820152600080516020615cd1833981519152604482015290519081900360640190fd5b603a54610100900460ff166137f9576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b61385a6039805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b81146138975760405162461bcd60e51b8152600401808060200182810382526023815260200180615d8d6023913960400191505060405180910390fd5b60005b603954811015613a255760366000603983815481106138b557fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615613a1d57600060366000603984815481106138f557fe5b6000918252602080832091909101546001600160a01b031683528201929092526040018120805460ff1916921515929092179091555b60375461393f90600163ffffffff61545016565b811015613a07576039828154811061395357fe5b600091825260209091200154603780546001600160a01b03909216918390811061397957fe5b6000918252602090912001546001600160a01b031614156139ff576037805460001981019081106139a657fe5b600091825260209091200154603780546001600160a01b0390921691839081106139cc57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613a07565b60010161392b565b506037805490613a1b906000198301615c50565b505b60010161389a565b507fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b33603960405180836001600160a01b03166001600160a01b03168152602001806020018281038252838181548152602001915080548015613ab157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613a93575b5050935050505060405180910390a1613acc60396000615bcf565b50603a805461ff0019169055565b60435490565b604c5481565b60008160405160200180828051906020019060200280838360005b83811015613b19578181015183820152602001613b01565b50505050905001915050604051602081830303815290604052805190602001209050919050565b613b4933614498565b80613b585750613b5833614515565b613ba2576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a54610100900460ff16613bf6576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b613c576039805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b8114613c945760405162461bcd60e51b8152600401808060200182810382526023815260200180615d8d6023913960400191505060405180910390fd5b613ca060396000615bcf565b603a805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b60378181548110613cf657fe5b6000918252602090912001546001600160a01b0316905081565b60475490565b603a54610100900460ff1681565b60345490565b8080613d67576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b613d7033614498565b80613d7f5750613d7f33614515565b613dc9576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b613dda60408363ffffffff6147d816565b613de26130cd565b6001600160a01b03166108fc839081150290604051600060405180830381858888f19350505050158015613e1a573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e33613e456130cd565b604080516001600160a01b03938416815291909216602082015280820185905290519081900360600190a15050565b613e7d33614515565b613ebc576040805162461bcd60e51b815260206004820152601a6024820152600080516020615cd1833981519152604482015290519081900360640190fd5b611ca6603b8263ffffffff61582616565b6000613ed7615876565b6001600160a01b0316836001600160a01b03161415613ef7575080611563565b816001600160a01b03841615613fbc576000806000613f1587615507565b5050509350935093505080613f67576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81613fa2576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b613fb683613593888563ffffffff61569916565b93505050505b6000806000613fc96158ec565b505050935093509350508061401b576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81614061576040805162461bcd60e51b81526020600482015260116024820152700737461626c65636f696e20726174653d3607c1b604482015290519081900360640190fd5b61407582613593868663ffffffff61569916565b979650505050505050565b61408933614515565b6140c8576040805162461bcd60e51b815260206004820152601a6024820152600080516020615cd1833981519152604482015290519081900360640190fd5b611c0060478263ffffffff61582616565b6140e233614515565b614121576040805162461bcd60e51b815260206004820152601a6024820152600080516020615cd1833981519152604482015290519081900360640190fd5b6112f060408263ffffffff61582616565b61413b33614498565b8061414557503330145b614189576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015614298576141d5828281518110612e9457fe5b15614220576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b031682828151811061423757fe5b60200260200101516001600160a01b03161415614290576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b6001016141bd565b50603a5462010000900460ff16156142ef576040805162461bcd60e51b81526020600482015260156024820152741dda1a5d195b1a5cdd081a5b9a5d1a585b1a5e9959605a1b604482015290519081900360640190fd5b60005b828110156143e0576036600085858481811061430a57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff166143d85760016036600086868581811061434657fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550603784848381811061439b57fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b0395909202939093013593909316929092179055505b6001016142f2565b50603a805462ff0000191662010000179055604080513380825260208201838152603780549484018590527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a949293909290919060608301908490801561447057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614452575b5050935050505060405180910390a1505050565b60445460ff1690565b600061156382614697565b6035546001600160a01b0390811691161490565b600482015460ff16156144fa576040805162461bcd60e51b81526020600482015260116024820152701b1a5b5a5d08185b1c9958591e481cd95d607a1b604482015290519081900360640190fd5b6145048282615a5b565b50600401805460ff19166001179055565b600061452260345461484e565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561457757600080fd5b505afa15801561458b573d6000803e3d6000fd5b505050506040513d60208110156145a157600080fd5b505192915050565b600081516041146145bc57506000611563565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156146025760009350505050611563565b8060ff16601b1415801561461a57508060ff16601c14155b1561462b5760009350505050611563565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015614682573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60006001600160a01b0382161561472157604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156146ee57600080fd5b505afa158015614702573d6000803e3d6000fd5b505050506040513d602081101561471857600080fd5b50519050611216565b5047611216565b6002810154600090614743906201518063ffffffff6154ad16565b42111561475257508054611216565b506001810154611216565b600482015460ff166147b6576040805162461bcd60e51b815260206004820152601960248201527f6c696d6974206861736e2774206265656e207365742079657400000000000000604482015290519081900360640190fd5b600390910155565b6000806147ca83615507565b509098975050505050505050565b6147e182615a7e565b808260010154101561482d576040805162461bcd60e51b815260206004820152601060248201526f185d985a5b18589b194f185b5bdd5b9d60821b604482015290519081900360640190fd5b6001820154614842908263ffffffff61545016565b82600101819055505050565b6033546000906001600160a01b03166148ae576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156148fa57600080fd5b505afa15801561490e573d6000803e3d6000fd5b505050506040513d602081101561492457600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561457757600080fd5b8015806149f5575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b1580156149c757600080fd5b505afa1580156149db573d6000803e3d6000fd5b505050506040513d60208110156149f157600080fd5b5051155b614a305760405162461bcd60e51b8152600401808060200182810382526036815260200180615db06036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052614a82908490614bb1565b505050565b3b151590565b600080614a9983615507565b509198975050505050505050565b600080614ab560455461484e565b6001600160a01b031663afc72e9385856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614b29578181015183820152602001614b11565b50505050905090810190601f168015614b565780820380516001836020036101000a031916815260200191505b509350505050604080518083038186803b158015614b7357600080fd5b505afa158015614b87573d6000803e3d6000fd5b505050506040513d6040811015614b9d57600080fd5b508051602090910151909590945092505050565b614bc3826001600160a01b0316614a87565b614c14576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310614c525780518252601f199092019160209182019101614c33565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614cb4576040519150601f19603f3d011682016040523d82523d6000602084013e614cb9565b606091505b509150915081614d10576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115614d6957808060200190516020811015614d2c57600080fd5b5051614d695760405162461bcd60e51b815260040180806020018281038252602a815260200180615d63602a913960400191505060405180910390fd5b50505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b604c80546001019081905560408051338152602081019290925280517fab0423a75986556234aecd171c46ce7f5e45607d8070bf5230f2735b50322bff9281900390910190a1565b303b1590565b600054610100900460ff1680614e275750614e27614e08565b80614e35575060005460ff16155b614e705760405162461bcd60e51b815260040180806020018281038252602e815260200180615d12602e913960400191505060405180910390fd5b600054610100900460ff16158015614e9b576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216614ee4576040805162461bcd60e51b815260206004820152600b60248201526a0656e7352656720697320360ac1b604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b0384161790558015614f11576000805461ff00191690555b5050565b600054610100900460ff1680614f2e5750614f2e614e08565b80614f3c575060005460ff16155b614f775760405162461bcd60e51b815260040180806020018281038252602e815260200180615d12602e913960400191505060405180910390fd5b600054610100900460ff16158015614fa2576000805460ff1961ff0019909116610100171660011790555b8115614fae5760348290555b8015614f11576000805461ff00191690555050565b600054610100900460ff1680614fdc5750614fdc614e08565b80614fea575060005460ff16155b6150255760405162461bcd60e51b815260040180806020018281038252602e815260200180615d12602e913960400191505060405180910390fd5b600054610100900460ff16158015615050576000805460ff1961ff0019909116610100171660011790555b603580546001600160a01b0319166001600160a01b0385161760ff60a01b1916600160a01b8415158102919091179182905560ff9104166150c857604080516001600160a01b038516815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60408051600081526001600160a01b038516602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a18015614a82576000805461ff0019169055505050565b600054610100900460ff168061513b575061513b614e08565b80615149575060005460ff16155b6151845760405162461bcd60e51b815260040180806020018281038252602e815260200180615d12602e913960400191505060405180910390fd5b600054610100900460ff161580156151af576000805460ff1961ff0019909116610100171660011790555b6040805160a08101825283815260208101849052429181018290526000606082018190526080909101819052603b849055603c849055603d91909155603e55603f805460ff191690558015614f11576000805461ff00191690555050565b600054610100900460ff16806152265750615226614e08565b80615234575060005460ff16155b61526f5760405162461bcd60e51b815260040180806020018281038252602e815260200180615d12602e913960400191505060405180910390fd5b600054610100900460ff1615801561529a576000805460ff1961ff0019909116610100171660011790555b6040805160a0810182526706f05b59d3b2000080825260208201819052428284018190526000606084018190526080909301839052928190556041556042919091556043556044805460ff1916905580156152fb576000805461ff00191690555b50565b600054610100900460ff16806153175750615317614e08565b80615325575060005460ff16155b6153605760405162461bcd60e51b815260040180806020018281038252602e815260200180615d12602e913960400191505060405180910390fd5b600054610100900460ff1615801561538b576000805460ff1961ff0019909116610100171660011790555b61539482615ad6565b600061539e6158ec565b5050505050915050600081116153eb576040805162461bcd60e51b815260206004820152600d60248201526c37379039ba30b13632b1b7b4b760991b604482015290519081900360640190fd5b6127100260468190556040805160a081018252828152602081018390524291810182905260006060820181905260809091018190526047839055604892909255604955604a55604b805460ff191690558015614f11576000805461ff00191690555050565b6000828211156154a7576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156121d4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b606060008060008060008061551d60455461484e565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b15801561557257600080fd5b505afa158015615586573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156155af57600080fd5b8101908080516040519392919084600160201b8211156155ce57600080fd5b9083019060208201858111156155e357600080fd5b8251600160201b8111828201881017156155fc57600080fd5b82525081516020918201929091019080838360005b83811015615629578181015183820152602001615611565b50505050905090810190601f1680156156565780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b6000826156a857506000611563565b828202828482816156b557fe5b04146121d45760405162461bcd60e51b8152600401808060200182810382526021815260200180615cf16021913960400191505060405180910390fd5b6000808211615748576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161575357fe5b04949350505050565b6001600160a01b03821661580c576040516000906001600160a01b0385169083908381818185875af1925050503d80600081146157b5576040519150601f19603f3d011682016040523d82523d6000602084013e6157ba565b606091505b5050905080615806576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b50614a82565b614a826001600160a01b038316848363ffffffff615b7d16565b808260030154146158685760405162461bcd60e51b8152600401808060200182810382526022815260200180615caf6022913960400191505060405180910390fd5b614f11828360030154615a5b565b600061588360455461484e565b6001600160a01b031663e9cbd8226040518163ffffffff1660e01b815260040160206040518083038186803b1580156158bb57600080fd5b505afa1580156158cf573d6000803e3d6000fd5b505050506040513d60208110156158e557600080fd5b5051905090565b606060008060008060008061590260455461484e565b6001600160a01b0316633efec5e96040518163ffffffff1660e01b815260040160006040518083038186803b15801561593a57600080fd5b505afa15801561594e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561597757600080fd5b8101908080516040519392919084600160201b82111561599657600080fd5b9083019060208201858111156159ab57600080fd5b8251600160201b8111828201881017156159c457600080fd5b82525081516020918201929091019080838360005b838110156159f15781810151838201526020016159d9565b50505050905090810190601f168015615a1e5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979f939e50919c509a5098509096509294509192505050565b615a6482615a7e565b8082556001820154811015614f1157815460018301555050565b6002810154615a96906201518063ffffffff6154ad16565b4211156152fb57426002820155805460018201556040517fe93bc25276d408d390778e7a8b926f2f67209c43ed540081b951fe128f0d3cd290600090a150565b600054610100900460ff1680615aef5750615aef614e08565b80615afd575060005460ff16155b615b385760405162461bcd60e51b815260040180806020018281038252602e815260200180615d12602e913960400191505060405180910390fd5b600054610100900460ff16158015615b63576000805460ff1961ff0019909116610100171660011790555b60458290558015614f11576000805461ff00191690555050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052614a82908490614bb1565b50805460008255906000526020600020908101906152fb9190615c70565b828054828255906000526020600020908101928215615c40579160200282015b82811115615c405781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190615c0d565b50615c4c929150615c8a565b5090565b815481835581811115614a8257600083815260209020614a829181019083015b61121f91905b80821115615c4c5760008155600101615c76565b61121f91905b80821115615c4c5780546001600160a01b0319168155600101615c9056fe636f6e6669726d65642f7375626d6974746564206c696d6974206d69736d6174636873656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646f776e65722063616e6e6f742062652073657420746f207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646e6f6e2d6d61746368696e672070656e64696e672077686974656c69737420686173685361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a72315820f41e568cc3d2f22651e48c9958c51441796c3f589bfd42d1220a454a9a86961264736f6c63430005110032" +var WalletBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d39660455534801561007957600080fd5b50615de6806200008a6000396000f3fe6080604052600436106103a25760003560e01c80637fd004fa116101e7578063cc0e7e561161010d578063e61c51ca116100a0578063f41c43191161006f578063f41c431914611114578063f42176481461113e578063f776f518146111b9578063f8b2cb4f146111ce576103a2565b8063e61c51ca1461105d578063eadd3cea14611087578063f36febda146110b1578063f40b51f8146110ea576103a2565b8063d251fefc116100dc578063d251fefc14610ff4578063da84b1ed1461101e578063de212bf314611033578063e2b4ce9714611048576103a2565b8063cc0e7e5614610ef2578063cccdc55614610f07578063cd7958dd14610f1c578063ce0b5bd514610fca576103a2565b8063b221f31611610185578063be40ba7911610154578063be40ba7914610e5b578063beabacc814610e70578063c4856cd914610eb3578063cbd2ac6814610ec8576103a2565b8063b221f31614610da8578063b242e53414610dd2578063b87e21ef14610e0d578063bcb8b74a14610e46576103a2565b806390e690c7116101c157806390e690c714610cb85780639b0dfd2714610ccd578063aaf1fc6214610ce2578063ab20599314610d93576103a2565b80637fd004fa14610c13578063877337b014610c8e5780638da5cb5b14610ca3576103a2565b80633a43199f116102cc5780635d2362a81161026a57806374624c551161023957806374624c5514610b8e578063747c31d614610bb85780637d73b23114610bcd5780637d7d004614610bfe576103a2565b80635d2362a814610a8e5780636137d67014610aa357806369efdfc014610b1e578063715018a614610b79576103a2565b80633f579f42116102a65780633f579f42146108b757806346efe0ed1461097d57806347b55a9d14610a4f5780635adc02ab14610a64576103a2565b80633a43199f146108375780633bfec254146108635780633c672eb71461088d576103a2565b80631efd0299116103445780632587a6a2116103135780632587a6a21461077557806326d05ab21461078a578063294f40251461079f57806332531c3c14610804576103a2565b80631efd02991461065657806320c13b0b1461066b5780632121dc751461073657806321ce918d1461074b576103a2565b8063100f23fd11610380578063100f23fd146104425780631127b57e1461046c5780631626ba7e146104f65780631aa21fba146105cb576103a2565b806301ffc9a7146103a7578063027ef3eb146103ef5780630f3a85d814610416575b600080fd5b3480156103b357600080fd5b506103db600480360360208110156103ca57600080fd5b50356001600160e01b031916611201565b604080519115158252519081900360200190f35b3480156103fb57600080fd5b5061040461121b565b60408051918252519081900360200190f35b34801561042257600080fd5b506104406004803603602081101561043957600080fd5b5035611222565b005b34801561044e57600080fd5b506104406004803603602081101561046557600080fd5b503561132e565b34801561047857600080fd5b506104816114d3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104bb5781810151838201526020016104a3565b50505050905090810190601f1680156104e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561050257600080fd5b506105ae6004803603604081101561051957600080fd5b81359190810190604081016020820135600160201b81111561053a57600080fd5b82018360208201111561054c57600080fd5b803590602001918460018302840111600160201b8311171561056d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506114f4945050505050565b604080516001600160e01b03199092168252519081900360200190f35b3480156105d757600080fd5b50610440600480360360408110156105ee57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561061857600080fd5b82018360208201111561062a57600080fd5b803590602001918460208302840111600160201b8311171561064b57600080fd5b509092509050611569565b34801561066257600080fd5b506104046116ee565b34801561067757600080fd5b506105ae6004803603604081101561068e57600080fd5b810190602081018135600160201b8111156106a857600080fd5b8201836020820111156106ba57600080fd5b803590602001918460018302840111600160201b831117156106db57600080fd5b919390929091602081019035600160201b8111156106f857600080fd5b82018360208201111561070a57600080fd5b803590602001918460018302840111600160201b8311171561072b57600080fd5b5090925090506116ff565b34801561074257600080fd5b506103db6117d4565b34801561075757600080fd5b506104406004803603602081101561076e57600080fd5b50356117e4565b34801561078157600080fd5b50610404611882565b34801561079657600080fd5b506103db611888565b3480156107ab57600080fd5b506107b4611891565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156107f05781810151838201526020016107d8565b505050509050019250505060405180910390f35b34801561081057600080fd5b506103db6004803603602081101561082757600080fd5b50356001600160a01b03166118f3565b6104406004803603604081101561084d57600080fd5b506001600160a01b038135169060200135611908565b34801561086f57600080fd5b506104406004803603602081101561088657600080fd5b5035611b46565b34801561089957600080fd5b50610440600480360360208110156108b057600080fd5b5035611c3e565b3480156108c357600080fd5b50610481600480360360608110156108da57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561090957600080fd5b82018360208201111561091b57600080fd5b803590602001918460018302840111600160201b8311171561093c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611ce4945050505050565b34801561098957600080fd5b50610440600480360360608110156109a057600080fd5b81359190810190604081016020820135600160201b8111156109c157600080fd5b8201836020820111156109d357600080fd5b803590602001918460018302840111600160201b831117156109f457600080fd5b919390929091602081019035600160201b811115610a1157600080fd5b820183602082011115610a2357600080fd5b803590602001918460018302840111600160201b83111715610a4457600080fd5b5090925090506121db565b348015610a5b57600080fd5b506107b461251c565b348015610a7057600080fd5b5061044060048036036020811015610a8757600080fd5b503561257c565b348015610a9a57600080fd5b5061040461284c565b348015610aaf57600080fd5b5061044060048036036020811015610ac657600080fd5b810190602081018135600160201b811115610ae057600080fd5b820183602082011115610af257600080fd5b803590602001918460208302840111600160201b83111715610b1357600080fd5b509092509050612858565b348015610b2a57600080fd5b50610440600480360360e0811015610b4157600080fd5b506001600160a01b03813581169160208101351515916040820135169060608101359060808101359060a08101359060c00135612a7e565b348015610b8557600080fd5b50610440612b62565b348015610b9a57600080fd5b5061044060048036036020811015610bb157600080fd5b5035612c60565b348015610bc457600080fd5b50610404612d64565b348015610bd957600080fd5b50610be2612d6a565b604080516001600160a01b039092168252519081900360200190f35b348015610c0a57600080fd5b50610404612d79565b348015610c1f57600080fd5b5061044060048036036020811015610c3657600080fd5b810190602081018135600160201b811115610c5057600080fd5b820183602082011115610c6257600080fd5b803590602001918460208302840111600160201b83111715610c8357600080fd5b509092509050612d85565b348015610c9a57600080fd5b506104046130c7565b348015610caf57600080fd5b50610be26130cd565b348015610cc457600080fd5b506104406130dc565b348015610cd957600080fd5b50610404613139565b348015610cee57600080fd5b5061044060048036036020811015610d0557600080fd5b810190602081018135600160201b811115610d1f57600080fd5b820183602082011115610d3157600080fd5b803590602001918460018302840111600160201b83111715610d5257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061313f945050505050565b348015610d9f57600080fd5b506103db613272565b348015610db457600080fd5b5061044060048036036020811015610dcb57600080fd5b503561327b565b348015610dde57600080fd5b5061044060048036036040811015610df557600080fd5b506001600160a01b038135169060200135151561336b565b348015610e1957600080fd5b5061040460048036036040811015610e3057600080fd5b506001600160a01b038135169060200135613525565b348015610e5257600080fd5b506103db6135b5565b348015610e6757600080fd5b506103db6135be565b348015610e7c57600080fd5b5061044060048036036060811015610e9357600080fd5b506001600160a01b038135811691602081013590911690604001356135cd565b348015610ebf57600080fd5b50610404613757565b348015610ed457600080fd5b5061044060048036036020811015610eeb57600080fd5b503561375d565b348015610efe57600080fd5b50610404613ada565b348015610f1357600080fd5b50610404613ae0565b348015610f2857600080fd5b5061040460048036036020811015610f3f57600080fd5b810190602081018135600160201b811115610f5957600080fd5b820183602082011115610f6b57600080fd5b803590602001918460208302840111600160201b83111715610f8c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613ae6945050505050565b348015610fd657600080fd5b5061044060048036036020811015610fed57600080fd5b5035613b40565b34801561100057600080fd5b50610be26004803603602081101561101757600080fd5b5035613ce9565b34801561102a57600080fd5b50610404613d10565b34801561103f57600080fd5b506103db613d16565b34801561105457600080fd5b50610404613d24565b34801561106957600080fd5b506104406004803603602081101561108057600080fd5b5035613d2a565b34801561109357600080fd5b50610440600480360360208110156110aa57600080fd5b5035613e74565b3480156110bd57600080fd5b50610404600480360360408110156110d457600080fd5b506001600160a01b038135169060200135613ecd565b3480156110f657600080fd5b506104406004803603602081101561110d57600080fd5b5035614080565b34801561112057600080fd5b506104406004803603602081101561113757600080fd5b50356140d9565b34801561114a57600080fd5b506104406004803603602081101561116157600080fd5b810190602081018135600160201b81111561117b57600080fd5b82018360208201111561118d57600080fd5b803590602001918460208302840111600160201b831117156111ae57600080fd5b509092509050614132565b3480156111c557600080fd5b506103db614484565b3480156111da57600080fd5b50610404600480360360208110156111f157600080fd5b50356001600160a01b031661448d565b6001600160e01b031981166301ffc9a760e01b145b919050565b603e545b90565b61122b33614498565b8061123557503330145b611279576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c680001115801561129857506706f05b59d3b200008111155b6112df576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b6112f060408263ffffffff6144ac16565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b61133733614498565b80611346575061134633614515565b611390576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a5460ff166113df576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b611442603880548060200260200160405190810160405280929190818152602001828054801561143857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161141a575b5050505050613ae6565b811461147f5760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b61148b60386000615b9b565b603a805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b60405180604001604052806005815260200164332e332e3160d81b81525081565b600080611507848463ffffffff6145a916565b905061151281614498565b611557576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b50630b135d3f60e11b90505b92915050565b61157233614498565b8061157c57503330145b6115c0576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b80611609576040805162461bcd60e51b8152602060048201526014602482015273617373657420617272617920697320656d70747960601b604482015290519081900360640190fd5b60005b8181101561166b57600061163a84848481811061162557fe5b905060200201356001600160a01b0316614697565b90506116628585858581811061164c57fe5b905060200201356001600160a01b0316836135cd565b5060010161160c565b507fd4f62f23021706247dcffea245d104ae7ddaec7f23acf3d11d7136d5de6a69ad83838360405180846001600160a01b03166001600160a01b03168152602001806020018281038252848482818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60006116fa6047614728565b905090565b6000808585604051602001808383808284376040805191909301818103601f190182528084528151602092830120601f8b01839004830282018301909452898152929650630b135d3f60e11b955061177694508693508991508890819084018382808284376000920191909152506114f492505050565b6001600160e01b031916146117c2576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b506320c13b0b60e01b95945050505050565b603554600160a01b900460ff1690565b6117ed33614498565b806117f757503330145b61183b576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b61184c603b8263ffffffff61475d16565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b60405490565b603a5460ff1681565b606060398054806020026020016040519081016040528092919081815260200182805480156118e957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118cb575b5050505050905090565b60366020526000908152604090205460ff1681565b61191133614498565b8061191b57503330145b61195f576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611968826147be565b6119ae576040805162461bcd60e51b8152602060048201526012602482015271746f6b656e206e6f74206c6f616461626c6560701b604482015290519081900360640190fd5b60006119ba8383613ecd565b90506119cd60478263ffffffff6147d816565b60006119da604d5461484e565b90506001600160a01b03841615611a8257611a056001600160a01b038516828563ffffffff61496f16565b806001600160a01b0316631b3c96b485856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611a6557600080fd5b505af1158015611a79573d6000803e3d6000fd5b50505050611afc565b806001600160a01b0316631b3c96b48486866040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001828152602001925050506000604051808303818588803b158015611ae257600080fd5b505af1158015611af6573d6000803e3d6000fd5b50505050505b604080516001600160a01b03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b611b4f33614498565b80611b5957503330145b611b9d576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b604654811115611bef576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b611c0060478263ffffffff6144ac16565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611c4733614498565b80611c5157503330145b611c95576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611ca6603b8263ffffffff6144ac16565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6060611cef33614498565b80611cf957503330145b611d3d576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff16611d6e57611d6e603b8463ffffffff6147d816565b611d80846001600160a01b0316614a87565b8015611d905750611d9084614a8d565b15611f7757600080611da28685614aa7565b6001600160a01b038216600090815260366020526040902054919350915060ff16611de8576000611dd38783613525565b9050611de6603b8263ffffffff6147d816565b505b611e016001600160a01b0387168563ffffffff614bb116565b604080516020808252818301909252606091602082018180388339019050509050600160f81b81601f81518110611e3457fe5b60200101906001600160f81b031916908160001a9053507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138787878460405180856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ecf578181015183820152602001611eb7565b50505050905090810190601f168015611efc5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611f2f578181015183820152602001611f17565b50505050905090810190601f168015611f5c5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a192506121d4915050565b60006060856001600160a01b031685856040518082805190602001908083835b60208310611fb65780518252601f199092019160209182019101611f97565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612018576040519150601f19603f3d011682016040523d82523d6000602084013e61201d565b606091505b50915091508181906120ad5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561207257818101518382015260200161205a565b50505050905090810190601f16801561209f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138686868460405180856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561213257818101518382015260200161211a565b50505050905090810190601f16801561215f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561219257818101518382015260200161217a565b50505050905090810190601f1680156121bf5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a19150505b9392505050565b6121e433614515565b612223576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b600046905060006122a3823089898960405160200180806836b7b737b634ba341d60b91b815250600901868152602001856001600160a01b03166001600160a01b031660601b8152601401848152602001838380828437808301925050509550505050505060405160208183030381529060405280519060200120614d6f565b9050631626ba7e60e01b6001600160e01b0319166122f78286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114f492505050565b6001600160e01b03191614612343576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b604c548714612385576040805162461bcd60e51b81526020600482015260096024820152687478207265706c617960b81b604482015290519081900360640190fd5b61238d614dc0565b60006060306001600160a01b03168888604051808383808284376040519201945060009350909150508083038183865af19150503d80600081146123ed576040519150601f19603f3d011682016040523d82523d6000602084013e6123f2565b606091505b50915091508181906124455760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561207257818101518382015260200161205a565b507f823dbcf2b7b0f265871963ca65ac033f6b4c71e0d82cd123d2ff23d752dc21c188888360405180806020018060200183810383528686828181526020019250808284376000838201819052601f909101601f191690920185810384528651815286516020918201939188019250908190849084905b838110156124d45781810151838201526020016124bc565b50505050905090810190601f1680156125015780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050505050505050565b606060388054806020026020016040519081016040528092919081815260200182805480156118e9576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116118cb575050505050905090565b61258533614515565b6125c4576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b603a5460ff16612613576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b6126746038805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b81146126b15760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b60005b6038548110156127985760366000603883815481106126cf57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff16612790576001603660006038848154811061270e57fe5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905560388054603791908390811061275457fe5b60009182526020808320909101548354600181018555938352912090910180546001600160a01b0319166001600160a01b039092169190911790555b6001016126b4565b507fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a33603860405180836001600160a01b03166001600160a01b0316815260200180602001828103825283818154815260200191508054801561282457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612806575b5050935050505060405180910390a161283f60386000615b9b565b50603a805460ff19169055565b60006116fa603b614728565b61286133614498565b8061286b57503330145b6128af576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff161580156128ca5750603a54610100900460ff16155b61291b576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b603a5462010000900460ff16612974576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b806129b8576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b6129c460398383615bb9565b50603a805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592612a3392859185918291850190849080828437600092019190915250613ae692505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a15050565b600054610100900460ff1680612a975750612a97614e08565b80612aa5575060005460ff16155b612ae05760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015612b0b576000805460ff1961ff0019909116610100171660011790555b612b1486614e0e565b612b1d84614edc565b612b278888614f89565b612b30826150e8565b612b386151d3565b612b41856152c4565b604d8390558015612b58576000805461ff00191690555b5050505050505050565b612b6b33614498565b612bb5576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff16612c13576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b603580546001600160a01b0319169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b612c6933614498565b80612c7357503330145b612cb7576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c6800011158015612cd657506706f05b59d3b200008111155b612d1d576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b612d2e60408263ffffffff61475d16565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b604d5490565b6033546001600160a01b031690565b60006116fa6040614728565b612d8e33614498565b80612d9857503330145b612ddc576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff16158015612df75750603a54610100900460ff16155b612e48576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015612f6457612ea1828281518110612e9457fe5b6020026020010151614498565b15612eec576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b0316828281518110612f0357fe5b60200260200101516001600160a01b03161415612f5c576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b600101612e7c565b50603a5462010000900460ff16612fbe576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b81613002576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b61300e60388484615bb9565b50603a805460ff1916600117905560408051602080850282810182019093528482527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928692869261307b92859185918291850190849080828437600092019190915250613ae692505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60455490565b6035546001600160a01b031690565b6130e533614498565b61312f576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b613137614dc0565b565b603b5490565b61314833614498565b8061315257503330145b613196576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8051602080820191906000808060605b86851015612b58576131bf86605463ffffffff61541616565b888601805160148201516034909201805193995060609190911c9650909450909250905061320460546131f8878563ffffffff61547316565b9063ffffffff61547316565b94508685111561324b576040805162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015290519081900360640190fd5b8161326157506040805160208101909152600081525b61326c848483611ce4565b506131a6565b604b5460ff1690565b61328433614498565b8061328e57503330145b6132d2576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b604654811115613324576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b61333560478263ffffffff61475d16565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b61337433614498565b6133be576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff1661341c576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6001600160a01b0382166134615760405162461bcd60e51b8152600401808060200182810382526023815260200180615d0c6023913960400191505060405180910390fd5b6035805460ff60a01b1916600160a01b83151502179055806134ba57604080516001600160a01b038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b603554604080516001600160a01b039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a150603580546001600160a01b0319166001600160a01b0392909216919091179055565b600080600080613534866154cd565b5050509350935093505080156135a9578161357f576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b61359f83613593878563ffffffff61565f16565b9063ffffffff6156b816565b9350505050611563565b50600095945050505050565b603f5460ff1690565b603a5462010000900460ff1681565b6135d633614498565b806135e057503330145b613624576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8080613661576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b6001600160a01b0384166136ac576040805162461bcd60e51b815260206004820152600d60248201526c064657374696e6174696f6e3d3609c1b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff166136fc57816001600160a01b038416156136e9576136e68484613525565b90505b6136fa603b8263ffffffff6147d816565b505b613707848484615722565b604080516001600160a01b0380871682528516602082015280820184905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a150505050565b604a5490565b61376633614515565b6137a5576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b603a54610100900460ff166137f9576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b61385a6039805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b81146138975760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b60005b603954811015613a255760366000603983815481106138b557fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615613a1d57600060366000603984815481106138f557fe5b6000918252602080832091909101546001600160a01b031683528201929092526040018120805460ff1916921515929092179091555b60375461393f90600163ffffffff61541616565b811015613a07576039828154811061395357fe5b600091825260209091200154603780546001600160a01b03909216918390811061397957fe5b6000918252602090912001546001600160a01b031614156139ff576037805460001981019081106139a657fe5b600091825260209091200154603780546001600160a01b0390921691839081106139cc57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613a07565b60010161392b565b506037805490613a1b906000198301615c1c565b505b60010161389a565b507fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b33603960405180836001600160a01b03166001600160a01b03168152602001806020018281038252838181548152602001915080548015613ab157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613a93575b5050935050505060405180910390a1613acc60396000615b9b565b50603a805461ff0019169055565b60435490565b604c5481565b60008160405160200180828051906020019060200280838360005b83811015613b19578181015183820152602001613b01565b50505050905001915050604051602081830303815290604052805190602001209050919050565b613b4933614498565b80613b585750613b5833614515565b613ba2576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a54610100900460ff16613bf6576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b613c576039805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b8114613c945760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b613ca060396000615b9b565b603a805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b60378181548110613cf657fe5b6000918252602090912001546001600160a01b0316905081565b60475490565b603a54610100900460ff1681565b60345490565b8080613d67576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b613d7033614498565b80613d7f5750613d7f33614515565b613dc9576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b613dda60408363ffffffff6147d816565b613de26130cd565b6001600160a01b03166108fc839081150290604051600060405180830381858888f19350505050158015613e1a573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e33613e456130cd565b604080516001600160a01b03938416815291909216602082015280820185905290519081900360600190a15050565b613e7d33614515565b613ebc576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b611ca6603b8263ffffffff6157ec16565b6000613ed761583c565b6001600160a01b0316836001600160a01b03161415613ef7575080611563565b816001600160a01b03841615613fbc576000806000613f15876154cd565b5050509350935093505080613f67576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81613fa2576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b613fb683613593888563ffffffff61565f16565b93505050505b6000806000613fc96158b2565b505050935093509350508061401b576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81614061576040805162461bcd60e51b81526020600482015260116024820152700737461626c65636f696e20726174653d3607c1b604482015290519081900360640190fd5b61407582613593868663ffffffff61565f16565b979650505050505050565b61408933614515565b6140c8576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b611c0060478263ffffffff6157ec16565b6140e233614515565b614121576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b6112f060408263ffffffff6157ec16565b61413b33614498565b8061414557503330145b614189576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015614298576141d5828281518110612e9457fe5b15614220576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b031682828151811061423757fe5b60200260200101516001600160a01b03161415614290576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b6001016141bd565b50603a5462010000900460ff16156142ef576040805162461bcd60e51b81526020600482015260156024820152741dda1a5d195b1a5cdd081a5b9a5d1a585b1a5e9959605a1b604482015290519081900360640190fd5b60005b828110156143e0576036600085858481811061430a57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff166143d85760016036600086868581811061434657fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550603784848381811061439b57fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b0395909202939093013593909316929092179055505b6001016142f2565b50603a805462ff0000191662010000179055604080513380825260208201838152603780549484018590527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a949293909290919060608301908490801561447057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614452575b5050935050505060405180910390a1505050565b60445460ff1690565b600061156382614697565b6035546001600160a01b0390811691161490565b600482015460ff16156144fa576040805162461bcd60e51b81526020600482015260116024820152701b1a5b5a5d08185b1c9958591e481cd95d607a1b604482015290519081900360640190fd5b6145048282615a21565b50600401805460ff19166001179055565b600061452260345461484e565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561457757600080fd5b505afa15801561458b573d6000803e3d6000fd5b505050506040513d60208110156145a157600080fd5b505192915050565b600081516041146145bc57506000611563565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156146025760009350505050611563565b8060ff16601b1415801561461a57508060ff16601c14155b1561462b5760009350505050611563565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015614682573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60006001600160a01b0382161561472157604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156146ee57600080fd5b505afa158015614702573d6000803e3d6000fd5b505050506040513d602081101561471857600080fd5b50519050611216565b5047611216565b6002810154600090614743906201518063ffffffff61547316565b42111561475257508054611216565b506001810154611216565b600482015460ff166147b6576040805162461bcd60e51b815260206004820152601960248201527f6c696d6974206861736e2774206265656e207365742079657400000000000000604482015290519081900360640190fd5b600390910155565b6000806147ca836154cd565b509098975050505050505050565b6147e182615a44565b808260010154101561482d576040805162461bcd60e51b815260206004820152601060248201526f185d985a5b18589b194f185b5bdd5b9d60821b604482015290519081900360640190fd5b6001820154614842908263ffffffff61541616565b82600101819055505050565b6033546000906001600160a01b03166148ae576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156148fa57600080fd5b505afa15801561490e573d6000803e3d6000fd5b505050506040513d602081101561492457600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561457757600080fd5b8015806149f5575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b1580156149c757600080fd5b505afa1580156149db573d6000803e3d6000fd5b505050506040513d60208110156149f157600080fd5b5051155b614a305760405162461bcd60e51b8152600401808060200182810382526036815260200180615d7c6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052614a82908490614bb1565b505050565b3b151590565b600080614a99836154cd565b509198975050505050505050565b600080614ab560455461484e565b6001600160a01b031663afc72e9385856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614b29578181015183820152602001614b11565b50505050905090810190601f168015614b565780820380516001836020036101000a031916815260200191505b509350505050604080518083038186803b158015614b7357600080fd5b505afa158015614b87573d6000803e3d6000fd5b505050506040513d6040811015614b9d57600080fd5b508051602090910151909590945092505050565b614bc3826001600160a01b0316614a87565b614c14576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310614c525780518252601f199092019160209182019101614c33565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614cb4576040519150601f19603f3d011682016040523d82523d6000602084013e614cb9565b606091505b509150915081614d10576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115614d6957808060200190516020811015614d2c57600080fd5b5051614d695760405162461bcd60e51b815260040180806020018281038252602a815260200180615d2f602a913960400191505060405180910390fd5b50505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b604c80546001019081905560408051338152602081019290925280517fab0423a75986556234aecd171c46ce7f5e45607d8070bf5230f2735b50322bff9281900390910190a1565b303b1590565b600054610100900460ff1680614e275750614e27614e08565b80614e35575060005460ff16155b614e705760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015614e9b576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821615614ec657603380546001600160a01b0319166001600160a01b0384161790555b8015614ed8576000805461ff00191690555b5050565b600054610100900460ff1680614ef55750614ef5614e08565b80614f03575060005460ff16155b614f3e5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015614f69576000805460ff1961ff0019909116610100171660011790555b8115614ec65760348290558015614ed8576000805461ff00191690555050565b600054610100900460ff1680614fa25750614fa2614e08565b80614fb0575060005460ff16155b614feb5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615016576000805460ff1961ff0019909116610100171660011790555b603580546001600160a01b0319166001600160a01b0385161760ff60a01b1916600160a01b8415158102919091179182905560ff91041661508e57604080516001600160a01b038516815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60408051600081526001600160a01b038516602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a18015614a82576000805461ff0019169055505050565b600054610100900460ff16806151015750615101614e08565b8061510f575060005460ff16155b61514a5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615175576000805460ff1961ff0019909116610100171660011790555b6040805160a08101825283815260208101849052429181018290526000606082018190526080909101819052603b849055603c849055603d91909155603e55603f805460ff191690558015614ed8576000805461ff00191690555050565b600054610100900460ff16806151ec57506151ec614e08565b806151fa575060005460ff16155b6152355760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615260576000805460ff1961ff0019909116610100171660011790555b6040805160a0810182526706f05b59d3b2000080825260208201819052428284018190526000606084018190526080909301839052928190556041556042919091556043556044805460ff1916905580156152c1576000805461ff00191690555b50565b600054610100900460ff16806152dd57506152dd614e08565b806152eb575060005460ff16155b6153265760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615351576000805460ff1961ff0019909116610100171660011790555b61535a82615a9c565b60006153646158b2565b5050505050915050600081116153b1576040805162461bcd60e51b815260206004820152600d60248201526c37379039ba30b13632b1b7b4b760991b604482015290519081900360640190fd5b6127100260468190556040805160a081018252828152602081018390524291810182905260006060820181905260809091018190526047839055604892909255604955604a55604b805460ff191690558015614ed8576000805461ff00191690555050565b60008282111561546d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156121d4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60606000806000806000806154e360455461484e565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b15801561553857600080fd5b505afa15801561554c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561557557600080fd5b8101908080516040519392919084600160201b82111561559457600080fd5b9083019060208201858111156155a957600080fd5b8251600160201b8111828201881017156155c257600080fd5b82525081516020918201929091019080838360005b838110156155ef5781810151838201526020016155d7565b50505050905090810190601f16801561561c5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b60008261566e57506000611563565b8282028284828161567b57fe5b04146121d45760405162461bcd60e51b8152600401808060200182810382526021815260200180615cbd6021913960400191505060405180910390fd5b600080821161570e576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161571957fe5b04949350505050565b6001600160a01b0382166157d2576040516000906001600160a01b0385169083908381818185875af1925050503d806000811461577b576040519150601f19603f3d011682016040523d82523d6000602084013e615780565b606091505b50509050806157cc576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b50614a82565b614a826001600160a01b038316848363ffffffff615b4916565b8082600301541461582e5760405162461bcd60e51b8152600401808060200182810382526022815260200180615c7b6022913960400191505060405180910390fd5b614ed8828360030154615a21565b600061584960455461484e565b6001600160a01b031663e9cbd8226040518163ffffffff1660e01b815260040160206040518083038186803b15801561588157600080fd5b505afa158015615895573d6000803e3d6000fd5b505050506040513d60208110156158ab57600080fd5b5051905090565b60606000806000806000806158c860455461484e565b6001600160a01b0316633efec5e96040518163ffffffff1660e01b815260040160006040518083038186803b15801561590057600080fd5b505afa158015615914573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561593d57600080fd5b8101908080516040519392919084600160201b82111561595c57600080fd5b90830190602082018581111561597157600080fd5b8251600160201b81118282018810171561598a57600080fd5b82525081516020918201929091019080838360005b838110156159b757818101518382015260200161599f565b50505050905090810190601f1680156159e45780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979f939e50919c509a5098509096509294509192505050565b615a2a82615a44565b8082556001820154811015614ed857815460018301555050565b6002810154615a5c906201518063ffffffff61547316565b4211156152c157426002820155805460018201556040517fe93bc25276d408d390778e7a8b926f2f67209c43ed540081b951fe128f0d3cd290600090a150565b600054610100900460ff1680615ab55750615ab5614e08565b80615ac3575060005460ff16155b615afe5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615b29576000805460ff1961ff0019909116610100171660011790555b8115614ec65760458290558015614ed8576000805461ff00191690555050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052614a82908490614bb1565b50805460008255906000526020600020908101906152c19190615c3c565b828054828255906000526020600020908101928215615c0c579160200282015b82811115615c0c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190615bd9565b50615c18929150615c56565b5090565b815481835581811115614a8257600083815260209020614a829181019083015b61121f91905b80821115615c185760008155600101615c42565b61121f91905b80821115615c185780546001600160a01b0319168155600101615c5c56fe636f6e6669726d65642f7375626d6974746564206c696d6974206d69736d6174636873656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646f776e65722063616e6e6f742062652073657420746f207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646e6f6e2d6d61746368696e672070656e64696e672077686974656c69737420686173685361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a72315820e7473c1d0e9d59712ab3eeb1643fd6d3b2f5404cd7decea43f8a5b80833b8a4e64736f6c63430005110032" // DeployWallet deploys a new Ethereum contract, binding an instance of Wallet to it. func DeployWallet(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Wallet, error) { diff --git a/pkg/bindings/walletCache.go b/pkg/bindings/walletCache.go index c375b476..f4e27b4c 100644 --- a/pkg/bindings/walletCache.go +++ b/pkg/bindings/walletCache.go @@ -31,7 +31,7 @@ var ( const WalletCacheABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_walletImplementation_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_defaultSpendLimit_\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_licenceNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_tokenWhitelistNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_walletDeployerNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"addresspayable\",\"name\":\"_wallet\",\"type\":\"address\"}],\"name\":\"CachedWallet\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[],\"name\":\"cacheWallet\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"cachedWallets\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cachedWalletsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"defaultSpendLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ens\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"licenceNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"walletCachePop\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"walletDeployerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"walletImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" // WalletCacheBin is the compiled bytecode used for deploying new contracts. -var WalletCacheBin = "0x60806040527f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fd0ff8bd67f6e25e4e4b010df582a36a0ee9b78e49afe6cc1cff5dd5a830403306035557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d3966036557f1d0c0adbe6addd93659446311e0767a56b67d41ef38f0cb66dcf7560d28a5a386037553480156100a057600080fd5b50604051610d2c380380610d2c833981810160405260e08110156100c357600080fd5b508051602082015160408301516060840151608085015160a086015160c0909601519495939492939192909190610102866001600160e01b0361017916565b610114846001600160e01b0361028916565b603880546001600160a01b03808a166001600160a01b0319928316179092556039805492891692909116919091179055603a85905582156101555760358390555b81156101615760368290555b801561016d5760378190555b50505050505050610346565b600054610100900460ff168061019b575061019b6001600160e01b0361034016565b806101a9575060005460ff16155b6101e45760405162461bcd60e51b815260040180806020018281038252602e815260200180610cfe602e913960400191505060405180910390fd5b600054610100900460ff1615801561020f576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216610258576040805162461bcd60e51b815260206004820152600b60248201526a0656e7352656720697320360ac1b604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b0384161790558015610285576000805461ff00191690555b5050565b600054610100900460ff16806102ab57506102ab6001600160e01b0361034016565b806102b9575060005460ff16155b6102f45760405162461bcd60e51b815260040180806020018281038252602e815260200180610cfe602e913960400191505060405180910390fd5b600054610100900460ff1615801561031f576000805460ff1961ff0019909116610100171660011790555b811561032b5760348290555b8015610285576000805461ff00191690555050565b303b1590565b6109a9806103556000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063877337b011610071578063877337b01461011957806387e8bed114610121578063a4570e5114610129578063a7a7d3bc14610131578063e2b4ce9714610139578063fc6cabe714610141576100b4565b80633f15457f146100b957806360dbc5de146100dd57806371b9076a146100e7578063747c31d6146101015780637d73b231146101095780638117abc114610111575b600080fd5b6100c161015e565b604080516001600160a01b039092168252519081900360200190f35b6100e561016d565b005b6100ef610323565b60408051918252519081900360200190f35b6100ef610329565b6100c161032f565b6100c161033e565b6100ef61034d565b6100ef610353565b6100c1610359565b6100ef610440565b6100ef610446565b6100c16004803603602081101561015757600080fd5b503561044c565b6039546001600160a01b031681565b600061017a603754610473565b6038546040519192506000916001600160a01b039091169061019b906105c6565b6001600160a01b03909116815260406020820181905260008183018190529051918290036080019190f0801580156101d7573d6000803e3d6000fd5b509050806001600160a01b03166369efdfc0836001603960009054906101000a90046001600160a01b031660365461020d610446565b603554603a54604080516001600160e01b031960e08b901b1681526001600160a01b03988916600482015296151560248801529490961660448601526064850192909252608484015260a483015260c4820192909252905160e480830192600092919082900301818387803b15801561028557600080fd5b505af1158015610299573d6000803e3d6000fd5b5050603b80546001810182556000919091527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d0180546001600160a01b0385166001600160a01b0319909116811790915560408051918252517f9ede7876a6b2454072ceeaff4b6b4e6eaa5381db241b850f2a46034136fc2e6e9350908190036020019150a15050565b603b5490565b60355481565b6033546001600160a01b031690565b6038546001600160a01b031681565b60365481565b60375481565b6000610366603754610473565b6001600160a01b0316336001600160a01b0316146103cb576040805162461bcd60e51b815260206004820152601d60248201527f6e6f742063616c6c65642062792077616c6c65742d6465706c6f796572000000604482015290519081900360640190fd5b603b54600111156103de576103de61016d565b603b80546000919060001981019081106103f457fe5b600091825260209091200154603b80546001600160a01b039092169250908061041957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055905090565b603a5481565b60345490565b603b818154811061045957fe5b6000918252602090912001546001600160a01b0316905081565b6033546000906001600160a01b03166104d3576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b15801561051f57600080fd5b505afa158015610533573d6000803e3d6000fd5b505050506040513d602081101561054957600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561059457600080fd5b505afa1580156105a8573d6000803e3d6000fd5b505050506040513d60208110156105be57600080fd5b505192915050565b6103a1806105d48339019056fe60806040526040516103a13803806103a18339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b5060408181527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000082525190819003601c01902060008051602061034683398151915260001990910114925061012a91505057fe5b61013c826001600160e01b036101fb16565b8051156101f4576000826001600160a01b0316826040518082805190602001908083835b6020831061017f5780518252601f199092019160209182019101610160565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101df576040519150601f19603f3d011682016040523d82523d6000602084013e6101e4565b606091505b50509050806101f257600080fd5b505b5050610261565b61020e8161025b60201b61009c1760201c565b6102495760405162461bcd60e51b815260040180806020018281038252603b815260200180610366603b913960400191505060405180910390fd5b60008051602061034683398151915255565b3b151590565b60d78061026f6000396000f3fe6080604052366046576040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a16052565b6052604e6054565b6079565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156097573d6000f35b3d6000fd5b3b15159056fea265627a7a72315820d7acf9351a4581110b7581842069d15e8ceb9389b8b74b0186dcc5ab93ecfff764736f6c63430005110032360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a265627a7a7231582019e453c790f251d3a7706edca978bcd5bb41b195965a3fd4a18f0c3dde0a7f8f64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var WalletCacheBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fd0ff8bd67f6e25e4e4b010df582a36a0ee9b78e49afe6cc1cff5dd5a830403306035557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d3966036557f1d0c0adbe6addd93659446311e0767a56b67d41ef38f0cb66dcf7560d28a5a386037553480156100c157600080fd5b50604051610d13380380610d13833981810160405260e08110156100e457600080fd5b508051602082015160408301516060840151608085015160a086015160c0909601519495939492939192909190610123866001600160e01b0361019a16565b610135846001600160e01b0361027116565b603880546001600160a01b03808a166001600160a01b0319928316179092556039805492891692909116919091179055603a85905582156101765760358390555b81156101825760368290555b801561018e5760378190555b5050505050505061032d565b600054610100900460ff16806101bc57506101bc6001600160e01b0361032716565b806101ca575060005460ff16155b6102055760405162461bcd60e51b815260040180806020018281038252602e815260200180610ce5602e913960400191505060405180910390fd5b600054610100900460ff16158015610230576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382161561025b57603380546001600160a01b0319166001600160a01b0384161790555b801561026d576000805461ff00191690555b5050565b600054610100900460ff168061029357506102936001600160e01b0361032716565b806102a1575060005460ff16155b6102dc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610ce5602e913960400191505060405180910390fd5b600054610100900460ff16158015610307576000805460ff1961ff0019909116610100171660011790555b811561025b576034829055801561026d576000805461ff00191690555050565b303b1590565b6109a98061033c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063877337b011610071578063877337b01461011957806387e8bed114610121578063a4570e5114610129578063a7a7d3bc14610131578063e2b4ce9714610139578063fc6cabe714610141576100b4565b80633f15457f146100b957806360dbc5de146100dd57806371b9076a146100e7578063747c31d6146101015780637d73b231146101095780638117abc114610111575b600080fd5b6100c161015e565b604080516001600160a01b039092168252519081900360200190f35b6100e561016d565b005b6100ef610323565b60408051918252519081900360200190f35b6100ef610329565b6100c161032f565b6100c161033e565b6100ef61034d565b6100ef610353565b6100c1610359565b6100ef610440565b6100ef610446565b6100c16004803603602081101561015757600080fd5b503561044c565b6039546001600160a01b031681565b600061017a603754610473565b6038546040519192506000916001600160a01b039091169061019b906105c6565b6001600160a01b03909116815260406020820181905260008183018190529051918290036080019190f0801580156101d7573d6000803e3d6000fd5b509050806001600160a01b03166369efdfc0836001603960009054906101000a90046001600160a01b031660365461020d610446565b603554603a54604080516001600160e01b031960e08b901b1681526001600160a01b03988916600482015296151560248801529490961660448601526064850192909252608484015260a483015260c4820192909252905160e480830192600092919082900301818387803b15801561028557600080fd5b505af1158015610299573d6000803e3d6000fd5b5050603b80546001810182556000919091527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d0180546001600160a01b0385166001600160a01b0319909116811790915560408051918252517f9ede7876a6b2454072ceeaff4b6b4e6eaa5381db241b850f2a46034136fc2e6e9350908190036020019150a15050565b603b5490565b60355481565b6033546001600160a01b031690565b6038546001600160a01b031681565b60365481565b60375481565b6000610366603754610473565b6001600160a01b0316336001600160a01b0316146103cb576040805162461bcd60e51b815260206004820152601d60248201527f6e6f742063616c6c65642062792077616c6c65742d6465706c6f796572000000604482015290519081900360640190fd5b603b54600111156103de576103de61016d565b603b80546000919060001981019081106103f457fe5b600091825260209091200154603b80546001600160a01b039092169250908061041957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055905090565b603a5481565b60345490565b603b818154811061045957fe5b6000918252602090912001546001600160a01b0316905081565b6033546000906001600160a01b03166104d3576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b15801561051f57600080fd5b505afa158015610533573d6000803e3d6000fd5b505050506040513d602081101561054957600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561059457600080fd5b505afa1580156105a8573d6000803e3d6000fd5b505050506040513d60208110156105be57600080fd5b505192915050565b6103a1806105d48339019056fe60806040526040516103a13803806103a18339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b5060408181527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000082525190819003601c01902060008051602061034683398151915260001990910114925061012a91505057fe5b61013c826001600160e01b036101fb16565b8051156101f4576000826001600160a01b0316826040518082805190602001908083835b6020831061017f5780518252601f199092019160209182019101610160565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101df576040519150601f19603f3d011682016040523d82523d6000602084013e6101e4565b606091505b50509050806101f257600080fd5b505b5050610261565b61020e8161025b60201b61009c1760201c565b6102495760405162461bcd60e51b815260040180806020018281038252603b815260200180610366603b913960400191505060405180910390fd5b60008051602061034683398151915255565b3b151590565b60d78061026f6000396000f3fe6080604052366046576040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a16052565b6052604e6054565b6079565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156097573d6000f35b3d6000fd5b3b15159056fea265627a7a7231582058f40811b947b3087b4bc98e2e55fad06453ab3add16603dca7f42157d4de2e364736f6c63430005110032360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a265627a7a72315820f7ecfb181330c26c796e5c39bfe79aba509b960abfdaaa4a71bb1fee37cddb7c64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployWalletCache deploys a new Ethereum contract, binding an instance of WalletCache to it. func DeployWalletCache(auth *bind.TransactOpts, backend bind.ContractBackend, _walletImplementation_ common.Address, _ens_ common.Address, _defaultSpendLimit_ *big.Int, _controllerNode_ [32]byte, _licenceNode_ [32]byte, _tokenWhitelistNode_ [32]byte, _walletDeployerNode_ [32]byte) (common.Address, *types.Transaction, *WalletCache, error) { diff --git a/pkg/bindings/walletDeployer.go b/pkg/bindings/walletDeployer.go index f4d1ebbb..917ac25c 100644 --- a/pkg/bindings/walletDeployer.go +++ b/pkg/bindings/walletDeployer.go @@ -31,7 +31,7 @@ var ( const WalletDeployerABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_walletCacheNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"DeployedWallet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_oldWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_paid\",\"type\":\"uint256\"}],\"name\":\"MigratedWallet\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"deployWallet\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deployedWallets\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"_oldWallet\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_initializedSpendLimit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_initializedGasTopUpLimit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_initializedLoadLimit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_initializedWhitelist\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"_spendLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasTopUpLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_loadLimit\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_whitelistedAddresses\",\"type\":\"address[]\"}],\"name\":\"migrateWallet\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"walletCacheNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" // WalletDeployerBin is the compiled bytecode used for deploying new contracts. -var WalletDeployerBin = "0x60806040527f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557faf553cb0d77690819f9d6fbaa04416e1fdcfa01b2a9a833c7a11e6ae0bc1be886035553480156200005957600080fd5b5060405162000d9338038062000d93833981810160405260608110156200007f57600080fd5b5080516020820151604090920151909190620000a4836001600160e01b03620000ce16565b620000b8826001600160e01b03620001e716565b8015620000c55760358190555b505050620002ad565b600054610100900460ff1680620000f35750620000f36001600160e01b03620002a716565b8062000102575060005460ff16155b6200013f5760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d65602e913960400191505060405180910390fd5b600054610100900460ff161580156200016b576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216620001b5576040805162461bcd60e51b815260206004820152600b60248201526a0656e7352656720697320360ac1b604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b0384161790558015620001e3576000805461ff00191690555b5050565b600054610100900460ff16806200020c57506200020c6001600160e01b03620002a716565b806200021b575060005460ff16155b620002585760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d65602e913960400191505060405180910390fd5b600054610100900460ff1615801562000284576000805460ff1961ff0019909116610100171660011790555b8115620002915760348290555b8015620001e3576000805461ff00191690555050565b303b1590565b610aa880620002bd6000396000f3fe6080604052600436106100555760003560e01c80637d73b2311461005a57806380a12c0e1461008b5780638d682ef7146100be578063a6ede3d414610180578063c8cc2fc2146101a7578063e2b4ce97146101da575b600080fd5b34801561006657600080fd5b5061006f6101ef565b604080516001600160a01b039092168252519081900360200190f35b34801561009757600080fd5b5061006f600480360360208110156100ae57600080fd5b50356001600160a01b03166101fe565b61017e60048036036101408110156100d557600080fd5b6001600160a01b03823581169260208101359091169160408201351515916060810135151591608082013515159160a081013515159160c08201359160e0810135916101008201359190810190610140810161012082013564010000000081111561013f57600080fd5b82018360208201111561015157600080fd5b8035906020019184602083028401116401000000008311171561017357600080fd5b509092509050610219565b005b34801561018c57600080fd5b506101956106f3565b60408051918252519081900360200190f35b3480156101b357600080fd5b5061017e600480360360208110156101ca57600080fd5b50356001600160a01b03166106f9565b3480156101e657600080fd5b50610195610897565b6033546001600160a01b031690565b6036602052600090815260409020546001600160a01b031681565b6102223361089d565b610273576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6001600160a01b038b811660009081526036602052604090205416156102ca5760405162461bcd60e51b8152600401808060200182810382526021815260200180610a536021913960400191505060405180910390fd5b8a6001600160a01b03168a6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561030d57600080fd5b505afa158015610321573d6000803e3d6000fd5b505050506040513d602081101561033757600080fd5b50516001600160a01b031614610385576040805162461bcd60e51b815260206004820152600e60248201526d0deeedccae440dad2e6dac2e8c6d60931b604482015290519081900360640190fd5b6000610392603554610931565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156103cc57600080fd5b505af11580156103e0573d6000803e3d6000fd5b505050506040513d60208110156103f657600080fd5b5051604080516001600160a01b038084168252808f1660208301528f168183015234606082015290519192507fc65d6ee9571556236e352151c95c79b6589474ad814195aaac7d5ab8d88ba2dd919081900360800190a16001600160a01b038c8116600090815260366020526040902080546001600160a01b03191691831691909117905589156104e057806001600160a01b0316633c672eb7876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156104c757600080fd5b505af11580156104db573d6000803e3d6000fd5b505050505b881561054557806001600160a01b0316630f3a85d8866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561052c57600080fd5b505af1158015610540573d6000803e3d6000fd5b505050505b87156105aa57806001600160a01b0316633bfec254856040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561059157600080fd5b505af11580156105a5573d6000803e3d6000fd5b505050505b861561063e57806001600160a01b031663f421764884846040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561062557600080fd5b505af1158015610639573d6000803e3d6000fd5b505050505b60408051632c90b94d60e21b81526001600160a01b038e8116600483015260006024830181905292519084169263b242e534926044808201939182900301818387803b15801561068d57600080fd5b505af11580156106a1573d6000803e3d6000fd5b5050505060003411156106e5576040516001600160a01b038d16903480156108fc02916000818181858888f193505050501580156106e3573d6000803e3d6000fd5b505b505050505050505050505050565b60355481565b6107023361089d565b610753576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6000610760603554610931565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b505050506040513d60208110156107c457600080fd5b5051604080516001600160a01b0380841682528516602082015281519293507fc02db5f4164f89d90905928336769906e16d79c4a77342126eb647ca9440d078929081900390910190a16001600160a01b0382811660008181526036602052604080822080546001600160a01b03191694861694851790558051632c90b94d60e21b81526004810193909352602483018290525163b242e53492604480820193929182900301818387803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050505050565b60345490565b60006108aa603454610931565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156108ff57600080fd5b505afa158015610913573d6000803e3d6000fd5b505050506040513d602081101561092957600080fd5b505192915050565b6033546000906001600160a01b0316610991576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d6020811015610a0757600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b1580156108ff57600080fdfe77616c6c657420616c7265616479206465706c6f79656420666f72206f776e6572a265627a7a7231582071d1d6dada4bb66b4fc9e9543567ecf4db053abf22bf258c1370bebca5b0532b64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var WalletDeployerBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557faf553cb0d77690819f9d6fbaa04416e1fdcfa01b2a9a833c7a11e6ae0bc1be886035553480156200007a57600080fd5b5060405162000d7a38038062000d7a83398181016040526060811015620000a057600080fd5b5080516020820151604090920151909190620000c5836001600160e01b03620000ef16565b620000d9826001600160e01b03620001cf16565b8015620000e65760358190555b50505062000294565b600054610100900460ff1680620001145750620001146001600160e01b036200028e16565b8062000123575060005460ff16155b620001605760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d4c602e913960400191505060405180910390fd5b600054610100900460ff161580156200018c576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821615620001b857603380546001600160a01b0319166001600160a01b0384161790555b8015620001cb576000805461ff00191690555b5050565b600054610100900460ff1680620001f45750620001f46001600160e01b036200028e16565b8062000203575060005460ff16155b620002405760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d4c602e913960400191505060405180910390fd5b600054610100900460ff161580156200026c576000805460ff1961ff0019909116610100171660011790555b8115620001b85760348290558015620001cb576000805461ff00191690555050565b303b1590565b610aa880620002a46000396000f3fe6080604052600436106100555760003560e01c80637d73b2311461005a57806380a12c0e1461008b5780638d682ef7146100be578063a6ede3d414610180578063c8cc2fc2146101a7578063e2b4ce97146101da575b600080fd5b34801561006657600080fd5b5061006f6101ef565b604080516001600160a01b039092168252519081900360200190f35b34801561009757600080fd5b5061006f600480360360208110156100ae57600080fd5b50356001600160a01b03166101fe565b61017e60048036036101408110156100d557600080fd5b6001600160a01b03823581169260208101359091169160408201351515916060810135151591608082013515159160a081013515159160c08201359160e0810135916101008201359190810190610140810161012082013564010000000081111561013f57600080fd5b82018360208201111561015157600080fd5b8035906020019184602083028401116401000000008311171561017357600080fd5b509092509050610219565b005b34801561018c57600080fd5b506101956106f3565b60408051918252519081900360200190f35b3480156101b357600080fd5b5061017e600480360360208110156101ca57600080fd5b50356001600160a01b03166106f9565b3480156101e657600080fd5b50610195610897565b6033546001600160a01b031690565b6036602052600090815260409020546001600160a01b031681565b6102223361089d565b610273576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6001600160a01b038b811660009081526036602052604090205416156102ca5760405162461bcd60e51b8152600401808060200182810382526021815260200180610a536021913960400191505060405180910390fd5b8a6001600160a01b03168a6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561030d57600080fd5b505afa158015610321573d6000803e3d6000fd5b505050506040513d602081101561033757600080fd5b50516001600160a01b031614610385576040805162461bcd60e51b815260206004820152600e60248201526d0deeedccae440dad2e6dac2e8c6d60931b604482015290519081900360640190fd5b6000610392603554610931565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156103cc57600080fd5b505af11580156103e0573d6000803e3d6000fd5b505050506040513d60208110156103f657600080fd5b5051604080516001600160a01b038084168252808f1660208301528f168183015234606082015290519192507fc65d6ee9571556236e352151c95c79b6589474ad814195aaac7d5ab8d88ba2dd919081900360800190a16001600160a01b038c8116600090815260366020526040902080546001600160a01b03191691831691909117905589156104e057806001600160a01b0316633c672eb7876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156104c757600080fd5b505af11580156104db573d6000803e3d6000fd5b505050505b881561054557806001600160a01b0316630f3a85d8866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561052c57600080fd5b505af1158015610540573d6000803e3d6000fd5b505050505b87156105aa57806001600160a01b0316633bfec254856040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561059157600080fd5b505af11580156105a5573d6000803e3d6000fd5b505050505b861561063e57806001600160a01b031663f421764884846040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561062557600080fd5b505af1158015610639573d6000803e3d6000fd5b505050505b60408051632c90b94d60e21b81526001600160a01b038e8116600483015260006024830181905292519084169263b242e534926044808201939182900301818387803b15801561068d57600080fd5b505af11580156106a1573d6000803e3d6000fd5b5050505060003411156106e5576040516001600160a01b038d16903480156108fc02916000818181858888f193505050501580156106e3573d6000803e3d6000fd5b505b505050505050505050505050565b60355481565b6107023361089d565b610753576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6000610760603554610931565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b505050506040513d60208110156107c457600080fd5b5051604080516001600160a01b0380841682528516602082015281519293507fc02db5f4164f89d90905928336769906e16d79c4a77342126eb647ca9440d078929081900390910190a16001600160a01b0382811660008181526036602052604080822080546001600160a01b03191694861694851790558051632c90b94d60e21b81526004810193909352602483018290525163b242e53492604480820193929182900301818387803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050505050565b60345490565b60006108aa603454610931565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156108ff57600080fd5b505afa158015610913573d6000803e3d6000fd5b505050506040513d602081101561092957600080fd5b505192915050565b6033546000906001600160a01b0316610991576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d6020811015610a0757600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b1580156108ff57600080fdfe77616c6c657420616c7265616479206465706c6f79656420666f72206f776e6572a265627a7a723158204b30c66037e971e53ea87b0565c05f2f6ae573b6a8409e21d0e42da7df4dfcda64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployWalletDeployer deploys a new Ethereum contract, binding an instance of WalletDeployer to it. func DeployWalletDeployer(auth *bind.TransactOpts, backend bind.ContractBackend, _ens_ common.Address, _controllerNode_ [32]byte, _walletCacheNode_ [32]byte) (common.Address, *types.Transaction, *WalletDeployer, error) { From 3a6e045c8b5ce431d3d734535f5110848714ad85 Mon Sep 17 00:00:00 2001 From: i-stam Date: Wed, 15 Jul 2020 11:02:23 +0100 Subject: [PATCH 2/2] Make explicit casting to address and run slither --- contracts/internals/ensResolvable.sol | 2 +- pkg/bindings/holder.go | 2 +- pkg/bindings/licence.go | 2 +- pkg/bindings/mocks/isValidSignatureExporter.go | 2 +- pkg/bindings/mocks/tokenWhitelistableExporter.go | 2 +- pkg/bindings/oracle.go | 2 +- pkg/bindings/tokenWhitelist.go | 2 +- pkg/bindings/wallet.go | 2 +- pkg/bindings/walletCache.go | 2 +- pkg/bindings/walletDeployer.go | 2 +- tools/slither/slither.db.json | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/contracts/internals/ensResolvable.sol b/contracts/internals/ensResolvable.sol index 547e35c0..189e9528 100644 --- a/contracts/internals/ensResolvable.sol +++ b/contracts/internals/ensResolvable.sol @@ -27,7 +27,7 @@ import "../externals/ens/PublicResolver.sol"; ///@notice contract should be used to get an address for an ENS node contract ENSResolvable is Initializable { /// @notice Address of the ENS registry contract set to the default ENS registry address. - address private _ensRegistry = 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e; + address private _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e); /// @notice Checks if the contract has been initialized succesfully i.e. the ENS registry has been set. modifier initialized() { diff --git a/pkg/bindings/holder.go b/pkg/bindings/holder.go index f6942721..018ba928 100644 --- a/pkg/bindings/holder.go +++ b/pkg/bindings/holder.go @@ -31,7 +31,7 @@ var ( const HolderABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_burnerContract_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tokenWhitelistNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"CashAndBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Received\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_nonRedeemableAddresses\",\"type\":\"address[]\"}],\"name\":\"nonRedeemableTokenClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" // HolderBin is the compiled bytecode used for deploying new contracts. -var HolderBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d3966035553480156200007a57600080fd5b50604051620013233803806200132383398181016040526080811015620000a057600080fd5b5080516020820151604083015160609093015191929091620000cb836001600160e01b036200011d16565b620000df816001600160e01b03620001fd16565b620000f3826001600160e01b03620002bc16565b5050603680546001600160a01b0319166001600160a01b0393909316929092179091555062000381565b600054610100900460ff1680620001425750620001426001600160e01b036200037b16565b8062000151575060005460ff16155b6200018e5760405162461bcd60e51b815260040180806020018281038252602e815260200180620012f5602e913960400191505060405180910390fd5b600054610100900460ff16158015620001ba576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821615620001e657603380546001600160a01b0319166001600160a01b0384161790555b8015620001f9576000805461ff00191690555b5050565b600054610100900460ff1680620002225750620002226001600160e01b036200037b16565b8062000231575060005460ff16155b6200026e5760405162461bcd60e51b815260040180806020018281038252602e815260200180620012f5602e913960400191505060405180910390fd5b600054610100900460ff161580156200029a576000805460ff1961ff0019909116610100171660011790555b8115620001e65760348290558015620001f9576000805461ff00191690555050565b600054610100900460ff1680620002e15750620002e16001600160e01b036200037b16565b80620002f0575060005460ff16155b6200032d5760405162461bcd60e51b815260040180806020018281038252602e815260200180620012f5602e913960400191505060405180910390fd5b600054610100900460ff1615801562000359576000805460ff1961ff0019909116610100171660011790555b8115620001e65760358290558015620001f9576000805461ff00191690555050565b303b1590565b610f6480620003916000396000f3fe6080604052600436106100555760003560e01c806327810b6e1461009157806340f6a70f146100c25780637d73b23114610163578063877337b0146101785780639dc29fac1461019f578063e2b4ce97146101d8575b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b34801561009d57600080fd5b506100a66101ed565b604080516001600160a01b039092168252519081900360200190f35b3480156100ce57600080fd5b5061014f600480360360408110156100e557600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561011057600080fd5b82018360208201111561012257600080fd5b8035906020019184602083028401116401000000008311171561014457600080fd5b5090925090506101fc565b604080519115158252519081900360200190f35b34801561016f57600080fd5b506100a661039e565b34801561018457600080fd5b5061018d6103ad565b60408051918252519081900360200190f35b3480156101ab57600080fd5b5061014f600480360360408110156101c257600080fd5b506001600160a01b0381351690602001356103b3565b3480156101e457600080fd5b5061018d6105b1565b6036546001600160a01b031690565b6000610207336105b7565b610251576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b60005b828110156103935761028084848381811061026b57fe5b905060200201356001600160a01b031661064d565b156102d2576040805162461bcd60e51b815260206004820152601d60248201527f72656465656d61626c65732063616e6e6f7420626520636c61696d6564000000604482015290519081900360640190fd5b60006102f88585848181106102e357fe5b905060200201356001600160a01b0316610666565b9050801561038a576103268686868581811061031057fe5b905060200201356001600160a01b0316836106f7565b7ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838686868581811061035457fe5b604080516001600160a01b0395861681526020928302949094013594909416908301525080820184905290519081900360600190a15b50600101610254565b506001949350505050565b6033546001600160a01b031690565b60355490565b6036546000906001600160a01b031633146103ff5760405162461bcd60e51b8152600401808060200182810382526021815260200180610f0f6021913960400191505060405180910390fd5b8161040c575060016105ab565b600061049883603660009054906101000a90046001600160a01b03166001600160a01b031663771282f66040518163ffffffff1660e01b815260040160206040518083038186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d602081101561048a57600080fd5b50519063ffffffff6107c616565b905060606104a4610827565b905060005b81518110156105a35760006104d08383815181106104c357fe5b6020026020010151610666565b9050801561059a5760006104fa856104ee848a63ffffffff61093a16565b9063ffffffff61099316565b905061051a8885858151811061050c57fe5b6020026020010151836106f7565b7f43e074e3351faae8657cc314cf10440a8e7a87ce5092ee4bf9baf56f73fe6c568885858151811061054857fe5b60200260200101518360405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a1505b506001016104a9565b506001925050505b92915050565b60345490565b60006105c46034546109fd565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d602081101561064357600080fd5b505190505b919050565b60008061065983610b1e565b5098975050505050505050565b60006001600160a01b038216156106f057604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106bd57600080fd5b505afa1580156106d1573d6000803e3d6000fd5b505050506040513d60208110156106e757600080fd5b50519050610648565b5047610648565b6001600160a01b0382166107a7576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114610750576040519150601f19603f3d011682016040523d82523d6000602084013e610755565b606091505b50509050806107a1576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506107c1565b6107c16001600160a01b038316848363ffffffff610cb216565b505050565b600082820183811015610820576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60606108346035546109fd565b6001600160a01b03166344b049bc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561086c57600080fd5b505afa158015610880573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156108a957600080fd5b81019080805160405193929190846401000000008211156108c957600080fd5b9083019060208201858111156108de57600080fd5b82518660208202830111640100000000821117156108fb57600080fd5b82525081516020918201928201910280838360005b83811015610928578181015183820152602001610910565b50505050905001604052505050905090565b600082610949575060006105ab565b8282028284828161095657fe5b04146108205760405162461bcd60e51b8152600401808060200182810382526021815260200180610ec46021913960400191505060405180910390fd5b60008082116109e9576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816109f457fe5b04949350505050565b6033546000906001600160a01b0316610a5d576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015610aa957600080fd5b505afa158015610abd573d6000803e3d6000fd5b505050506040513d6020811015610ad357600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561061957600080fd5b6060600080600080600080610b346035546109fd565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b158015610b8957600080fd5b505afa158015610b9d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610bc657600080fd5b8101908080516040519392919084640100000000821115610be657600080fd5b908301906020820185811115610bfb57600080fd5b8251640100000000811182820188101715610c1557600080fd5b82525081516020918201929091019080838360005b83811015610c42578181015183820152602001610c2a565b50505050905090810190601f168015610c6f5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107c1908490610d11826001600160a01b0316610ebd565b610d62576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310610da05780518252601f199092019160209182019101610d81565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610e02576040519150601f19603f3d011682016040523d82523d6000602084013e610e07565b606091505b509150915081610e5e576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610eb757808060200190516020811015610e7a57600080fd5b5051610eb75760405162461bcd60e51b815260040180806020018281038252602a815260200180610ee5602a913960400191505060405180910390fd5b50505050565b3b15159056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646275726e657220636f6e7472616374206973206e6f74207468652073656e646572a265627a7a7231582085a39a71165d6f9d9c41c2f40759f4d21cb8f572d9d499f4fc637fb8d4f5754364736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var HolderBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d3966035553480156200007a57600080fd5b50604051620013233803806200132383398181016040526080811015620000a057600080fd5b5080516020820151604083015160609093015191929091620000cb836001600160e01b036200011d16565b620000df816001600160e01b03620001fd16565b620000f3826001600160e01b03620002bc16565b5050603680546001600160a01b0319166001600160a01b0393909316929092179091555062000381565b600054610100900460ff1680620001425750620001426001600160e01b036200037b16565b8062000151575060005460ff16155b6200018e5760405162461bcd60e51b815260040180806020018281038252602e815260200180620012f5602e913960400191505060405180910390fd5b600054610100900460ff16158015620001ba576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821615620001e657603380546001600160a01b0319166001600160a01b0384161790555b8015620001f9576000805461ff00191690555b5050565b600054610100900460ff1680620002225750620002226001600160e01b036200037b16565b8062000231575060005460ff16155b6200026e5760405162461bcd60e51b815260040180806020018281038252602e815260200180620012f5602e913960400191505060405180910390fd5b600054610100900460ff161580156200029a576000805460ff1961ff0019909116610100171660011790555b8115620001e65760348290558015620001f9576000805461ff00191690555050565b600054610100900460ff1680620002e15750620002e16001600160e01b036200037b16565b80620002f0575060005460ff16155b6200032d5760405162461bcd60e51b815260040180806020018281038252602e815260200180620012f5602e913960400191505060405180910390fd5b600054610100900460ff1615801562000359576000805460ff1961ff0019909116610100171660011790555b8115620001e65760358290558015620001f9576000805461ff00191690555050565b303b1590565b610f6480620003916000396000f3fe6080604052600436106100555760003560e01c806327810b6e1461009157806340f6a70f146100c25780637d73b23114610163578063877337b0146101785780639dc29fac1461019f578063e2b4ce97146101d8575b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b34801561009d57600080fd5b506100a66101ed565b604080516001600160a01b039092168252519081900360200190f35b3480156100ce57600080fd5b5061014f600480360360408110156100e557600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561011057600080fd5b82018360208201111561012257600080fd5b8035906020019184602083028401116401000000008311171561014457600080fd5b5090925090506101fc565b604080519115158252519081900360200190f35b34801561016f57600080fd5b506100a661039e565b34801561018457600080fd5b5061018d6103ad565b60408051918252519081900360200190f35b3480156101ab57600080fd5b5061014f600480360360408110156101c257600080fd5b506001600160a01b0381351690602001356103b3565b3480156101e457600080fd5b5061018d6105b1565b6036546001600160a01b031690565b6000610207336105b7565b610251576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b60005b828110156103935761028084848381811061026b57fe5b905060200201356001600160a01b031661064d565b156102d2576040805162461bcd60e51b815260206004820152601d60248201527f72656465656d61626c65732063616e6e6f7420626520636c61696d6564000000604482015290519081900360640190fd5b60006102f88585848181106102e357fe5b905060200201356001600160a01b0316610666565b9050801561038a576103268686868581811061031057fe5b905060200201356001600160a01b0316836106f7565b7ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838686868581811061035457fe5b604080516001600160a01b0395861681526020928302949094013594909416908301525080820184905290519081900360600190a15b50600101610254565b506001949350505050565b6033546001600160a01b031690565b60355490565b6036546000906001600160a01b031633146103ff5760405162461bcd60e51b8152600401808060200182810382526021815260200180610f0f6021913960400191505060405180910390fd5b8161040c575060016105ab565b600061049883603660009054906101000a90046001600160a01b03166001600160a01b031663771282f66040518163ffffffff1660e01b815260040160206040518083038186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d602081101561048a57600080fd5b50519063ffffffff6107c616565b905060606104a4610827565b905060005b81518110156105a35760006104d08383815181106104c357fe5b6020026020010151610666565b9050801561059a5760006104fa856104ee848a63ffffffff61093a16565b9063ffffffff61099316565b905061051a8885858151811061050c57fe5b6020026020010151836106f7565b7f43e074e3351faae8657cc314cf10440a8e7a87ce5092ee4bf9baf56f73fe6c568885858151811061054857fe5b60200260200101518360405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a1505b506001016104a9565b506001925050505b92915050565b60345490565b60006105c46034546109fd565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d602081101561064357600080fd5b505190505b919050565b60008061065983610b1e565b5098975050505050505050565b60006001600160a01b038216156106f057604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106bd57600080fd5b505afa1580156106d1573d6000803e3d6000fd5b505050506040513d60208110156106e757600080fd5b50519050610648565b5047610648565b6001600160a01b0382166107a7576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114610750576040519150601f19603f3d011682016040523d82523d6000602084013e610755565b606091505b50509050806107a1576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506107c1565b6107c16001600160a01b038316848363ffffffff610cb216565b505050565b600082820183811015610820576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60606108346035546109fd565b6001600160a01b03166344b049bc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561086c57600080fd5b505afa158015610880573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156108a957600080fd5b81019080805160405193929190846401000000008211156108c957600080fd5b9083019060208201858111156108de57600080fd5b82518660208202830111640100000000821117156108fb57600080fd5b82525081516020918201928201910280838360005b83811015610928578181015183820152602001610910565b50505050905001604052505050905090565b600082610949575060006105ab565b8282028284828161095657fe5b04146108205760405162461bcd60e51b8152600401808060200182810382526021815260200180610ec46021913960400191505060405180910390fd5b60008082116109e9576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816109f457fe5b04949350505050565b6033546000906001600160a01b0316610a5d576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015610aa957600080fd5b505afa158015610abd573d6000803e3d6000fd5b505050506040513d6020811015610ad357600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561061957600080fd5b6060600080600080600080610b346035546109fd565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b158015610b8957600080fd5b505afa158015610b9d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610bc657600080fd5b8101908080516040519392919084640100000000821115610be657600080fd5b908301906020820185811115610bfb57600080fd5b8251640100000000811182820188101715610c1557600080fd5b82525081516020918201929091019080838360005b83811015610c42578181015183820152602001610c2a565b50505050905090810190601f168015610c6f5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107c1908490610d11826001600160a01b0316610ebd565b610d62576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310610da05780518252601f199092019160209182019101610d81565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610e02576040519150601f19603f3d011682016040523d82523d6000602084013e610e07565b606091505b509150915081610e5e576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610eb757808060200190516020811015610e7a57600080fd5b5051610eb75760405162461bcd60e51b815260040180806020018281038252602a815260200180610ee5602a913960400191505060405180910390fd5b50505050565b3b15159056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646275726e657220636f6e7472616374206973206e6f74207468652073656e646572a265627a7a723158202aac088ecb43ec1a0c75ae9597a5bfea5fcc4ed7897dfd3d8f01b7851acde60f64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployHolder deploys a new Ethereum contract, binding an instance of Holder to it. func DeployHolder(auth *bind.TransactOpts, backend bind.ContractBackend, _burnerContract_ common.Address, _ens_ common.Address, _tokenWhitelistNode_ [32]byte, _controllerNode_ [32]byte) (common.Address, *types.Transaction, *Holder, error) { diff --git a/pkg/bindings/licence.go b/pkg/bindings/licence.go index e43b4482..5c62a201 100644 --- a/pkg/bindings/licence.go +++ b/pkg/bindings/licence.go @@ -31,7 +31,7 @@ var ( const LicenceABI = "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_licence_\",\"type\":\"uint256\"},{\"internalType\":\"addresspayable\",\"name\":\"_float_\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"_holder_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tknAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TransferredToCryptoFloat\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TransferredToTokenHolder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFloat\",\"type\":\"address\"}],\"name\":\"UpdatedCryptoFloat\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"UpdatedLicenceAmount\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newDAO\",\"type\":\"address\"}],\"name\":\"UpdatedLicenceDAO\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newTKN\",\"type\":\"address\"}],\"name\":\"UpdatedTKNContractAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newHolder\",\"type\":\"address\"}],\"name\":\"UpdatedTokenHolder\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_AMOUNT_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_AMOUNT_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cryptoFloat\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"floatLocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"holderLocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"licenceAmountScaled\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"licenceDAO\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"licenceDAOLocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"load\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"lockFloat\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"lockHolder\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"lockLicenceDAO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"lockTKNContractAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tknContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tknContractAddressLocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenHolder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_newFloat\",\"type\":\"address\"}],\"name\":\"updateFloat\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_newHolder\",\"type\":\"address\"}],\"name\":\"updateHolder\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"updateLicenceAmount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newDAO\",\"type\":\"address\"}],\"name\":\"updateLicenceDAO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newTKN\",\"type\":\"address\"}],\"name\":\"updateTKNContractAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" // LicenceBin is the compiled bytecode used for deploying new contracts. -var LicenceBin = "0x6080604052603380546001600160a01b03199081166e0c2e074ec69a0dfb2997ba6c7d2e1e179091557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034556035805490911673aaaf91d9b90df800df4f55c205fd6989c977e73a1790553480156200007857600080fd5b506040516200185d3803806200185d833981810160405260c08110156200009e57600080fd5b508051602082015160408301516060840151608085015160a090950151939492939192909160018610801590620000d757506103e88611155b62000129576040805162461bcd60e51b815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b6200013d826001600160e01b03620001b416565b62000151816001600160e01b036200029416565b6039869055603680546001600160a01b038088166001600160a01b031992831617909255603780548784169216919091179055831615620001a857603580546001600160a01b0319166001600160a01b0385161790555b50505050505062000359565b600054610100900460ff1680620001d95750620001d96001600160e01b036200035316565b80620001e8575060005460ff16155b620002255760405162461bcd60e51b815260040180806020018281038252602e8152602001806200182f602e913960400191505060405180910390fd5b600054610100900460ff1615801562000251576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200027d57603380546001600160a01b0319166001600160a01b0384161790555b801562000290576000805461ff00191690555b5050565b600054610100900460ff1680620002b95750620002b96001600160e01b036200035316565b80620002c8575060005460ff16155b620003055760405162461bcd60e51b815260040180806020018281038252602e8152602001806200182f602e913960400191505060405180910390fd5b600054610100900460ff1615801562000331576000805460ff1961ff0019909116610100171660011790555b81156200027d576034829055801562000290576000805461ff00191690555050565b303b1590565b6114c680620003696000396000f3fe60806040526004361061014b5760003560e01c8063996cba68116100b6578063d0cddd671161006f578063d0cddd671461039f578063d1696b16146103d2578063e2b4ce97146103e7578063e30c5fa8146103fc578063e3d8024214610411578063f15ff455146104445761014b565b8063996cba68146102f357806399a5e1d014610336578063a036ba601461034b578063ac904c6314610360578063ca0e2e2014610375578063d08b4ecc1461038a5761014b565b806342719faa1161010857806342719faa1461022e5780634ac22b3c1461026157806368ce74e7146102765780637d73b231146102a0578063837c70ef146102b5578063940b9c3b146102de5761014b565b80630bf25c911461014d5780630d42e82f146101625780631b3c96b4146101955780633a7afe02146101c15780633acec15f146101f2578063420a83e714610219575b005b34801561015957600080fd5b5061014b610459565b34801561016e57600080fd5b5061014b6004803603602081101561018557600080fd5b50356001600160a01b03166104b6565b61014b600480360360408110156101ab57600080fd5b506001600160a01b03813516906020013561059c565b3480156101cd57600080fd5b506101d66107ec565b604080516001600160a01b039092168252519081900360200190f35b3480156101fe57600080fd5b506102076107fb565b60408051918252519081900360200190f35b34801561022557600080fd5b506101d6610800565b34801561023a57600080fd5b5061014b6004803603602081101561025157600080fd5b50356001600160a01b031661080f565b34801561026d57600080fd5b5061014b610905565b34801561028257600080fd5b5061014b6004803603602081101561029957600080fd5b5035610962565b3480156102ac57600080fd5b506101d6610a60565b3480156102c157600080fd5b506102ca610a6f565b604080519115158252519081900360200190f35b3480156102ea57600080fd5b506102ca610a7f565b3480156102ff57600080fd5b5061014b6004803603606081101561031657600080fd5b506001600160a01b03813581169160208101359091169060400135610a8f565b34801561034257600080fd5b506101d6610b31565b34801561035757600080fd5b506101d6610b40565b34801561036c57600080fd5b50610207610b4f565b34801561038157600080fd5b50610207610b55565b34801561039657600080fd5b5061014b610b5b565b3480156103ab57600080fd5b5061014b600480360360208110156103c257600080fd5b50356001600160a01b0316610bb8565b3480156103de57600080fd5b5061014b610ca0565b3480156103f357600080fd5b50610207610cfd565b34801561040857600080fd5b506102ca610d03565b34801561041d57600080fd5b5061014b6004803603602081101561043457600080fd5b50356001600160a01b0316610d13565b34801561045057600080fd5b506102ca610df9565b61046233610e09565b6104a1576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60b81b1916600160b81b179055565b6104bf33610e09565b6104fe576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610506610a6f565b15610548576040805162461bcd60e51b815260206004820152600d60248201526c1512d3881a5cc81b1bd8dad959609a1b604482015290519081900360640190fd5b603580546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f2aeed92123e61fe64748a447c2ba122c4bfc0201d1ed5149e9ce9ede5adda5459181900360200190a150565b60355481906001600160a01b03848116911614156105db576036546105d6906001600160a01b03858116913391168463ffffffff610e9d16565b610794565b6106066103e8603954016105fa6103e885610efd90919063ffffffff16565b9063ffffffff610f5f16565b9050600061061a838363ffffffff610fc916565b90506001600160a01b038416156106745760375461064d906001600160a01b03868116913391168463ffffffff610e9d16565b60365461066f906001600160a01b03868116913391168563ffffffff610e9d16565b61073f565b8234146106c8576040805162461bcd60e51b815260206004820152601f60248201527f4554482073656e74206973206e6f7420657175616c20746f20616d6f756e7400604482015290519081900360640190fd5b6037546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610702573d6000803e3d6000fd5b506036546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561073d573d6000803e3d6000fd5b505b603754604080513381526001600160a01b0392831660208201529186168282015260608201839052517fdd9dfad7b30d6b224e235f89565871419d3dec3b563a4e231f12d2cc97f9acfc9181900360800190a1505b603654604080513381526001600160a01b0392831660208201529185168282015260608201839052517fc8a7b0bd71097b47b2cad75e4e939d2aeb7fae88110e68f93b83fed08e9d3c389181900360800190a1505050565b6038546001600160a01b031690565b600181565b6037546001600160a01b031690565b61081833610e09565b610857576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b61085f610df9565b156108b1576040805162461bcd60e51b815260206004820152601960248201527f686f6c64657220636f6e7472616374206973206c6f636b656400000000000000604482015290519081900360640190fd5b603780546001600160a01b0383166001600160a01b0319909116811790915560408051918252517ffa6bae0f250db86534a013b1c7a6c4076aa8f8d1ac248771a1c73f4ba366922a9181900360200190a150565b61090e33610e09565b61094d576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60b01b1916600160b01b179055565b6038546001600160a01b031633146109c1576040805162461bcd60e51b815260206004820152601860248201527f7468652073656e6465722069736e2774207468652044414f0000000000000000604482015290519081900360640190fd5b806001111580156109d457506103e88111155b610a25576040805162461bcd60e51b815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b60398190556040805182815290517f587b6068be8c555e2cddc6ad8a56df5e8dfb1533cc063d6703f79c791de151489181900360200190a150565b6033546001600160a01b031690565b603854600160b81b900460ff1690565b603854600160a01b900460ff1690565b610a9833610e09565b610ad7576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610ae2838383611026565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6035546001600160a01b031690565b6036546001600160a01b031690565b60395490565b6103e881565b610b6433610e09565b610ba3576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60a01b1916600160a01b179055565b610bc133610e09565b610c00576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610c08610a7f565b15610c4c576040805162461bcd60e51b815260206004820152600f60248201526e199b1bd85d081a5cc81b1bd8dad959608a1b604482015290519081900360640190fd5b603680546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f9af2841b0db134bda87280e2a9cababb156f95023c87023d708a677d61b4b6d89181900360200190a150565b610ca933610e09565b610ce8576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60a81b1916600160a81b179055565b60345490565b603854600160b01b900460ff1690565b610d1c33610e09565b610d5b576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610d63610d03565b15610da5576040805162461bcd60e51b815260206004820152600d60248201526c111053c81a5cc81b1bd8dad959609a1b604482015290519081900360640190fd5b603880546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fd32c17b277c7e87842861153d758814a267634f4308ec2461f88756df7dd70689181900360200190a150565b603854600160a81b900460ff1690565b6000610e166034546110f5565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610e6b57600080fd5b505afa158015610e7f573d6000803e3d6000fd5b505050506040513d6020811015610e9557600080fd5b505192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ef7908590611216565b50505050565b600082610f0c57506000610f59565b82820282848281610f1957fe5b0414610f565760405162461bcd60e51b81526004018080602001828103825260218152602001806114476021913960400191505060405180910390fd5b90505b92915050565b6000808211610fb5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610fc057fe5b04949350505050565b600082821115611020576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0382166110d6576040516000906001600160a01b0385169083908381818185875af1925050503d806000811461107f576040519150601f19603f3d011682016040523d82523d6000602084013e611084565b606091505b50509050806110d0576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506110f0565b6110f06001600160a01b038316848363ffffffff6113ce16565b505050565b6033546000906001600160a01b0316611155576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156111a157600080fd5b505afa1580156111b5573d6000803e3d6000fd5b505050506040513d60208110156111cb57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015610e6b57600080fd5b611228826001600160a01b0316611420565b611279576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106112b75780518252601f199092019160209182019101611298565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611319576040519150601f19603f3d011682016040523d82523d6000602084013e61131e565b606091505b509150915081611375576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610ef75780806020019051602081101561139157600080fd5b5051610ef75760405162461bcd60e51b815260040180806020018281038252602a815260200180611468602a913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526110f0908490611216565b3b15159056fe73656e646572206973206e6f7420616e2061646d696e00000000000000000000536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72315820ffd4bd2f367caa8d1d1fb4488494ef933ba8368a84f2000c404a6b0acb3ac6ea64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var LicenceBin = "0x6080604052603380546001600160a01b03199081166e0c2e074ec69a0dfb2997ba6c7d2e1e179091557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034556035805490911673aaaf91d9b90df800df4f55c205fd6989c977e73a1790553480156200007857600080fd5b506040516200185d3803806200185d833981810160405260c08110156200009e57600080fd5b508051602082015160408301516060840151608085015160a090950151939492939192909160018610801590620000d757506103e88611155b62000129576040805162461bcd60e51b815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b6200013d826001600160e01b03620001b416565b62000151816001600160e01b036200029416565b6039869055603680546001600160a01b038088166001600160a01b031992831617909255603780548784169216919091179055831615620001a857603580546001600160a01b0319166001600160a01b0385161790555b50505050505062000359565b600054610100900460ff1680620001d95750620001d96001600160e01b036200035316565b80620001e8575060005460ff16155b620002255760405162461bcd60e51b815260040180806020018281038252602e8152602001806200182f602e913960400191505060405180910390fd5b600054610100900460ff1615801562000251576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200027d57603380546001600160a01b0319166001600160a01b0384161790555b801562000290576000805461ff00191690555b5050565b600054610100900460ff1680620002b95750620002b96001600160e01b036200035316565b80620002c8575060005460ff16155b620003055760405162461bcd60e51b815260040180806020018281038252602e8152602001806200182f602e913960400191505060405180910390fd5b600054610100900460ff1615801562000331576000805460ff1961ff0019909116610100171660011790555b81156200027d576034829055801562000290576000805461ff00191690555050565b303b1590565b6114c680620003696000396000f3fe60806040526004361061014b5760003560e01c8063996cba68116100b6578063d0cddd671161006f578063d0cddd671461039f578063d1696b16146103d2578063e2b4ce97146103e7578063e30c5fa8146103fc578063e3d8024214610411578063f15ff455146104445761014b565b8063996cba68146102f357806399a5e1d014610336578063a036ba601461034b578063ac904c6314610360578063ca0e2e2014610375578063d08b4ecc1461038a5761014b565b806342719faa1161010857806342719faa1461022e5780634ac22b3c1461026157806368ce74e7146102765780637d73b231146102a0578063837c70ef146102b5578063940b9c3b146102de5761014b565b80630bf25c911461014d5780630d42e82f146101625780631b3c96b4146101955780633a7afe02146101c15780633acec15f146101f2578063420a83e714610219575b005b34801561015957600080fd5b5061014b610459565b34801561016e57600080fd5b5061014b6004803603602081101561018557600080fd5b50356001600160a01b03166104b6565b61014b600480360360408110156101ab57600080fd5b506001600160a01b03813516906020013561059c565b3480156101cd57600080fd5b506101d66107ec565b604080516001600160a01b039092168252519081900360200190f35b3480156101fe57600080fd5b506102076107fb565b60408051918252519081900360200190f35b34801561022557600080fd5b506101d6610800565b34801561023a57600080fd5b5061014b6004803603602081101561025157600080fd5b50356001600160a01b031661080f565b34801561026d57600080fd5b5061014b610905565b34801561028257600080fd5b5061014b6004803603602081101561029957600080fd5b5035610962565b3480156102ac57600080fd5b506101d6610a60565b3480156102c157600080fd5b506102ca610a6f565b604080519115158252519081900360200190f35b3480156102ea57600080fd5b506102ca610a7f565b3480156102ff57600080fd5b5061014b6004803603606081101561031657600080fd5b506001600160a01b03813581169160208101359091169060400135610a8f565b34801561034257600080fd5b506101d6610b31565b34801561035757600080fd5b506101d6610b40565b34801561036c57600080fd5b50610207610b4f565b34801561038157600080fd5b50610207610b55565b34801561039657600080fd5b5061014b610b5b565b3480156103ab57600080fd5b5061014b600480360360208110156103c257600080fd5b50356001600160a01b0316610bb8565b3480156103de57600080fd5b5061014b610ca0565b3480156103f357600080fd5b50610207610cfd565b34801561040857600080fd5b506102ca610d03565b34801561041d57600080fd5b5061014b6004803603602081101561043457600080fd5b50356001600160a01b0316610d13565b34801561045057600080fd5b506102ca610df9565b61046233610e09565b6104a1576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60b81b1916600160b81b179055565b6104bf33610e09565b6104fe576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610506610a6f565b15610548576040805162461bcd60e51b815260206004820152600d60248201526c1512d3881a5cc81b1bd8dad959609a1b604482015290519081900360640190fd5b603580546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f2aeed92123e61fe64748a447c2ba122c4bfc0201d1ed5149e9ce9ede5adda5459181900360200190a150565b60355481906001600160a01b03848116911614156105db576036546105d6906001600160a01b03858116913391168463ffffffff610e9d16565b610794565b6106066103e8603954016105fa6103e885610efd90919063ffffffff16565b9063ffffffff610f5f16565b9050600061061a838363ffffffff610fc916565b90506001600160a01b038416156106745760375461064d906001600160a01b03868116913391168463ffffffff610e9d16565b60365461066f906001600160a01b03868116913391168563ffffffff610e9d16565b61073f565b8234146106c8576040805162461bcd60e51b815260206004820152601f60248201527f4554482073656e74206973206e6f7420657175616c20746f20616d6f756e7400604482015290519081900360640190fd5b6037546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610702573d6000803e3d6000fd5b506036546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561073d573d6000803e3d6000fd5b505b603754604080513381526001600160a01b0392831660208201529186168282015260608201839052517fdd9dfad7b30d6b224e235f89565871419d3dec3b563a4e231f12d2cc97f9acfc9181900360800190a1505b603654604080513381526001600160a01b0392831660208201529185168282015260608201839052517fc8a7b0bd71097b47b2cad75e4e939d2aeb7fae88110e68f93b83fed08e9d3c389181900360800190a1505050565b6038546001600160a01b031690565b600181565b6037546001600160a01b031690565b61081833610e09565b610857576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b61085f610df9565b156108b1576040805162461bcd60e51b815260206004820152601960248201527f686f6c64657220636f6e7472616374206973206c6f636b656400000000000000604482015290519081900360640190fd5b603780546001600160a01b0383166001600160a01b0319909116811790915560408051918252517ffa6bae0f250db86534a013b1c7a6c4076aa8f8d1ac248771a1c73f4ba366922a9181900360200190a150565b61090e33610e09565b61094d576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60b01b1916600160b01b179055565b6038546001600160a01b031633146109c1576040805162461bcd60e51b815260206004820152601860248201527f7468652073656e6465722069736e2774207468652044414f0000000000000000604482015290519081900360640190fd5b806001111580156109d457506103e88111155b610a25576040805162461bcd60e51b815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b60398190556040805182815290517f587b6068be8c555e2cddc6ad8a56df5e8dfb1533cc063d6703f79c791de151489181900360200190a150565b6033546001600160a01b031690565b603854600160b81b900460ff1690565b603854600160a01b900460ff1690565b610a9833610e09565b610ad7576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610ae2838383611026565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6035546001600160a01b031690565b6036546001600160a01b031690565b60395490565b6103e881565b610b6433610e09565b610ba3576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60a01b1916600160a01b179055565b610bc133610e09565b610c00576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610c08610a7f565b15610c4c576040805162461bcd60e51b815260206004820152600f60248201526e199b1bd85d081a5cc81b1bd8dad959608a1b604482015290519081900360640190fd5b603680546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f9af2841b0db134bda87280e2a9cababb156f95023c87023d708a677d61b4b6d89181900360200190a150565b610ca933610e09565b610ce8576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b6038805460ff60a81b1916600160a81b179055565b60345490565b603854600160b01b900460ff1690565b610d1c33610e09565b610d5b576040805162461bcd60e51b81526020600482015260166024820152600080516020611427833981519152604482015290519081900360640190fd5b610d63610d03565b15610da5576040805162461bcd60e51b815260206004820152600d60248201526c111053c81a5cc81b1bd8dad959609a1b604482015290519081900360640190fd5b603880546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fd32c17b277c7e87842861153d758814a267634f4308ec2461f88756df7dd70689181900360200190a150565b603854600160a81b900460ff1690565b6000610e166034546110f5565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610e6b57600080fd5b505afa158015610e7f573d6000803e3d6000fd5b505050506040513d6020811015610e9557600080fd5b505192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ef7908590611216565b50505050565b600082610f0c57506000610f59565b82820282848281610f1957fe5b0414610f565760405162461bcd60e51b81526004018080602001828103825260218152602001806114476021913960400191505060405180910390fd5b90505b92915050565b6000808211610fb5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610fc057fe5b04949350505050565b600082821115611020576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0382166110d6576040516000906001600160a01b0385169083908381818185875af1925050503d806000811461107f576040519150601f19603f3d011682016040523d82523d6000602084013e611084565b606091505b50509050806110d0576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506110f0565b6110f06001600160a01b038316848363ffffffff6113ce16565b505050565b6033546000906001600160a01b0316611155576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156111a157600080fd5b505afa1580156111b5573d6000803e3d6000fd5b505050506040513d60208110156111cb57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015610e6b57600080fd5b611228826001600160a01b0316611420565b611279576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106112b75780518252601f199092019160209182019101611298565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611319576040519150601f19603f3d011682016040523d82523d6000602084013e61131e565b606091505b509150915081611375576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610ef75780806020019051602081101561139157600080fd5b5051610ef75760405162461bcd60e51b815260040180806020018281038252602a815260200180611468602a913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526110f0908490611216565b3b15159056fe73656e646572206973206e6f7420616e2061646d696e00000000000000000000536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a723158209309515a58f0ffbb9b59b60acadfe958fdfe2079bf5e1f4ecc03d75bca86094364736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployLicence deploys a new Ethereum contract, binding an instance of Licence to it. func DeployLicence(auth *bind.TransactOpts, backend bind.ContractBackend, _licence_ *big.Int, _float_ common.Address, _holder_ common.Address, _tknAddress_ common.Address, _ens_ common.Address, _controllerNode_ [32]byte) (common.Address, *types.Transaction, *Licence, error) { diff --git a/pkg/bindings/mocks/isValidSignatureExporter.go b/pkg/bindings/mocks/isValidSignatureExporter.go index b6d8b274..7ce6aa4f 100644 --- a/pkg/bindings/mocks/isValidSignatureExporter.go +++ b/pkg/bindings/mocks/isValidSignatureExporter.go @@ -31,7 +31,7 @@ var ( const IsValidSignatureExporterABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" // IsValidSignatureExporterBin is the compiled bytecode used for deploying new contracts. -var IsValidSignatureExporterBin = "0x608060405234801561001057600080fd5b506040516102833803806102838339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561021e806100656000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806320c13b0b14610030575b600080fd5b6100f26004803603604081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9193909290916020810190356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460018302840111640100000000831117156100e757600080fd5b50909250905061010f565b604080516001600160e01b03199092168252519081900360200190f35b60008054604080516320c13b0b60e01b815260048101918252604481018790526001600160a01b03909216916320c13b0b9188918891889188919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f820116905080830192505050965050505050505060206040518083038186803b1580156101b457600080fd5b505afa1580156101c8573d6000803e3d6000fd5b505050506040513d60208110156101de57600080fd5b50519594505050505056fea265627a7a72315820ca6d31d5102e3310ae85e6c085210baac3a4064e0532be7bb513c35e5841144964736f6c63430005110032" +var IsValidSignatureExporterBin = "0x608060405234801561001057600080fd5b506040516102833803806102838339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561021e806100656000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806320c13b0b14610030575b600080fd5b6100f26004803603604081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9193909290916020810190356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460018302840111640100000000831117156100e757600080fd5b50909250905061010f565b604080516001600160e01b03199092168252519081900360200190f35b60008054604080516320c13b0b60e01b815260048101918252604481018790526001600160a01b03909216916320c13b0b9188918891889188919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f820116905080830192505050965050505050505060206040518083038186803b1580156101b457600080fd5b505afa1580156101c8573d6000803e3d6000fd5b505050506040513d60208110156101de57600080fd5b50519594505050505056fea265627a7a723158207f8da5c4cdf967f62ab6a524fd7d6c517115e157c94a1ef763c940c9e613962664736f6c63430005110032" // DeployIsValidSignatureExporter deploys a new Ethereum contract, binding an instance of IsValidSignatureExporter to it. func DeployIsValidSignatureExporter(auth *bind.TransactOpts, backend bind.ContractBackend, _wallet common.Address) (common.Address, *types.Transaction, *IsValidSignatureExporter, error) { diff --git a/pkg/bindings/mocks/tokenWhitelistableExporter.go b/pkg/bindings/mocks/tokenWhitelistableExporter.go index d1c45f65..36378312 100644 --- a/pkg/bindings/mocks/tokenWhitelistableExporter.go +++ b/pkg/bindings/mocks/tokenWhitelistableExporter.go @@ -31,7 +31,7 @@ var ( const TokenWhitelistableExporterABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tokenWhitelistNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"getERC20RecipientAndAmount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getStablecoinInfo\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"getTokenInfo\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"isTokenAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"isTokenLoadable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"isTokenRedeemable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemableTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_rate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_updateDate\",\"type\":\"uint256\"}],\"name\":\"updateTokenRate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" // TokenWhitelistableExporterBin is the compiled bytecode used for deploying new contracts. -var TokenWhitelistableExporterBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d3966034553480156200005657600080fd5b5060405162000ee438038062000ee4833981810160405260408110156200007c57600080fd5b50805160209091015162000099826001600160e01b03620000b516565b620000ad816001600160e01b036200019516565b50506200025a565b600054610100900460ff1680620000da5750620000da6001600160e01b036200025416565b80620000e9575060005460ff16155b620001265760405162461bcd60e51b815260040180806020018281038252602e81526020018062000eb6602e913960400191505060405180910390fd5b600054610100900460ff1615801562000152576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200017e57603380546001600160a01b0319166001600160a01b0384161790555b801562000191576000805461ff00191690555b5050565b600054610100900460ff1680620001ba5750620001ba6001600160e01b036200025416565b80620001c9575060005460ff16155b620002065760405162461bcd60e51b815260040180806020018281038252602e81526020018062000eb6602e913960400191505060405180910390fd5b600054610100900460ff1615801562000232576000805460ff1961ff0019909116610100171660011790555b81156200017e576034829055801562000191576000805461ff00191690555050565b303b1590565b610c4c806200026a6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806344b049bc1161007157806344b049bc1461023e5780637d73b23114610246578063877337b01461026a578063afc72e9314610284578063d545782e14610325578063dcc922bc14610359576100a9565b806317e73794146100ae5780631f69565f146100e85780632ff0fcaa146101b85780633efec5e9146101de578063443dd2a4146101e6575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b031661037f565b604080519115158252519081900360200190f35b61010e600480360360208110156100fe57600080fd5b50356001600160a01b0316610390565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561017757818101518382015260200161015f565b50505050905090810190601f1680156101a45780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b6100d4600480360360208110156101ce57600080fd5b50356001600160a01b03166103bb565b61010e6103c6565b6101ee6103ef565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022a578181015183820152602001610212565b505050509050019250505060405180910390f35b6101ee6103fe565b61024e610408565b604080516001600160a01b039092168252519081900360200190f35b610272610417565b60408051918252519081900360200190f35b6103026004803603604081101561029a57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156102c457600080fd5b8201836020820111156102d657600080fd5b803590602001918460018302840111600160201b831117156102f757600080fd5b50909250905061041d565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6103576004803603606081101561033b57600080fd5b506001600160a01b03813516906020810135906040013561046c565b005b6100d46004803603602081101561036f57600080fd5b50356001600160a01b031661047c565b600061038a82610487565b92915050565b60606000806000806000806103a4886104a1565b959e949d50929b5090995097509550909350915050565b600061038a82610633565b60606000806000806000806103d961064d565b959d949c50929a50909850965094509092509050565b60606103f96107bc565b905090565b60606103f96108cd565b6033546001600160a01b031690565b60345490565b6000806104608585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061091292505050565b91509150935093915050565b610477838383610a1c565b505050565b600061038a82610aab565b600080610493836104a1565b509098975050505050505050565b60606000806000806000806104b7603454610ac4565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b15801561050c57600080fd5b505afa158015610520573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561054957600080fd5b8101908080516040519392919084600160201b82111561056857600080fd5b90830190602082018581111561057d57600080fd5b8251600160201b81118282018810171561059657600080fd5b82525081516020918201929091019080838360005b838110156105c35781810151838201526020016105ab565b50505050905090810190601f1680156105f05780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b60008061063f836104a1565b509198975050505050505050565b6060600080600080600080610663603454610ac4565b6001600160a01b0316633efec5e96040518163ffffffff1660e01b815260040160006040518083038186803b15801561069b57600080fd5b505afa1580156106af573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156106d857600080fd5b8101908080516040519392919084600160201b8211156106f757600080fd5b90830190602082018581111561070c57600080fd5b8251600160201b81118282018810171561072557600080fd5b82525081516020918201929091019080838360005b8381101561075257818101518382015260200161073a565b50505050905090810190601f16801561077f5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979f939e50919c509a5098509096509294509192505050565b60606107c9603454610ac4565b6001600160a01b031663443dd2a46040518163ffffffff1660e01b815260040160006040518083038186803b15801561080157600080fd5b505afa158015610815573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561083e57600080fd5b8101908080516040519392919084600160201b82111561085d57600080fd5b90830190602082018581111561087257600080fd5b82518660208202830111600160201b8211171561088e57600080fd5b82525081516020918201928201910280838360005b838110156108bb5781810151838201526020016108a3565b50505050905001604052505050905090565b60606108da603454610ac4565b6001600160a01b03166344b049bc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561080157600080fd5b600080610920603454610ac4565b6001600160a01b031663afc72e9385856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561099457818101518382015260200161097c565b50505050905090810190601f1680156109c15780820380516001836020036101000a031916815260200191505b509350505050604080518083038186803b1580156109de57600080fd5b505afa1580156109f2573d6000803e3d6000fd5b505050506040513d6040811015610a0857600080fd5b508051602090910151909590945092505050565b610a27603454610ac4565b6001600160a01b031663d545782e8484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b158015610a8e57600080fd5b505af1158015610aa2573d6000803e3d6000fd5b50505050505050565b600080610ab7836104a1565b5098975050505050505050565b6033546000906001600160a01b0316610b24576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015610b7057600080fd5b505afa158015610b84573d6000803e3d6000fd5b505050506040513d6020811015610b9a57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015610be557600080fd5b505afa158015610bf9573d6000803e3d6000fd5b505050506040513d6020811015610c0f57600080fd5b50519291505056fea265627a7a723158206403f1137a0964273b8910caeded2f377fab235b7bdc05d69b389dbce47fedf864736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var TokenWhitelistableExporterBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d3966034553480156200005657600080fd5b5060405162000ee438038062000ee4833981810160405260408110156200007c57600080fd5b50805160209091015162000099826001600160e01b03620000b516565b620000ad816001600160e01b036200019516565b50506200025a565b600054610100900460ff1680620000da5750620000da6001600160e01b036200025416565b80620000e9575060005460ff16155b620001265760405162461bcd60e51b815260040180806020018281038252602e81526020018062000eb6602e913960400191505060405180910390fd5b600054610100900460ff1615801562000152576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200017e57603380546001600160a01b0319166001600160a01b0384161790555b801562000191576000805461ff00191690555b5050565b600054610100900460ff1680620001ba5750620001ba6001600160e01b036200025416565b80620001c9575060005460ff16155b620002065760405162461bcd60e51b815260040180806020018281038252602e81526020018062000eb6602e913960400191505060405180910390fd5b600054610100900460ff1615801562000232576000805460ff1961ff0019909116610100171660011790555b81156200017e576034829055801562000191576000805461ff00191690555050565b303b1590565b610c4c806200026a6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806344b049bc1161007157806344b049bc1461023e5780637d73b23114610246578063877337b01461026a578063afc72e9314610284578063d545782e14610325578063dcc922bc14610359576100a9565b806317e73794146100ae5780631f69565f146100e85780632ff0fcaa146101b85780633efec5e9146101de578063443dd2a4146101e6575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b031661037f565b604080519115158252519081900360200190f35b61010e600480360360208110156100fe57600080fd5b50356001600160a01b0316610390565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561017757818101518382015260200161015f565b50505050905090810190601f1680156101a45780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b6100d4600480360360208110156101ce57600080fd5b50356001600160a01b03166103bb565b61010e6103c6565b6101ee6103ef565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022a578181015183820152602001610212565b505050509050019250505060405180910390f35b6101ee6103fe565b61024e610408565b604080516001600160a01b039092168252519081900360200190f35b610272610417565b60408051918252519081900360200190f35b6103026004803603604081101561029a57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156102c457600080fd5b8201836020820111156102d657600080fd5b803590602001918460018302840111600160201b831117156102f757600080fd5b50909250905061041d565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6103576004803603606081101561033b57600080fd5b506001600160a01b03813516906020810135906040013561046c565b005b6100d46004803603602081101561036f57600080fd5b50356001600160a01b031661047c565b600061038a82610487565b92915050565b60606000806000806000806103a4886104a1565b959e949d50929b5090995097509550909350915050565b600061038a82610633565b60606000806000806000806103d961064d565b959d949c50929a50909850965094509092509050565b60606103f96107bc565b905090565b60606103f96108cd565b6033546001600160a01b031690565b60345490565b6000806104608585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061091292505050565b91509150935093915050565b610477838383610a1c565b505050565b600061038a82610aab565b600080610493836104a1565b509098975050505050505050565b60606000806000806000806104b7603454610ac4565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b15801561050c57600080fd5b505afa158015610520573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561054957600080fd5b8101908080516040519392919084600160201b82111561056857600080fd5b90830190602082018581111561057d57600080fd5b8251600160201b81118282018810171561059657600080fd5b82525081516020918201929091019080838360005b838110156105c35781810151838201526020016105ab565b50505050905090810190601f1680156105f05780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b60008061063f836104a1565b509198975050505050505050565b6060600080600080600080610663603454610ac4565b6001600160a01b0316633efec5e96040518163ffffffff1660e01b815260040160006040518083038186803b15801561069b57600080fd5b505afa1580156106af573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156106d857600080fd5b8101908080516040519392919084600160201b8211156106f757600080fd5b90830190602082018581111561070c57600080fd5b8251600160201b81118282018810171561072557600080fd5b82525081516020918201929091019080838360005b8381101561075257818101518382015260200161073a565b50505050905090810190601f16801561077f5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979f939e50919c509a5098509096509294509192505050565b60606107c9603454610ac4565b6001600160a01b031663443dd2a46040518163ffffffff1660e01b815260040160006040518083038186803b15801561080157600080fd5b505afa158015610815573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561083e57600080fd5b8101908080516040519392919084600160201b82111561085d57600080fd5b90830190602082018581111561087257600080fd5b82518660208202830111600160201b8211171561088e57600080fd5b82525081516020918201928201910280838360005b838110156108bb5781810151838201526020016108a3565b50505050905001604052505050905090565b60606108da603454610ac4565b6001600160a01b03166344b049bc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561080157600080fd5b600080610920603454610ac4565b6001600160a01b031663afc72e9385856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561099457818101518382015260200161097c565b50505050905090810190601f1680156109c15780820380516001836020036101000a031916815260200191505b509350505050604080518083038186803b1580156109de57600080fd5b505afa1580156109f2573d6000803e3d6000fd5b505050506040513d6040811015610a0857600080fd5b508051602090910151909590945092505050565b610a27603454610ac4565b6001600160a01b031663d545782e8484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b158015610a8e57600080fd5b505af1158015610aa2573d6000803e3d6000fd5b50505050505050565b600080610ab7836104a1565b5098975050505050505050565b6033546000906001600160a01b0316610b24576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015610b7057600080fd5b505afa158015610b84573d6000803e3d6000fd5b505050506040513d6020811015610b9a57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015610be557600080fd5b505afa158015610bf9573d6000803e3d6000fd5b505050506040513d6020811015610c0f57600080fd5b50519291505056fea265627a7a72315820e6994f6913dc79073b7cc74a1b62001960b59d23e4d3606c794616b6351c980764736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployTokenWhitelistableExporter deploys a new Ethereum contract, binding an instance of TokenWhitelistableExporter to it. func DeployTokenWhitelistableExporter(auth *bind.TransactOpts, backend bind.ContractBackend, _ens_ common.Address, _tokenWhitelistNode_ [32]byte) (common.Address, *types.Transaction, *TokenWhitelistableExporter, error) { diff --git a/pkg/bindings/oracle.go b/pkg/bindings/oracle.go index d086cf41..81f424ac 100644 --- a/pkg/bindings/oracle.go +++ b/pkg/bindings/oracle.go @@ -31,7 +31,7 @@ var ( const OracleABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_resolver_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_tokenWhitelistNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"FailedUpdateRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_queryID\",\"type\":\"bytes32\"}],\"name\":\"RequestedUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_publicKey\",\"type\":\"bytes\"}],\"name\":\"SetCryptoComparePublicKey\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_gasPrice\",\"type\":\"uint256\"}],\"name\":\"SetGasPrice\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_publicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_result\",\"type\":\"string\"}],\"name\":\"VerifiedProof\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryID\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"_result\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"__callback\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cryptoCompareAPIPublicKey\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasPrice\",\"type\":\"uint256\"}],\"name\":\"setCustomGasPrice\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_publicKey\",\"type\":\"bytes\"}],\"name\":\"updateCryptoCompareAPIPublicKey\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"updateTokenRates\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_tokenList\",\"type\":\"address[]\"}],\"name\":\"updateTokenRatesList\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"}]" // OracleBin is the compiled bytecode used for deploying new contracts. -var OracleBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976039557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d396603a553480156200007a57600080fd5b50604051620056c4380380620056c483398181016040526080811015620000a057600080fd5b5080516020820151604083015160609093015191929091620000cb836001600160e01b036200017116565b620000df826001600160e01b036200025116565b620000f3816001600160e01b036200031016565b604051806060016040528060408152602001620056846040913980516200012391603b9160209091019062000bdb565b50603580546001600160a01b0319166001600160a01b0386161790556200014f6402540be400620003cf565b62000167600f60fc1b6001600160e01b03620005c016565b5050505062000c7d565b600054610100900460ff1680620001965750620001966001600160e01b03620007b616565b80620001a5575060005460ff16155b620001e25760405162461bcd60e51b815260040180806020018281038252602e81526020018062005656602e913960400191505060405180910390fd5b600054610100900460ff161580156200020e576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200023a57603380546001600160a01b0319166001600160a01b0384161790555b80156200024d576000805461ff00191690555b5050565b600054610100900460ff1680620002765750620002766001600160e01b03620007b616565b8062000285575060005460ff16155b620002c25760405162461bcd60e51b815260040180806020018281038252602e81526020018062005656602e913960400191505060405180910390fd5b600054610100900460ff16158015620002ee576000805460ff1961ff0019909116610100171660011790555b81156200023a57603982905580156200024d576000805461ff00191690555050565b600054610100900460ff1680620003355750620003356001600160e01b03620007b616565b8062000344575060005460ff16155b620003815760405162461bcd60e51b815260040180806020018281038252602e81526020018062005656602e913960400191505060405180910390fd5b600054610100900460ff16158015620003ad576000805460ff1961ff0019909116610100171660011790555b81156200023a57603a82905580156200024d576000805461ff00191690555050565b6035546001600160a01b0316158062000405575060355462000403906001600160a01b03166001600160e01b03620007bd16565b155b1562000422576200042060006001600160e01b03620007c116565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200047357600080fd5b505af115801562000488573d6000803e3d6000fd5b505050506040513d60208110156200049f57600080fd5b50516034546001600160a01b039081169116146200055657603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200050857600080fd5b505af11580156200051d573d6000803e3d6000fd5b505050506040513d60208110156200053457600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163329ab47960e21b81526004810184905290516001600160a01b039092169163ca6ad1e49160248082019260009290919082900301818387803b158015620005a457600080fd5b505af1158015620005b9573d6000803e3d6000fd5b5050505050565b6035546001600160a01b03161580620005f65750603554620005f4906001600160a01b03166001600160e01b03620007bd16565b155b1562000613576200061160006001600160e01b03620007c116565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200066457600080fd5b505af115801562000679573d6000803e3d6000fd5b505050506040513d60208110156200069057600080fd5b50516034546001600160a01b039081169116146200074757603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015620006f957600080fd5b505af11580156200070e573d6000803e3d6000fd5b505050506040513d60208110156200072557600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163688dcfd760e01b81527fff000000000000000000000000000000000000000000000000000000000000008416600482015290516001600160a01b039092169163688dcfd79160248082019260009290919082900301818387803b158015620005a457600080fd5b303b155b90565b3b90565b6000620007d66001600160e01b03620007dc16565b92915050565b60008062000807731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed6001600160e01b03620007bd16565b11156200087357603580546001600160a01b031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81526a195d1a17db585a5b9b995d60aa1b60208201526200086a906001600160e01b0362000bcb16565b506001620007ba565b60006200089d73c03a2615d5efaf5f49f60b7bb6583eaec212fdf16001600160e01b03620007bd16565b11156200090157603580546001600160a01b03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81526b6574685f726f707374656e3360a01b60208201526200086a906001600160e01b0362000bcb16565b60006200092b73b7a07bcf2ba2f2703b24c0691b5278999c59ac7e6001600160e01b03620007bd16565b11156200098c57603580546001600160a01b03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981526832ba342fb5b7bb30b760b91b60208201526200086a906001600160e01b0362000bcb16565b6000620009b673146500cfd35b22e4a392fe0adc06de1a1368ed486001600160e01b03620007bd16565b111562000a1957603580546001600160a01b03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81526a6574685f72696e6b65627960a81b60208201526200086a906001600160e01b0362000bcb16565b600062000a4373a2998efd205fb9d4b4963afb70778d6354ad3a416001600160e01b03620007bd16565b111562000aa557603580546001600160a01b03191673a2998efd205fb9d4b4963afb70778d6354ad3a4117905560408051808201909152600a8152696574685f676f65726c6960b01b60208201526200086a906001600160e01b0362000bcb16565b600062000acf736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4756001600160e01b03620007bd16565b111562000b055750603580546001600160a01b031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001620007ba565b600062000b2f7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf6001600160e01b03620007bd16565b111562000b655750603580546001600160a01b0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001620007ba565b600062000b8f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa6001600160e01b03620007bd16565b111562000bc55750603580546001600160a01b0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001620007ba565b50600090565b80516200024d9060369060208401905b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000c1e57805160ff191683800117855562000c4e565b8280016001018555821562000c4e579182015b8281111562000c4e57825182559160200191906001019062000c31565b5062000c5c92915062000c60565b5090565b620007ba91905b8082111562000c5c576000815560010162000c67565b6149c98062000c8d6000396000f3fe6080604052600436106100915760003560e01c8063996cba6811610059578063996cba681461032c578063b598f8821461036f578063c2c3d0541461038c578063ca6ad1e414610407578063e2b4ce971461043157610091565b806338bbfa50146100965780633acbe96e146101d55780637d73b2311461025f578063877337b014610290578063937f54a4146102b7575b600080fd5b3480156100a257600080fd5b506101d3600480360360608110156100b957600080fd5b81359190810190604081016020820135600160201b8111156100da57600080fd5b8201836020820111156100ec57600080fd5b803590602001918460018302840111600160201b8311171561010d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561015f57600080fd5b82018360208201111561017157600080fd5b803590602001918460018302840111600160201b8311171561019257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610446945050505050565b005b3480156101e157600080fd5b506101ea61061a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022457818101518382015260200161020c565b50505050905090810190601f1680156102515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026b57600080fd5b506102746106a8565b604080516001600160a01b039092168252519081900360200190f35b34801561029c57600080fd5b506102a56106b8565b60408051918252519081900360200190f35b6101d3600480360360408110156102cd57600080fd5b81359190810190604081016020820135600160201b8111156102ee57600080fd5b82018360208201111561030057600080fd5b803590602001918460208302840111600160201b8311171561032157600080fd5b5090925090506106be565b34801561033857600080fd5b506101d36004803603606081101561034f57600080fd5b506001600160a01b03813581169160208101359091169060400135610757565b6101d36004803603602081101561038557600080fd5b5035610804565b34801561039857600080fd5b506101d3600480360360208110156103af57600080fd5b810190602081018135600160201b8111156103c957600080fd5b8201836020820111156103db57600080fd5b803590602001918460018302840111600160201b831117156103fc57600080fd5b509092509050610867565b34801561041357600080fd5b506101d36004803603602081101561042a57600080fd5b5035610935565b34801561043d57600080fd5b506102a56109d3565b61044e6109d9565b6001600160a01b0316336001600160a01b0316146104ac576040805162461bcd60e51b815260206004820152601660248201527573656e646572206973206e6f74206f7261636c697a6560501b604482015290519081900360640190fd5b6000838152603c60205260408120546001600160a01b031690806104cf83610bc3565b96505050945050505081610524576040805162461bcd60e51b8152602060048201526017602482015276746f6b656e206d75737420626520617661696c61626c6560481b604482015290519081900360640190fd5b603b8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260009384936105c5938b938b93909290918301828280156105ba5780601f1061058f576101008083540402835291602001916105ba565b820191906000526020600020905b81548152906001019060200180831161059d57829003601f168201915b505050505086610d55565b909250905081156106105760006105e36105de89611287565b61152a565b60008a8152603c6020526040902080546001600160a01b031916905590508161060d87838361153d565b50505b5050505050505050565b603b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b6033546001600160a01b03165b90565b603a5490565b6106c7336115cc565b610715576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b6107528383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061166092505050565b505050565b61076033611982565b6107aa576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6107b58383836119e4565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b61080d336115cc565b61085b576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b61086481611aae565b50565b61087033611982565b6108ba576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6108c6603b838361473a565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa929091859185919060608201848480828437600083820152604051601f909101601f1916909201829003965090945050505050a15050565b61093e336115cc565b61098c576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b61099581611d5f565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60395490565b6035546000906001600160a01b03161580610a065750603554610a04906001600160a01b0316611f28565b155b15610a1757610a156000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a6757600080fd5b505af1158015610a7b573d6000803e3d6000fd5b505050506040513d6020811015610a9157600080fd5b50516034546001600160a01b03908116911614610b4457603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610af857600080fd5b505af1158015610b0c573d6000803e3d6000fd5b505050506040513d6020811015610b2257600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b603460009054906101000a90046001600160a01b03166001600160a01b031663c281d19e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9257600080fd5b505afa158015610ba6573d6000803e3d6000fd5b505050506040513d6020811015610bbc57600080fd5b5051905090565b6060600080600080600080610bd9603a54611f36565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610c6b57600080fd5b8101908080516040519392919084600160201b821115610c8a57600080fd5b908301906020820185811115610c9f57600080fd5b8251600160201b811182820188101715610cb857600080fd5b82525081516020918201929091019080838360005b83811015610ce5578181015183820152602001610ccd565b50505050905090810190601f168015610d125780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b60008060a5855114610da5576040805162461bcd60e51b81526020600482015260146024820152730d2dcecc2d8d2c840e0e4dedecc40d8cadccee8d60631b604482015290519081900360640190fd5b604185600181518110610db457fe5b016020015160f81c14610e0e576040805162461bcd60e51b815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252606091602082018180388339019050509050610e408660026041846000612057565b865190915060609087906044908110610e5557fe5b0160200151875160f89190911c906101009089906043908110610e7457fe5b016020015160f81c020114610ec9576040805162461bcd60e51b81526020600482015260166024820152750d2dcecc2d8d2c840d0cac2c8cae4e640d8cadccee8d60531b604482015290519081900360640190fd5b6040805160608082526080820190925281602082018180388339019050509050610ef98760456060846000612057565b9050610f068183886120a5565b610f4b576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b604080516014808252818301909252606091602082018180388339019050509050610f7c82600b6014846000612057565b9050600080610f8b8389612169565b909250905081610fd1576040805162461bcd60e51b815260206004820152600c60248201526b696e76616c6964206461746560a01b604482015290519081900360640190fd5b60408051602c8082526060828101909352602082018180388339019050509050611001856034602c846000612057565b905061100c816124ee565b8051906020012060028d6040516020018082805190602001908083835b602083106110485780518252601f199092019160209182019101611029565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106110ab5780518252601f19909201916020918201910161108c565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa1580156110ea573d6000803e3d6000fd5b5050506040513d60208110156110ff57600080fd5b505160408051602081810193909352815180820384018152908201909152805191012014611174576040805162461bcd60e51b815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156111d85781810151838201526020016111c0565b50505050905090810190601f1680156112055780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611238578181015183820152602001611220565b50505050905090810190601f1680156112655780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000826040516020018082805190602001908083835b602083106112be5780518252601f19909201916020918201910161129f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525190506008811180156113065750601c8111155b61134c576040805162461bcd60e51b81526020600482015260126024820152711b5a5cd99bdc9b585d1d1959081a5b9c1d5d60721b604482015290519081900360640190fd5b6040805160078082528183019092526060916020820181803883390190505090506113e3846040516020018082805190602001908083835b602083106113a35780518252601f199092019160209182019101611384565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007846000612057565b5060408051663d9122aa24111d60c91b81529051908190036007019020815160208301201461144b576040805162461bcd60e51b815260206004820152600f60248201526e0e0e4caccd2f040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b6114536147b8565b61145c85612b0b565b9050611490611483604051806040016040528060018152602001601d60f91b815250612b0b565b829063ffffffff612b3016565b50806000015192506114ca6114bd604051806040016040528060018152602001607d60f81b815250612b0b565b829063ffffffff612b4a16565b508051600019840114611516576040805162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a9cdbdb88199bdc9b585d608a1b604482015290519081900360640190fd5b61151f81612ba8565b93505050505b919050565b6000611537826012612bf8565b92915050565b611548603a54611f36565b6001600160a01b031663d545782e8484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156115af57600080fd5b505af11580156115c3573d6000803e3d6000fd5b50505050505050565b60006115d9603954611f36565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561162e57600080fd5b505afa158015611642573d6000803e3d6000fd5b505050506040513d602081101561165857600080fd5b505192915050565b80516116ac576040805160208082526010908201526f195b5c1d1e481d1bdad95b881b1a5cdd60821b81830152905160008051602061492a8339815191529181900360600190a161197e565b4781516116d36040518060400160405280600381526020016215549360ea1b8152506134a9565b0211156117245760408051602080825260149082015273696e73756666696369656e742062616c616e636560601b81830152905160008051602061492a8339815191529181900360600190a161197e565b61172c6147b8565b61174d60405180606001604052806032815260200161485b60329139612b0b565b90506117576147b8565b61178c60405180604001604052806014815260200173267473796d733d455448267369676e3d7472756560601b815250612b0b565b905060005b835181101561197a57606060006117ba8684815181106117ad57fe5b6020026020010151610bc3565b5050509350505091508061180f576040805162461bcd60e51b8152602060048201526017602482015276746f6b656e206d75737420626520617661696c61626c6560481b604482015290519081900360640190fd5b6118176147b8565b61182083612b0b565b905060006118746040518060400160405280600381526020016215549360ea1b81525061186e8861186261185d878d6136d490919063ffffffff16565b612b0b565b9063ffffffff6136d416565b8b613748565b905087858151811061188257fe5b6020026020010151603c600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f47737841f636da1ca9f2de10d9bfb96c4251e0b31de72a902d4fd4ac8797bbbe6118eb83612ba8565b826040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561192f578181015183820152602001611917565b50505050905090810190601f16801561195c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050600190920191506117919050565b5050505b5050565b600061198f603954611f36565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561162e57600080fd5b6001600160a01b038216611a94576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114611a3d576040519150601f19603f3d011682016040523d82523d6000602084013e611a42565b606091505b5050905080611a8e576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b50610752565b6107526001600160a01b038316848363ffffffff613b1516565b6060611ab8613b67565b9050805160001415611b0357604080516020808252600990820152686e6f20746f6b656e7360b81b81830152905160008051602061492a8339815191529181900360600190a161197e565b478151611b2a6040518060400160405280600381526020016215549360ea1b8152506134a9565b021115611b7b5760408051602080825260149082015273696e73756666696369656e742062616c616e636560601b81830152905160008051602061492a8339815191529181900360600190a161197e565b611b836147b8565b611ba460405180606001604052806032815260200161485b60329139612b0b565b9050611bae6147b8565b611be360405180604001604052806014815260200173267473796d733d455448267369676e3d7472756560601b815250612b0b565b905060005b835181101561197a576060611c028583815181106117ad57fe5b5050505050509050611c126147b8565b611c1b82612b0b565b90506000611c5e6040518060400160405280600381526020016215549360ea1b815250611c588761186261185d878c6136d490919063ffffffff16565b8a613748565b9050868481518110611c6c57fe5b6020026020010151603c600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f47737841f636da1ca9f2de10d9bfb96c4251e0b31de72a902d4fd4ac8797bbbe611cd583612ba8565b826040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611d19578181015183820152602001611d01565b50505050905090810190601f168015611d465780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050600101611be8565b6035546001600160a01b03161580611d895750603554611d87906001600160a01b0316611f28565b155b15611d9a57611d986000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611dea57600080fd5b505af1158015611dfe573d6000803e3d6000fd5b505050506040513d6020811015611e1457600080fd5b50516034546001600160a01b03908116911614611ec757603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611e7b57600080fd5b505af1158015611e8f573d6000803e3d6000fd5b505050506040513d6020811015611ea557600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163329ab47960e21b81526004810184905290516001600160a01b039092169163ca6ad1e49160248082019260009290919082900301818387803b158015611f1457600080fd5b505af115801561197a573d6000803e3d6000fd5b3b90565b6000611537613c78565b6033546000906001600160a01b0316611f96576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015611fe257600080fd5b505afa158015611ff6573d6000803e3d6000fd5b505050506040513d602081101561200c57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561162e57600080fd5b606060008285019050808451101561206e57600080fd5b60208087019084015b86886020010182101561209857888201518682015260209182019101612077565b5093979650505050505050565b600080600061213b6002876040518082805190602001908083835b602083106120df5780518252601f1990920191602091820191016120c0565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa15801561211e573d6000803e3d6000fd5b5050506040513d602081101561213357600080fd5b505186613fcc565b9250905080801561215d5750835160208501206001600160a01b038381169116145b925050505b9392505050565b600080836040516020018082805190602001908083835b6020831061219f5780518252601f199092019160209182019101612180565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052516014146121dd57fe5b6121e56147b8565b6121ee85612b0b565b90506121f86147b8565b61221a604051806040016040528060018152602001601d60f91b815250612b0b565b90506122246147b8565b612246604051806040016040528060018152602001600160fd1b815250612b0b565b9050600061226a612265612260868563ffffffff612b3016565b612ba8565b614056565b905060008111801561227c5750602081105b6122b9576040805162461bcd60e51b81526020600482015260096024820152683230bc9032b93937b960b91b604482015290519081900360640190fd5b60006122d66122d1612260878663ffffffff612b3016565b614063565b60ff1690506000811180156122eb5750600d81105b61232a576040805162461bcd60e51b815260206004820152600b60248201526a36b7b73a341032b93937b960a91b604482015290519081900360640190fd5b6000612342612265612260888763ffffffff612b3016565b90506107e1811180156123565750610bb881105b612394576040805162461bcd60e51b815260206004820152600a6024820152693cb2b0b91032b93937b960b11b604482015290519081900360640190fd5b60006123ac612265612260898963ffffffff612b3016565b9050601981106123f0576040805162461bcd60e51b815260206004820152600a6024820152693437bab91032b93937b960b11b604482015290519081900360640190fd5b60006124086122656122608a8a63ffffffff612b3016565b9050603c811061244e576040805162461bcd60e51b815260206004820152600c60248201526b36b4b73aba329032b93937b960a11b604482015290519081900360640190fd5b60006124666122656122608b8b63ffffffff612b3016565b9050603c81106124ac576040805162461bcd60e51b815260206004820152600c60248201526b39b2b1b7b7321032b93937b960a11b604482015290519081900360640190fd5b60008183606402856127100289620f424002896305f5e10002896402540be40002010101010190508c8111819b509b50505050505050505050505b9250929050565b60606000806000806000865190506060816040519080825280601f01601f191660200182016040528015612529576020820181803883390190505b5090506000808311801561253e575060048306155b61258f576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b60408051603d60f81b8152905190819003600101902089518a9060011986019081106125b757fe5b01602090810151604080516001600160f81b0319909216828401528051808303600101815260219092019052805191012014156125f95760028303925061265f565b60408051603d60f81b8152905190819003600101902089518a90600019860190811061262157fe5b01602090810151604080516001600160f81b03199092168284015280518083036001018152602190920190528051910120141561265f576001830392505b600319831660005b8181101561287d576040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061269957fe5b0160200151815160f89190911c9081106126af57fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106126e657fe5b0160200151815160f89190911c9081106126fc57fe5b602001015160f81c60f81b97506040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061273357fe5b0160200151815160f89190911c90811061274957fe5b602001015160f81c60f81b96506040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061278057fe5b0160200151815160f89190911c90811061279657fe5b016020015184516001600160f81b031991821697506001850194603f60fa1b60028d901b1660ff60f41b60048d901c161790921691869181106127d557fe5b60200101906001600160f81b031916908160001a90535083516001840193600f60fc1b60048b901b1660ff60f61b60028b901c16176001600160f81b03191691869190811061282057fe5b60200101906001600160f81b031916908160001a90535083516001840193600360fe1b60068a901b1688176001600160f81b03191691869190811061286157fe5b60200101906001600160f81b031916908160001a905350612667565b81850360021415612975576040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106128b257fe5b0160200151815160f89190911c9081106128c857fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106128ff57fe5b0160200151815160f89190911c90811061291557fe5b602001015160f81c60f81b97506004886001600160f81b031916901c60028a6001600160f81b031916901b1760ff60f81b1684848060010195508151811061295957fe5b60200101906001600160f81b031916908160001a905350612afc565b81850360031415612afc576040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106129aa57fe5b0160200151815160f89190911c9081106129c057fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106129f757fe5b0160200151815160f89190911c908110612a0d57fe5b602001015160f81c60f81b97506040518060a00160405280607b81526020016148af607b91398b5160018301928d918110612a4457fe5b0160200151815160f89190911c908110612a5a57fe5b016020015184516001600160f81b031991821698506001850194603f60fa1b60028d901b1660ff60f41b60048d901c16179092169186918110612a9957fe5b60200101906001600160f81b031916908160001a90535083516001840193600f60fc1b60048b901b1660ff60f61b60028b901c16176001600160f81b031916918691908110612ae457fe5b60200101906001600160f81b031916908160001a9053505b50508152979650505050505050565b612b136147b8565b506040805180820190915281518152602082810190820152919050565b612b386147b8565b612b43838383614307565b5092915050565b612b526147b8565b815183511015612b63575081611537565b8151835160208086015190850151910191909103906001908214612b91575082516020840151819020908220145b8015612b9f57835185510385525b50929392505050565b60608082600001516040519080825280601f01601f191660200182016040528015612bda576020820181803883390190505b5090506000602082019050612b438185602001518660000151614378565b60008281808080808080808080805b8b5181101561323a578b51600360fc1b908d9083908110612c2457fe5b01602001516001600160f81b03191610801590612c6257508b51603960f81b908d9083908110612c5057fe5b01602001516001600160f81b03191611155b8015612c6c575083155b15612d1c578415612cca57612c888a600a63ffffffff6143b616565b9950612cbd603060f81b60f81c8d8381518110612ca157fe5b01602001518c9160f89190911c0360ff1663ffffffff61440f16565b9950600190970196612d17565b60019550612cdf8b600a63ffffffff6143b616565b9a50612d14603060f81b60f81c8d8381518110612cf857fe5b01602001518d9160f89190911c0360ff1663ffffffff61440f16565b9a505b613232565b8b51600360fc1b908d9083908110612d3057fe5b01602001516001600160f81b03191610801590612d6e57508b51603960f81b908d9083908110612d5c57fe5b01602001516001600160f81b03191611155b8015612d775750835b15612dc957612d8d89600a63ffffffff6143b616565b9850612dc2603060f81b60f81c8d8381518110612da657fe5b01602001518b9160f89190911c0360ff1663ffffffff61440f16565b9850613232565b8b51601760f91b908d9083908110612ddd57fe5b01602001516001600160f81b0319161415612ee45785612e3c576040805162461bcd60e51b81526020600482015260156024820152741b5a5cdcda5b99c81a5b9d1959dc985b081c185c9d605a1b604482015290519081900360640190fd5b8415612e8f576040805162461bcd60e51b815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b8315612edb576040805162461bcd60e51b8152602060048201526016602482015275191958da5b585b0818599d195c88195e1c1bdb995b9d60521b604482015290519081900360640190fd5b60019450613232565b8b51602d60f81b908d9083908110612ef857fe5b01602001516001600160f81b0319161415612fee578215612f4e576040805162461bcd60e51b815260206004820152600b60248201526a6475706c6963617465202d60a81b604482015290519081900360640190fd5b8115612f8e576040805162461bcd60e51b815260206004820152600a60248201526932bc3a39309039b4b3b760b11b604482015290519081900360640190fd5b808760010114612fe5576040805162461bcd60e51b815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613232565b8b51602b60f81b908d908390811061300257fe5b01602001516001600160f81b03191614156130f8578115613058576040805162461bcd60e51b815260206004820152600b60248201526a6475706c6963617465202b60a81b604482015290519081900360640190fd5b8215613098576040805162461bcd60e51b815260206004820152600a60248201526932bc3a39309039b4b3b760b11b604482015290519081900360640190fd5b8087600101146130ef576040805162461bcd60e51b815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613232565b8b51604560f81b908d908390811061310c57fe5b01602001516001600160f81b031916148061314757508b51606560f81b908d908390811061313657fe5b01602001516001600160f81b031916145b156131f55785613196576040805162461bcd60e51b81526020600482015260156024820152741b5a5cdcda5b99c81a5b9d1959dc985b081c185c9d605a1b604482015290519081900360640190fd5b83156131e9576040805162461bcd60e51b815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613232565b6040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a5908191a59da5d609a1b604482015290519081900360640190fd5b600101612c07565b82806132435750815b1561325c5786600201811161325757600080fd5b613271565b83156132715786600101811161327157600080fd5b82156132f2578d89106132e857604e8e8a03106132c5576040805162461bcd60e51b815260206004820152600d60248201526c6578706f6e656e74203e20373760981b604482015290519081900360640190fd5b8d8903600a0a8b816132d357fe5b049c506115379b505050505050505050505050565b888e039d50613305565b6133028e8a63ffffffff61440f16565b9d505b878e106133d957604e881061334b5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b61335f8b600a8a900a63ffffffff6143b616565b9a506133718b8b63ffffffff61440f16565b9a50604e888f03106133ba576040805162461bcd60e51b815260206004820152600d60248201526c6578706f6e656e74203e20373760981b604482015290519081900360640190fd5b6133d2888f03600a0a8c6143b690919063ffffffff16565b9a50613496565b8d88039750604e881061341d5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b87600a0a8a8161342957fe5b049950604e8e1061346b5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b6134818e600a0a8c6143b690919063ffffffff16565b9a506134938b8b63ffffffff61440f16565b9a505b50989d9c50505050505050505050505050565b6035546000906001600160a01b031615806134d657506035546134d4906001600160a01b0316611f28565b155b156134e7576134e56000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561353757600080fd5b505af115801561354b573d6000803e3d6000fd5b505050506040513d602081101561356157600080fd5b50516034546001600160a01b0390811691161461361457603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156135c857600080fd5b505af11580156135dc573d6000803e3d6000fd5b505050506040513d60208110156135f257600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b60345460405163524f388960e01b81526020600482018181528551602484015285516001600160a01b039094169363524f388993879383926044909201919085019080838360005b8381101561367457818101518382015260200161365c565b50505050905090810190601f1680156136a15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156136c057600080fd5b505af1158015611642573d6000803e3d6000fd5b60608082600001518460000151016040519080825280601f01601f19166020018201604052801561370c576020820181803883390190505b509050600060208201905061372a8186602001518760000151614378565b8451602085015185516137409284019190614378565b509392505050565b6035546000906001600160a01b031615806137755750603554613773906001600160a01b0316611f28565b155b15613786576137846000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156137d657600080fd5b505af11580156137ea573d6000803e3d6000fd5b505050506040513d602081101561380057600080fd5b50516034546001600160a01b039081169116146138b357603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561386757600080fd5b505af115801561387b573d6000803e3d6000fd5b505050506040513d602081101561389157600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b60345460408051630bbceb3360e21b815260248101859052600481019182528651604482015286516000936001600160a01b031692632ef3accc928992889291829160649091019060208601908083838c5b8381101561391d578181015183820152602001613905565b50505050905090810190601f16801561394a5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561396a57600080fd5b505af115801561397e573d6000803e3d6000fd5b505050506040513d602081101561399457600080fd5b50519050670de0b6b3a76400003a8402018111156139b6575060009050612162565b60345460405163c51be90f60e01b8152600060048201818152606483018790526080602484019081528951608485015289516001600160a01b039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b83811015613a30578181015183820152602001613a18565b50505050905090810190601f168015613a5d5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015613a90578181015183820152602001613a78565b50505050905090810190601f168015613abd5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b158015613adf57600080fd5b505af1158015613af3573d6000803e3d6000fd5b50505050506040513d6020811015613b0a57600080fd5b505195945050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610752908490614469565b6060613b74603a54611f36565b6001600160a01b031663443dd2a46040518163ffffffff1660e01b815260040160006040518083038186803b158015613bac57600080fd5b505afa158015613bc0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613be957600080fd5b8101908080516040519392919084600160201b821115613c0857600080fd5b908301906020820185811115613c1d57600080fd5b82518660208202830111600160201b82111715613c3957600080fd5b82525081516020918201928201910280838360005b83811015613c66578181015183820152602001613c4e565b50505050905001604052505050905090565b600080613c98731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed611f28565b1115613cf757603580546001600160a01b031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81526a195d1a17db585a5b9b995d60aa1b6020820152613cef90614627565b5060016106b5565b6000613d1673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1611f28565b1115613d6e57603580546001600160a01b03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81526b6574685f726f707374656e3360a01b6020820152613cef90614627565b6000613d8d73b7a07bcf2ba2f2703b24c0691b5278999c59ac7e611f28565b1115613de257603580546001600160a01b03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981526832ba342fb5b7bb30b760b91b6020820152613cef90614627565b6000613e0173146500cfd35b22e4a392fe0adc06de1a1368ed48611f28565b1115613e5857603580546001600160a01b03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81526a6574685f72696e6b65627960a81b6020820152613cef90614627565b6000613e7773a2998efd205fb9d4b4963afb70778d6354ad3a41611f28565b1115613ecd57603580546001600160a01b03191673a2998efd205fb9d4b4963afb70778d6354ad3a4117905560408051808201909152600a8152696574685f676f65726c6960b01b6020820152613cef90614627565b6000613eec736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475611f28565b1115613f205750603580546001600160a01b031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47517905560016106b5565b6000613f3f7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf611f28565b1115613f735750603580546001600160a01b0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf17905560016106b5565b6000613f927351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa611f28565b1115613fc65750603580546001600160a01b0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa17905560016106b5565b50600090565b60008060008060008551604114613fed5750600093508392506124e7915050565b50505060208301516040840151606085015160001a601b81101561400f57601b015b8060ff16601b1415801561402757508060ff16601c14155b1561403c5750600093508392506124e7915050565b6140488782858561463a565b945094505050509250929050565b6000611537826000612bf8565b600080826040516020018082805190602001908083835b602083106140995780518252601f19909201916020918201910161407a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012090506040518080622530b760e91b81525060030190506040518091039020811415614103576001915050611525565b60408051622332b160e91b8152905190819003600301902081141561412c576002915050611525565b604080516226b0b960e91b81529051908190036003019020811415614155576003915050611525565b604080516220b83960e91b8152905190819003600301902081141561417e576004915050611525565b60408051624d617960e81b815290519081900360030190208114156141a7576005915050611525565b6040805162253ab760e91b815290519081900360030190208114156141d0576006915050611525565b6040805162129d5b60ea1b815290519081900360030190208114156141f9576007915050611525565b604080516241756760e81b81529051908190036003019020811415614222576008915050611525565b604080516205365760ec1b8152905190819003600301902081141561424b576009915050611525565b604080516213d8dd60ea1b8152905190819003600301902081141561427457600a915050611525565b60408051622737bb60e91b8152905190819003600301902081141561429d57600b915050611525565b604080516244656360e81b815290519081900360030190208114156142c657600c915050611525565b6040805162461bcd60e51b81526020600482015260116024820152700dcdee840c240ecc2d8d2c840dadedce8d607b1b604482015290519081900360640190fd5b61430f6147b8565b600061432d8560000151866020015186600001518760200151614677565b60208087018051918601919091528051820385528651905191925001811415614359576000855261436f565b8351835186519101900385528351810160208601525b50909392505050565b5b60208110614398578151835260209283019290910190601f1901614379565b905182516020929092036101000a6000190180199091169116179052565b6000826143c557506000611537565b828202828482816143d257fe5b04146121625760405162461bcd60e51b815260040180806020018281038252602181526020018061494a6021913960400191505060405180910390fd5b600082820183811015612162576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61447b826001600160a01b0316614734565b6144cc576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b6020831061450a5780518252601f1990920191602091820191016144eb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461456c576040519150601f19603f3d011682016040523d82523d6000602084013e614571565b606091505b5091509150816145c8576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115614621578080602001905160208110156145e457600080fd5b50516146215760405162461bcd60e51b815260040180806020018281038252602a81526020018061496b602a913960400191505060405180910390fd5b50505050565b805161197e9060369060208401906147d2565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b6000838186851161472557602085116146ea5783518251600019600860208990030260020a011991821690888a018890039083165b8281146146dc578186106146ca578a8a01965050505050505061472c565b506001909401805190949083166146ac565b85965050505050505061472c565b508383206000905b85880382116147235785832081811415614712578394505050505061472c565b5060019283019291909101906146f2565b505b5050508284015b949350505050565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061477b5782800160ff198235161785556147a8565b828001600101855582156147a8579182015b828111156147a857823582559160200191906001019061478d565b506147b4929150614840565b5090565b604051806040016040528060008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061481357805160ff19168380011785556147a8565b828001600101855582156147a8579182015b828111156147a8578251825591602001919060010190614825565b6106b591905b808211156147b4576000815560010161484656fe68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f6d2f646174612f70726963653f6673796d3d6d6f7265207468616e20373720646563696d616c2064696769747320706172736564000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000000000102030405060708090a0b0c0d0e0f10111213141516171819000000003f001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132334eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582027e38ed8a4a47b3d09fcb9cf924d14a84e4869cd745eb43b919921205fc49f6964736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a983710bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca" +var OracleBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976039557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d396603a553480156200007a57600080fd5b50604051620056c4380380620056c483398181016040526080811015620000a057600080fd5b5080516020820151604083015160609093015191929091620000cb836001600160e01b036200017116565b620000df826001600160e01b036200025116565b620000f3816001600160e01b036200031016565b604051806060016040528060408152602001620056846040913980516200012391603b9160209091019062000bdb565b50603580546001600160a01b0319166001600160a01b0386161790556200014f6402540be400620003cf565b62000167600f60fc1b6001600160e01b03620005c016565b5050505062000c7d565b600054610100900460ff1680620001965750620001966001600160e01b03620007b616565b80620001a5575060005460ff16155b620001e25760405162461bcd60e51b815260040180806020018281038252602e81526020018062005656602e913960400191505060405180910390fd5b600054610100900460ff161580156200020e576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200023a57603380546001600160a01b0319166001600160a01b0384161790555b80156200024d576000805461ff00191690555b5050565b600054610100900460ff1680620002765750620002766001600160e01b03620007b616565b8062000285575060005460ff16155b620002c25760405162461bcd60e51b815260040180806020018281038252602e81526020018062005656602e913960400191505060405180910390fd5b600054610100900460ff16158015620002ee576000805460ff1961ff0019909116610100171660011790555b81156200023a57603982905580156200024d576000805461ff00191690555050565b600054610100900460ff1680620003355750620003356001600160e01b03620007b616565b8062000344575060005460ff16155b620003815760405162461bcd60e51b815260040180806020018281038252602e81526020018062005656602e913960400191505060405180910390fd5b600054610100900460ff16158015620003ad576000805460ff1961ff0019909116610100171660011790555b81156200023a57603a82905580156200024d576000805461ff00191690555050565b6035546001600160a01b0316158062000405575060355462000403906001600160a01b03166001600160e01b03620007bd16565b155b1562000422576200042060006001600160e01b03620007c116565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200047357600080fd5b505af115801562000488573d6000803e3d6000fd5b505050506040513d60208110156200049f57600080fd5b50516034546001600160a01b039081169116146200055657603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200050857600080fd5b505af11580156200051d573d6000803e3d6000fd5b505050506040513d60208110156200053457600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163329ab47960e21b81526004810184905290516001600160a01b039092169163ca6ad1e49160248082019260009290919082900301818387803b158015620005a457600080fd5b505af1158015620005b9573d6000803e3d6000fd5b5050505050565b6035546001600160a01b03161580620005f65750603554620005f4906001600160a01b03166001600160e01b03620007bd16565b155b1562000613576200061160006001600160e01b03620007c116565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200066457600080fd5b505af115801562000679573d6000803e3d6000fd5b505050506040513d60208110156200069057600080fd5b50516034546001600160a01b039081169116146200074757603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015620006f957600080fd5b505af11580156200070e573d6000803e3d6000fd5b505050506040513d60208110156200072557600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163688dcfd760e01b81527fff000000000000000000000000000000000000000000000000000000000000008416600482015290516001600160a01b039092169163688dcfd79160248082019260009290919082900301818387803b158015620005a457600080fd5b303b155b90565b3b90565b6000620007d66001600160e01b03620007dc16565b92915050565b60008062000807731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed6001600160e01b03620007bd16565b11156200087357603580546001600160a01b031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81526a195d1a17db585a5b9b995d60aa1b60208201526200086a906001600160e01b0362000bcb16565b506001620007ba565b60006200089d73c03a2615d5efaf5f49f60b7bb6583eaec212fdf16001600160e01b03620007bd16565b11156200090157603580546001600160a01b03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81526b6574685f726f707374656e3360a01b60208201526200086a906001600160e01b0362000bcb16565b60006200092b73b7a07bcf2ba2f2703b24c0691b5278999c59ac7e6001600160e01b03620007bd16565b11156200098c57603580546001600160a01b03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981526832ba342fb5b7bb30b760b91b60208201526200086a906001600160e01b0362000bcb16565b6000620009b673146500cfd35b22e4a392fe0adc06de1a1368ed486001600160e01b03620007bd16565b111562000a1957603580546001600160a01b03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81526a6574685f72696e6b65627960a81b60208201526200086a906001600160e01b0362000bcb16565b600062000a4373a2998efd205fb9d4b4963afb70778d6354ad3a416001600160e01b03620007bd16565b111562000aa557603580546001600160a01b03191673a2998efd205fb9d4b4963afb70778d6354ad3a4117905560408051808201909152600a8152696574685f676f65726c6960b01b60208201526200086a906001600160e01b0362000bcb16565b600062000acf736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4756001600160e01b03620007bd16565b111562000b055750603580546001600160a01b031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001620007ba565b600062000b2f7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf6001600160e01b03620007bd16565b111562000b655750603580546001600160a01b0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001620007ba565b600062000b8f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa6001600160e01b03620007bd16565b111562000bc55750603580546001600160a01b0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001620007ba565b50600090565b80516200024d9060369060208401905b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000c1e57805160ff191683800117855562000c4e565b8280016001018555821562000c4e579182015b8281111562000c4e57825182559160200191906001019062000c31565b5062000c5c92915062000c60565b5090565b620007ba91905b8082111562000c5c576000815560010162000c67565b6149c98062000c8d6000396000f3fe6080604052600436106100915760003560e01c8063996cba6811610059578063996cba681461032c578063b598f8821461036f578063c2c3d0541461038c578063ca6ad1e414610407578063e2b4ce971461043157610091565b806338bbfa50146100965780633acbe96e146101d55780637d73b2311461025f578063877337b014610290578063937f54a4146102b7575b600080fd5b3480156100a257600080fd5b506101d3600480360360608110156100b957600080fd5b81359190810190604081016020820135600160201b8111156100da57600080fd5b8201836020820111156100ec57600080fd5b803590602001918460018302840111600160201b8311171561010d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561015f57600080fd5b82018360208201111561017157600080fd5b803590602001918460018302840111600160201b8311171561019257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610446945050505050565b005b3480156101e157600080fd5b506101ea61061a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022457818101518382015260200161020c565b50505050905090810190601f1680156102515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026b57600080fd5b506102746106a8565b604080516001600160a01b039092168252519081900360200190f35b34801561029c57600080fd5b506102a56106b8565b60408051918252519081900360200190f35b6101d3600480360360408110156102cd57600080fd5b81359190810190604081016020820135600160201b8111156102ee57600080fd5b82018360208201111561030057600080fd5b803590602001918460208302840111600160201b8311171561032157600080fd5b5090925090506106be565b34801561033857600080fd5b506101d36004803603606081101561034f57600080fd5b506001600160a01b03813581169160208101359091169060400135610757565b6101d36004803603602081101561038557600080fd5b5035610804565b34801561039857600080fd5b506101d3600480360360208110156103af57600080fd5b810190602081018135600160201b8111156103c957600080fd5b8201836020820111156103db57600080fd5b803590602001918460018302840111600160201b831117156103fc57600080fd5b509092509050610867565b34801561041357600080fd5b506101d36004803603602081101561042a57600080fd5b5035610935565b34801561043d57600080fd5b506102a56109d3565b61044e6109d9565b6001600160a01b0316336001600160a01b0316146104ac576040805162461bcd60e51b815260206004820152601660248201527573656e646572206973206e6f74206f7261636c697a6560501b604482015290519081900360640190fd5b6000838152603c60205260408120546001600160a01b031690806104cf83610bc3565b96505050945050505081610524576040805162461bcd60e51b8152602060048201526017602482015276746f6b656e206d75737420626520617661696c61626c6560481b604482015290519081900360640190fd5b603b8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260009384936105c5938b938b93909290918301828280156105ba5780601f1061058f576101008083540402835291602001916105ba565b820191906000526020600020905b81548152906001019060200180831161059d57829003601f168201915b505050505086610d55565b909250905081156106105760006105e36105de89611287565b61152a565b60008a8152603c6020526040902080546001600160a01b031916905590508161060d87838361153d565b50505b5050505050505050565b603b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b6033546001600160a01b03165b90565b603a5490565b6106c7336115cc565b610715576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b6107528383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061166092505050565b505050565b61076033611982565b6107aa576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6107b58383836119e4565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b61080d336115cc565b61085b576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b61086481611aae565b50565b61087033611982565b6108ba576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6108c6603b838361473a565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa929091859185919060608201848480828437600083820152604051601f909101601f1916909201829003965090945050505050a15050565b61093e336115cc565b61098c576040805162461bcd60e51b815260206004820152601a60248201527939b2b73232b91034b9903737ba10309031b7b73a3937b63632b960311b604482015290519081900360640190fd5b61099581611d5f565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60395490565b6035546000906001600160a01b03161580610a065750603554610a04906001600160a01b0316611f28565b155b15610a1757610a156000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a6757600080fd5b505af1158015610a7b573d6000803e3d6000fd5b505050506040513d6020811015610a9157600080fd5b50516034546001600160a01b03908116911614610b4457603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610af857600080fd5b505af1158015610b0c573d6000803e3d6000fd5b505050506040513d6020811015610b2257600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b603460009054906101000a90046001600160a01b03166001600160a01b031663c281d19e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9257600080fd5b505afa158015610ba6573d6000803e3d6000fd5b505050506040513d6020811015610bbc57600080fd5b5051905090565b6060600080600080600080610bd9603a54611f36565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610c6b57600080fd5b8101908080516040519392919084600160201b821115610c8a57600080fd5b908301906020820185811115610c9f57600080fd5b8251600160201b811182820188101715610cb857600080fd5b82525081516020918201929091019080838360005b83811015610ce5578181015183820152602001610ccd565b50505050905090810190601f168015610d125780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b60008060a5855114610da5576040805162461bcd60e51b81526020600482015260146024820152730d2dcecc2d8d2c840e0e4dedecc40d8cadccee8d60631b604482015290519081900360640190fd5b604185600181518110610db457fe5b016020015160f81c14610e0e576040805162461bcd60e51b815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252606091602082018180388339019050509050610e408660026041846000612057565b865190915060609087906044908110610e5557fe5b0160200151875160f89190911c906101009089906043908110610e7457fe5b016020015160f81c020114610ec9576040805162461bcd60e51b81526020600482015260166024820152750d2dcecc2d8d2c840d0cac2c8cae4e640d8cadccee8d60531b604482015290519081900360640190fd5b6040805160608082526080820190925281602082018180388339019050509050610ef98760456060846000612057565b9050610f068183886120a5565b610f4b576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b604080516014808252818301909252606091602082018180388339019050509050610f7c82600b6014846000612057565b9050600080610f8b8389612169565b909250905081610fd1576040805162461bcd60e51b815260206004820152600c60248201526b696e76616c6964206461746560a01b604482015290519081900360640190fd5b60408051602c8082526060828101909352602082018180388339019050509050611001856034602c846000612057565b905061100c816124ee565b8051906020012060028d6040516020018082805190602001908083835b602083106110485780518252601f199092019160209182019101611029565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106110ab5780518252601f19909201916020918201910161108c565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa1580156110ea573d6000803e3d6000fd5b5050506040513d60208110156110ff57600080fd5b505160408051602081810193909352815180820384018152908201909152805191012014611174576040805162461bcd60e51b815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156111d85781810151838201526020016111c0565b50505050905090810190601f1680156112055780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611238578181015183820152602001611220565b50505050905090810190601f1680156112655780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000826040516020018082805190602001908083835b602083106112be5780518252601f19909201916020918201910161129f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525190506008811180156113065750601c8111155b61134c576040805162461bcd60e51b81526020600482015260126024820152711b5a5cd99bdc9b585d1d1959081a5b9c1d5d60721b604482015290519081900360640190fd5b6040805160078082528183019092526060916020820181803883390190505090506113e3846040516020018082805190602001908083835b602083106113a35780518252601f199092019160209182019101611384565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007846000612057565b5060408051663d9122aa24111d60c91b81529051908190036007019020815160208301201461144b576040805162461bcd60e51b815260206004820152600f60248201526e0e0e4caccd2f040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b6114536147b8565b61145c85612b0b565b9050611490611483604051806040016040528060018152602001601d60f91b815250612b0b565b829063ffffffff612b3016565b50806000015192506114ca6114bd604051806040016040528060018152602001607d60f81b815250612b0b565b829063ffffffff612b4a16565b508051600019840114611516576040805162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a9cdbdb88199bdc9b585d608a1b604482015290519081900360640190fd5b61151f81612ba8565b93505050505b919050565b6000611537826012612bf8565b92915050565b611548603a54611f36565b6001600160a01b031663d545782e8484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156115af57600080fd5b505af11580156115c3573d6000803e3d6000fd5b50505050505050565b60006115d9603954611f36565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561162e57600080fd5b505afa158015611642573d6000803e3d6000fd5b505050506040513d602081101561165857600080fd5b505192915050565b80516116ac576040805160208082526010908201526f195b5c1d1e481d1bdad95b881b1a5cdd60821b81830152905160008051602061492a8339815191529181900360600190a161197e565b4781516116d36040518060400160405280600381526020016215549360ea1b8152506134a9565b0211156117245760408051602080825260149082015273696e73756666696369656e742062616c616e636560601b81830152905160008051602061492a8339815191529181900360600190a161197e565b61172c6147b8565b61174d60405180606001604052806032815260200161485b60329139612b0b565b90506117576147b8565b61178c60405180604001604052806014815260200173267473796d733d455448267369676e3d7472756560601b815250612b0b565b905060005b835181101561197a57606060006117ba8684815181106117ad57fe5b6020026020010151610bc3565b5050509350505091508061180f576040805162461bcd60e51b8152602060048201526017602482015276746f6b656e206d75737420626520617661696c61626c6560481b604482015290519081900360640190fd5b6118176147b8565b61182083612b0b565b905060006118746040518060400160405280600381526020016215549360ea1b81525061186e8861186261185d878d6136d490919063ffffffff16565b612b0b565b9063ffffffff6136d416565b8b613748565b905087858151811061188257fe5b6020026020010151603c600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f47737841f636da1ca9f2de10d9bfb96c4251e0b31de72a902d4fd4ac8797bbbe6118eb83612ba8565b826040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561192f578181015183820152602001611917565b50505050905090810190601f16801561195c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050600190920191506117919050565b5050505b5050565b600061198f603954611f36565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561162e57600080fd5b6001600160a01b038216611a94576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114611a3d576040519150601f19603f3d011682016040523d82523d6000602084013e611a42565b606091505b5050905080611a8e576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b50610752565b6107526001600160a01b038316848363ffffffff613b1516565b6060611ab8613b67565b9050805160001415611b0357604080516020808252600990820152686e6f20746f6b656e7360b81b81830152905160008051602061492a8339815191529181900360600190a161197e565b478151611b2a6040518060400160405280600381526020016215549360ea1b8152506134a9565b021115611b7b5760408051602080825260149082015273696e73756666696369656e742062616c616e636560601b81830152905160008051602061492a8339815191529181900360600190a161197e565b611b836147b8565b611ba460405180606001604052806032815260200161485b60329139612b0b565b9050611bae6147b8565b611be360405180604001604052806014815260200173267473796d733d455448267369676e3d7472756560601b815250612b0b565b905060005b835181101561197a576060611c028583815181106117ad57fe5b5050505050509050611c126147b8565b611c1b82612b0b565b90506000611c5e6040518060400160405280600381526020016215549360ea1b815250611c588761186261185d878c6136d490919063ffffffff16565b8a613748565b9050868481518110611c6c57fe5b6020026020010151603c600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f47737841f636da1ca9f2de10d9bfb96c4251e0b31de72a902d4fd4ac8797bbbe611cd583612ba8565b826040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611d19578181015183820152602001611d01565b50505050905090810190601f168015611d465780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050600101611be8565b6035546001600160a01b03161580611d895750603554611d87906001600160a01b0316611f28565b155b15611d9a57611d986000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611dea57600080fd5b505af1158015611dfe573d6000803e3d6000fd5b505050506040513d6020811015611e1457600080fd5b50516034546001600160a01b03908116911614611ec757603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611e7b57600080fd5b505af1158015611e8f573d6000803e3d6000fd5b505050506040513d6020811015611ea557600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b6034546040805163329ab47960e21b81526004810184905290516001600160a01b039092169163ca6ad1e49160248082019260009290919082900301818387803b158015611f1457600080fd5b505af115801561197a573d6000803e3d6000fd5b3b90565b6000611537613c78565b6033546000906001600160a01b0316611f96576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015611fe257600080fd5b505afa158015611ff6573d6000803e3d6000fd5b505050506040513d602081101561200c57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561162e57600080fd5b606060008285019050808451101561206e57600080fd5b60208087019084015b86886020010182101561209857888201518682015260209182019101612077565b5093979650505050505050565b600080600061213b6002876040518082805190602001908083835b602083106120df5780518252601f1990920191602091820191016120c0565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa15801561211e573d6000803e3d6000fd5b5050506040513d602081101561213357600080fd5b505186613fcc565b9250905080801561215d5750835160208501206001600160a01b038381169116145b925050505b9392505050565b600080836040516020018082805190602001908083835b6020831061219f5780518252601f199092019160209182019101612180565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052516014146121dd57fe5b6121e56147b8565b6121ee85612b0b565b90506121f86147b8565b61221a604051806040016040528060018152602001601d60f91b815250612b0b565b90506122246147b8565b612246604051806040016040528060018152602001600160fd1b815250612b0b565b9050600061226a612265612260868563ffffffff612b3016565b612ba8565b614056565b905060008111801561227c5750602081105b6122b9576040805162461bcd60e51b81526020600482015260096024820152683230bc9032b93937b960b91b604482015290519081900360640190fd5b60006122d66122d1612260878663ffffffff612b3016565b614063565b60ff1690506000811180156122eb5750600d81105b61232a576040805162461bcd60e51b815260206004820152600b60248201526a36b7b73a341032b93937b960a91b604482015290519081900360640190fd5b6000612342612265612260888763ffffffff612b3016565b90506107e1811180156123565750610bb881105b612394576040805162461bcd60e51b815260206004820152600a6024820152693cb2b0b91032b93937b960b11b604482015290519081900360640190fd5b60006123ac612265612260898963ffffffff612b3016565b9050601981106123f0576040805162461bcd60e51b815260206004820152600a6024820152693437bab91032b93937b960b11b604482015290519081900360640190fd5b60006124086122656122608a8a63ffffffff612b3016565b9050603c811061244e576040805162461bcd60e51b815260206004820152600c60248201526b36b4b73aba329032b93937b960a11b604482015290519081900360640190fd5b60006124666122656122608b8b63ffffffff612b3016565b9050603c81106124ac576040805162461bcd60e51b815260206004820152600c60248201526b39b2b1b7b7321032b93937b960a11b604482015290519081900360640190fd5b60008183606402856127100289620f424002896305f5e10002896402540be40002010101010190508c8111819b509b50505050505050505050505b9250929050565b60606000806000806000865190506060816040519080825280601f01601f191660200182016040528015612529576020820181803883390190505b5090506000808311801561253e575060048306155b61258f576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b60408051603d60f81b8152905190819003600101902089518a9060011986019081106125b757fe5b01602090810151604080516001600160f81b0319909216828401528051808303600101815260219092019052805191012014156125f95760028303925061265f565b60408051603d60f81b8152905190819003600101902089518a90600019860190811061262157fe5b01602090810151604080516001600160f81b03199092168284015280518083036001018152602190920190528051910120141561265f576001830392505b600319831660005b8181101561287d576040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061269957fe5b0160200151815160f89190911c9081106126af57fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106126e657fe5b0160200151815160f89190911c9081106126fc57fe5b602001015160f81c60f81b97506040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061273357fe5b0160200151815160f89190911c90811061274957fe5b602001015160f81c60f81b96506040518060a00160405280607b81526020016148af607b91398b5160018301928d91811061278057fe5b0160200151815160f89190911c90811061279657fe5b016020015184516001600160f81b031991821697506001850194603f60fa1b60028d901b1660ff60f41b60048d901c161790921691869181106127d557fe5b60200101906001600160f81b031916908160001a90535083516001840193600f60fc1b60048b901b1660ff60f61b60028b901c16176001600160f81b03191691869190811061282057fe5b60200101906001600160f81b031916908160001a90535083516001840193600360fe1b60068a901b1688176001600160f81b03191691869190811061286157fe5b60200101906001600160f81b031916908160001a905350612667565b81850360021415612975576040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106128b257fe5b0160200151815160f89190911c9081106128c857fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106128ff57fe5b0160200151815160f89190911c90811061291557fe5b602001015160f81c60f81b97506004886001600160f81b031916901c60028a6001600160f81b031916901b1760ff60f81b1684848060010195508151811061295957fe5b60200101906001600160f81b031916908160001a905350612afc565b81850360031415612afc576040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106129aa57fe5b0160200151815160f89190911c9081106129c057fe5b602001015160f81c60f81b98506040518060a00160405280607b81526020016148af607b91398b5160018301928d9181106129f757fe5b0160200151815160f89190911c908110612a0d57fe5b602001015160f81c60f81b97506040518060a00160405280607b81526020016148af607b91398b5160018301928d918110612a4457fe5b0160200151815160f89190911c908110612a5a57fe5b016020015184516001600160f81b031991821698506001850194603f60fa1b60028d901b1660ff60f41b60048d901c16179092169186918110612a9957fe5b60200101906001600160f81b031916908160001a90535083516001840193600f60fc1b60048b901b1660ff60f61b60028b901c16176001600160f81b031916918691908110612ae457fe5b60200101906001600160f81b031916908160001a9053505b50508152979650505050505050565b612b136147b8565b506040805180820190915281518152602082810190820152919050565b612b386147b8565b612b43838383614307565b5092915050565b612b526147b8565b815183511015612b63575081611537565b8151835160208086015190850151910191909103906001908214612b91575082516020840151819020908220145b8015612b9f57835185510385525b50929392505050565b60608082600001516040519080825280601f01601f191660200182016040528015612bda576020820181803883390190505b5090506000602082019050612b438185602001518660000151614378565b60008281808080808080808080805b8b5181101561323a578b51600360fc1b908d9083908110612c2457fe5b01602001516001600160f81b03191610801590612c6257508b51603960f81b908d9083908110612c5057fe5b01602001516001600160f81b03191611155b8015612c6c575083155b15612d1c578415612cca57612c888a600a63ffffffff6143b616565b9950612cbd603060f81b60f81c8d8381518110612ca157fe5b01602001518c9160f89190911c0360ff1663ffffffff61440f16565b9950600190970196612d17565b60019550612cdf8b600a63ffffffff6143b616565b9a50612d14603060f81b60f81c8d8381518110612cf857fe5b01602001518d9160f89190911c0360ff1663ffffffff61440f16565b9a505b613232565b8b51600360fc1b908d9083908110612d3057fe5b01602001516001600160f81b03191610801590612d6e57508b51603960f81b908d9083908110612d5c57fe5b01602001516001600160f81b03191611155b8015612d775750835b15612dc957612d8d89600a63ffffffff6143b616565b9850612dc2603060f81b60f81c8d8381518110612da657fe5b01602001518b9160f89190911c0360ff1663ffffffff61440f16565b9850613232565b8b51601760f91b908d9083908110612ddd57fe5b01602001516001600160f81b0319161415612ee45785612e3c576040805162461bcd60e51b81526020600482015260156024820152741b5a5cdcda5b99c81a5b9d1959dc985b081c185c9d605a1b604482015290519081900360640190fd5b8415612e8f576040805162461bcd60e51b815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b8315612edb576040805162461bcd60e51b8152602060048201526016602482015275191958da5b585b0818599d195c88195e1c1bdb995b9d60521b604482015290519081900360640190fd5b60019450613232565b8b51602d60f81b908d9083908110612ef857fe5b01602001516001600160f81b0319161415612fee578215612f4e576040805162461bcd60e51b815260206004820152600b60248201526a6475706c6963617465202d60a81b604482015290519081900360640190fd5b8115612f8e576040805162461bcd60e51b815260206004820152600a60248201526932bc3a39309039b4b3b760b11b604482015290519081900360640190fd5b808760010114612fe5576040805162461bcd60e51b815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613232565b8b51602b60f81b908d908390811061300257fe5b01602001516001600160f81b03191614156130f8578115613058576040805162461bcd60e51b815260206004820152600b60248201526a6475706c6963617465202b60a81b604482015290519081900360640190fd5b8215613098576040805162461bcd60e51b815260206004820152600a60248201526932bc3a39309039b4b3b760b11b604482015290519081900360640190fd5b8087600101146130ef576040805162461bcd60e51b815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613232565b8b51604560f81b908d908390811061310c57fe5b01602001516001600160f81b031916148061314757508b51606560f81b908d908390811061313657fe5b01602001516001600160f81b031916145b156131f55785613196576040805162461bcd60e51b81526020600482015260156024820152741b5a5cdcda5b99c81a5b9d1959dc985b081c185c9d605a1b604482015290519081900360640190fd5b83156131e9576040805162461bcd60e51b815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613232565b6040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a5908191a59da5d609a1b604482015290519081900360640190fd5b600101612c07565b82806132435750815b1561325c5786600201811161325757600080fd5b613271565b83156132715786600101811161327157600080fd5b82156132f2578d89106132e857604e8e8a03106132c5576040805162461bcd60e51b815260206004820152600d60248201526c6578706f6e656e74203e20373760981b604482015290519081900360640190fd5b8d8903600a0a8b816132d357fe5b049c506115379b505050505050505050505050565b888e039d50613305565b6133028e8a63ffffffff61440f16565b9d505b878e106133d957604e881061334b5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b61335f8b600a8a900a63ffffffff6143b616565b9a506133718b8b63ffffffff61440f16565b9a50604e888f03106133ba576040805162461bcd60e51b815260206004820152600d60248201526c6578706f6e656e74203e20373760981b604482015290519081900360640190fd5b6133d2888f03600a0a8c6143b690919063ffffffff16565b9a50613496565b8d88039750604e881061341d5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b87600a0a8a8161342957fe5b049950604e8e1061346b5760405162461bcd60e51b815260040180806020018281038252602281526020018061488d6022913960400191505060405180910390fd5b6134818e600a0a8c6143b690919063ffffffff16565b9a506134938b8b63ffffffff61440f16565b9a505b50989d9c50505050505050505050505050565b6035546000906001600160a01b031615806134d657506035546134d4906001600160a01b0316611f28565b155b156134e7576134e56000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561353757600080fd5b505af115801561354b573d6000803e3d6000fd5b505050506040513d602081101561356157600080fd5b50516034546001600160a01b0390811691161461361457603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156135c857600080fd5b505af11580156135dc573d6000803e3d6000fd5b505050506040513d60208110156135f257600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b60345460405163524f388960e01b81526020600482018181528551602484015285516001600160a01b039094169363524f388993879383926044909201919085019080838360005b8381101561367457818101518382015260200161365c565b50505050905090810190601f1680156136a15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156136c057600080fd5b505af1158015611642573d6000803e3d6000fd5b60608082600001518460000151016040519080825280601f01601f19166020018201604052801561370c576020820181803883390190505b509050600060208201905061372a8186602001518760000151614378565b8451602085015185516137409284019190614378565b509392505050565b6035546000906001600160a01b031615806137755750603554613773906001600160a01b0316611f28565b155b15613786576137846000611f2c565b505b603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156137d657600080fd5b505af11580156137ea573d6000803e3d6000fd5b505050506040513d602081101561380057600080fd5b50516034546001600160a01b039081169116146138b357603560009054906101000a90046001600160a01b03166001600160a01b03166338cc48316040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561386757600080fd5b505af115801561387b573d6000803e3d6000fd5b505050506040513d602081101561389157600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790555b60345460408051630bbceb3360e21b815260248101859052600481019182528651604482015286516000936001600160a01b031692632ef3accc928992889291829160649091019060208601908083838c5b8381101561391d578181015183820152602001613905565b50505050905090810190601f16801561394a5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561396a57600080fd5b505af115801561397e573d6000803e3d6000fd5b505050506040513d602081101561399457600080fd5b50519050670de0b6b3a76400003a8402018111156139b6575060009050612162565b60345460405163c51be90f60e01b8152600060048201818152606483018790526080602484019081528951608485015289516001600160a01b039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b83811015613a30578181015183820152602001613a18565b50505050905090810190601f168015613a5d5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015613a90578181015183820152602001613a78565b50505050905090810190601f168015613abd5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b158015613adf57600080fd5b505af1158015613af3573d6000803e3d6000fd5b50505050506040513d6020811015613b0a57600080fd5b505195945050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610752908490614469565b6060613b74603a54611f36565b6001600160a01b031663443dd2a46040518163ffffffff1660e01b815260040160006040518083038186803b158015613bac57600080fd5b505afa158015613bc0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613be957600080fd5b8101908080516040519392919084600160201b821115613c0857600080fd5b908301906020820185811115613c1d57600080fd5b82518660208202830111600160201b82111715613c3957600080fd5b82525081516020918201928201910280838360005b83811015613c66578181015183820152602001613c4e565b50505050905001604052505050905090565b600080613c98731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed611f28565b1115613cf757603580546001600160a01b031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81526a195d1a17db585a5b9b995d60aa1b6020820152613cef90614627565b5060016106b5565b6000613d1673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1611f28565b1115613d6e57603580546001600160a01b03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81526b6574685f726f707374656e3360a01b6020820152613cef90614627565b6000613d8d73b7a07bcf2ba2f2703b24c0691b5278999c59ac7e611f28565b1115613de257603580546001600160a01b03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981526832ba342fb5b7bb30b760b91b6020820152613cef90614627565b6000613e0173146500cfd35b22e4a392fe0adc06de1a1368ed48611f28565b1115613e5857603580546001600160a01b03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81526a6574685f72696e6b65627960a81b6020820152613cef90614627565b6000613e7773a2998efd205fb9d4b4963afb70778d6354ad3a41611f28565b1115613ecd57603580546001600160a01b03191673a2998efd205fb9d4b4963afb70778d6354ad3a4117905560408051808201909152600a8152696574685f676f65726c6960b01b6020820152613cef90614627565b6000613eec736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475611f28565b1115613f205750603580546001600160a01b031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47517905560016106b5565b6000613f3f7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf611f28565b1115613f735750603580546001600160a01b0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf17905560016106b5565b6000613f927351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa611f28565b1115613fc65750603580546001600160a01b0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa17905560016106b5565b50600090565b60008060008060008551604114613fed5750600093508392506124e7915050565b50505060208301516040840151606085015160001a601b81101561400f57601b015b8060ff16601b1415801561402757508060ff16601c14155b1561403c5750600093508392506124e7915050565b6140488782858561463a565b945094505050509250929050565b6000611537826000612bf8565b600080826040516020018082805190602001908083835b602083106140995780518252601f19909201916020918201910161407a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012090506040518080622530b760e91b81525060030190506040518091039020811415614103576001915050611525565b60408051622332b160e91b8152905190819003600301902081141561412c576002915050611525565b604080516226b0b960e91b81529051908190036003019020811415614155576003915050611525565b604080516220b83960e91b8152905190819003600301902081141561417e576004915050611525565b60408051624d617960e81b815290519081900360030190208114156141a7576005915050611525565b6040805162253ab760e91b815290519081900360030190208114156141d0576006915050611525565b6040805162129d5b60ea1b815290519081900360030190208114156141f9576007915050611525565b604080516241756760e81b81529051908190036003019020811415614222576008915050611525565b604080516205365760ec1b8152905190819003600301902081141561424b576009915050611525565b604080516213d8dd60ea1b8152905190819003600301902081141561427457600a915050611525565b60408051622737bb60e91b8152905190819003600301902081141561429d57600b915050611525565b604080516244656360e81b815290519081900360030190208114156142c657600c915050611525565b6040805162461bcd60e51b81526020600482015260116024820152700dcdee840c240ecc2d8d2c840dadedce8d607b1b604482015290519081900360640190fd5b61430f6147b8565b600061432d8560000151866020015186600001518760200151614677565b60208087018051918601919091528051820385528651905191925001811415614359576000855261436f565b8351835186519101900385528351810160208601525b50909392505050565b5b60208110614398578151835260209283019290910190601f1901614379565b905182516020929092036101000a6000190180199091169116179052565b6000826143c557506000611537565b828202828482816143d257fe5b04146121625760405162461bcd60e51b815260040180806020018281038252602181526020018061494a6021913960400191505060405180910390fd5b600082820183811015612162576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61447b826001600160a01b0316614734565b6144cc576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b6020831061450a5780518252601f1990920191602091820191016144eb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461456c576040519150601f19603f3d011682016040523d82523d6000602084013e614571565b606091505b5091509150816145c8576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115614621578080602001905160208110156145e457600080fd5b50516146215760405162461bcd60e51b815260040180806020018281038252602a81526020018061496b602a913960400191505060405180910390fd5b50505050565b805161197e9060369060208401906147d2565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b6000838186851161472557602085116146ea5783518251600019600860208990030260020a011991821690888a018890039083165b8281146146dc578186106146ca578a8a01965050505050505061472c565b506001909401805190949083166146ac565b85965050505050505061472c565b508383206000905b85880382116147235785832081811415614712578394505050505061472c565b5060019283019291909101906146f2565b505b5050508284015b949350505050565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061477b5782800160ff198235161785556147a8565b828001600101855582156147a8579182015b828111156147a857823582559160200191906001019061478d565b506147b4929150614840565b5090565b604051806040016040528060008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061481357805160ff19168380011785556147a8565b828001600101855582156147a8579182015b828111156147a8578251825591602001919060010190614825565b6106b591905b808211156147b4576000815560010161484656fe68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f6d2f646174612f70726963653f6673796d3d6d6f7265207468616e20373720646563696d616c2064696769747320706172736564000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000000000102030405060708090a0b0c0d0e0f10111213141516171819000000003f001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132334eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582082287d098fba248515a0504a7e347fde325a930baa8cc92b8c4d6d477a05e71564736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a983710bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca" // DeployOracle deploys a new Ethereum contract, binding an instance of Oracle to it. func DeployOracle(auth *bind.TransactOpts, backend bind.ContractBackend, _resolver_ common.Address, _ens_ common.Address, _controllerNode_ [32]byte, _tokenWhitelistNode_ [32]byte) (common.Address, *types.Transaction, *Oracle, error) { diff --git a/pkg/bindings/tokenWhitelist.go b/pkg/bindings/tokenWhitelist.go index 8b50edc1..88e51c0c 100644 --- a/pkg/bindings/tokenWhitelist.go +++ b/pkg/bindings/tokenWhitelist.go @@ -31,7 +31,7 @@ var ( const TokenWhitelistABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_oracleNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_stablecoinAddress_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"AddedExclusiveMethod\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"AddedMethodId\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_magnitude\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_loadable\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_redeemable\",\"type\":\"bool\"}],\"name\":\"AddedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"RemovedExclusiveMethod\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"RemovedMethodId\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"RemovedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_loadable\",\"type\":\"bool\"}],\"name\":\"UpdatedTokenLoadable\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_rate\",\"type\":\"uint256\"}],\"name\":\"UpdatedTokenRate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_redeemable\",\"type\":\"bool\"}],\"name\":\"UpdatedTokenRedeemable\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_tokens\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_symbols\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_magnitude\",\"type\":\"uint256[]\"},{\"internalType\":\"bool[]\",\"name\":\"_loadable\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"_redeemable\",\"type\":\"bool[]\"},{\"internalType\":\"uint256\",\"name\":\"_lastUpdate\",\"type\":\"uint256\"}],\"name\":\"addTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"getERC20RecipientAndAmount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getStablecoinInfo\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"getTokenInfo\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"isERC20MethodSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_methodId\",\"type\":\"bytes4\"}],\"name\":\"isERC20MethodWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"oracleNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemableCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemableTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_tokens\",\"type\":\"address[]\"}],\"name\":\"removeTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_loadable\",\"type\":\"bool\"}],\"name\":\"setTokenLoadable\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_redeemable\",\"type\":\"bool\"}],\"name\":\"setTokenRedeemable\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"stablecoin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_rate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_updateDate\",\"type\":\"uint256\"}],\"name\":\"updateTokenRate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" // TokenWhitelistBin is the compiled bytecode used for deploying new contracts. -var TokenWhitelistBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034553480156200005657600080fd5b506040516200272c3803806200272c833981810160405260808110156200007c57600080fd5b5080516020820151604083015160609093015191929091620000a7846001600160e01b03620001a616565b620000bb826001600160e01b036200028616565b603a9290925550603980546001600160a01b0319166001600160a01b039092169190911790555060366020527f36aaa0d2a881446a5d284caf55fe779596f3dd15619675545d6094c8909139c2805460ff1990811660019081179092557fbdd45af1473e0dd27b6e035ccafb153373c61968247ba4b7c0e6c1c96496792f80548216831790557f877171c55a6bbc4aa0ea34a24de07dd3c5952b4a7d66df2b953f79c7955a122780548216831790556323b872dd60e01b6000527f04324ec27bf37ba85969616ff61c6c0e3939d6b141697b749b0be22765b29870805490911690911790556200034b565b600054610100900460ff1680620001cb5750620001cb6001600160e01b036200034516565b80620001da575060005460ff16155b620002175760405162461bcd60e51b815260040180806020018281038252602e815260200180620026fe602e913960400191505060405180910390fd5b600054610100900460ff1615801562000243576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200026f57603380546001600160a01b0319166001600160a01b0384161790555b801562000282576000805461ff00191690555b5050565b600054610100900460ff1680620002ab5750620002ab6001600160e01b036200034516565b80620002ba575060005460ff16155b620002f75760405162461bcd60e51b815260040180806020018281038252602e815260200180620026fe602e913960400191505060405180910390fd5b600054610100900460ff1615801562000323576000805460ff1961ff0019909116610100171660011790555b81156200026f576034829055801562000282576000805461ff00191690555050565b303b1590565b6123a3806200035b6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80636c3824ef116100a2578063996cba6811610071578063996cba6814610584578063afc72e93146105ba578063d545782e1461065b578063e2b4ce971461068d578063e9cbd8221461069557610116565b80636c3824ef146104bc5780637d73b2311461052a57806380cc0dda1461054e578063872773061461055657610116565b80633efec5e9116100e95780633efec5e9146103f0578063443dd2a4146103f857806344b049bc146104505780635d793a7d146104585780636a1744dc1461048657610116565b806313d5e8461461011b5780631d3a069f146101355780631f69565f1461017057806334c73edc14610240575b600080fd5b61012361069d565b60408051918252519081900360200190f35b61015c6004803603602081101561014b57600080fd5b50356001600160e01b0319166106a4565b604080519115158252519081900360200190f35b6101966004803603602081101561018657600080fd5b50356001600160a01b03166106c7565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b838110156101ff5781810151838201526020016101e7565b50505050905090810190601f16801561022c5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b6103ee600480360360c081101561025657600080fd5b810190602081018135600160201b81111561027057600080fd5b82018360208201111561028257600080fd5b803590602001918460208302840111600160201b831117156102a357600080fd5b919390929091602081019035600160201b8111156102c057600080fd5b8201836020820111156102d257600080fd5b803590602001918460208302840111600160201b831117156102f357600080fd5b919390929091602081019035600160201b81111561031057600080fd5b82018360208201111561032257600080fd5b803590602001918460208302840111600160201b8311171561034357600080fd5b919390929091602081019035600160201b81111561036057600080fd5b82018360208201111561037257600080fd5b803590602001918460208302840111600160201b8311171561039357600080fd5b919390929091602081019035600160201b8111156103b057600080fd5b8201836020820111156103c257600080fd5b803590602001918460208302840111600160201b831117156103e357600080fd5b9193509150356107c5565b005b610196610c57565b610400610d55565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043c578181015183820152602001610424565b505050509050019250505060405180910390f35b610400610db7565b6103ee6004803603604081101561046e57600080fd5b506001600160a01b0381351690602001351515610e85565b61015c6004803603604081101561049c57600080fd5b5080356001600160a01b031690602001356001600160e01b03191661107b565b6103ee600480360360208110156104d257600080fd5b810190602081018135600160201b8111156104ec57600080fd5b8201836020820111156104fe57600080fd5b803590602001918460208302840111600160201b8311171561051f57600080fd5b509092509050611102565b6105326113a5565b604080516001600160a01b039092168252519081900360200190f35b6101236113b4565b6103ee6004803603604081101561056c57600080fd5b506001600160a01b03813516906020013515156113ba565b6103ee6004803603606081101561059a57600080fd5b506001600160a01b038135811691602081013590911690604001356114f6565b610638600480360360408110156105d057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105fa57600080fd5b82018360208201111561060c57600080fd5b803590602001918460018302840111600160201b8311171561062d57600080fd5b5090925090506115a3565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6103ee6004803603606081101561067157600080fd5b506001600160a01b0381351690602081013590604001356118e7565b610123611a31565b610532611a37565b6038545b90565b6001600160e01b0319811660009081526036602052604090205460ff165b919050565b6001600160a01b038116600090815260356020908152604080832060018082015460028084015460038501546004860154865488516101009782161588026000190190911694909404601f81018a90048a0285018a019098528784526060999889988998899889988998929788979196909560ff8084169694840481169562010000909404169391929189918301828280156107a45780601f10610779576101008083540402835291602001916107a4565b820191906000526020600020905b81548152906001019060200180831161078757829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b6107ce33611a46565b610818576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b898814801561082657508986145b801561083157508984145b801561083c57508984145b61088d576040805162461bcd60e51b815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b60005b8a811015610c4957603560008d8d848181106108a857fe5b602090810292909201356001600160a01b03168352508101919091526040016000206003015460ff1615610923576040805162461bcd60e51b815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b60606109486109438c8c8581811061093757fe5b90506020020135611ada565b611b06565b90506040518060e001604052808281526020018a8a8581811061096757fe5b9050602002013581526020016000815260200160011515815260200188888581811061098f57fe5b905060200201351515151581526020018686858181106109ab57fe5b9050602002013515151515815260200184815250603560008f8f868181106109cf57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000019080519060200190610a1b929190612202565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560378d8d84818110610a9257fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b039590920293909301359390931692909217905550848483818110610ada57fe5b9050602002013515610afe57603854610afa90600163ffffffff611b5d16565b6038555b7f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e85818110610b2c57fe5b905060200201356001600160a01b0316838c8c87818110610b4957fe5b905060200201358b8b88818110610b5c57fe5b9050602002013515158a8a89818110610b7157fe5b90506020020135151560405180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610c01578181015183820152602001610be9565b50505050905090810190601f168015610c2e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a150600101610890565b505050505050505050505050565b6039546001600160a01b0316600090815260356020908152604080832060018082015460028084015460038501546004860154865488516101009782161588026000190190911694909404601f81018a90048a0285018a019098528784526060999889988998899889988998929788979196909560ff808416969484048116956201000090940416939192918991830182828015610d365780601f10610d0b57610100808354040283529160200191610d36565b820191906000526020600020905b815481529060010190602001808311610d1957829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606037805480602002602001604051908101604052809291908181526020018280548015610dad57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d8f575b5050505050905090565b606080603854604051908082528060200260200182016040528015610de6578160200160208202803883390190505b5090506000805b603754811015610e7d57600060378281548110610e0657fe5b60009182526020808320909101546001600160a01b0316808352603590915260409091206003015490915060ff620100009091041615610e745780848481518110610e4d57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001830192505b50600101610ded565b509091505090565b610e8e33611a46565b610ed8576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff16610f48576040805162461bcd60e51b815260206004820152601f60248201527f72656465656d61626c653a20746f6b656e206e6f7420617661696c61626c6500604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff620100009091041615158115151415610fc6576040805162461bcd60e51b815260206004820152601b60248201527f72656465656d61626c653a206e6f207374617465206368616e67650000000000604482015290519081900360640190fd5b8015610fe857603854610fe090600163ffffffff611b5d16565b603855611000565b603854610ffc90600163ffffffff611bbe16565b6038555b6001600160a01b038216600081815260356020908152604091829020600301805485151562010000810262ff0000199092169190911790915582513381529182019390935280820192909252517fcaa111d70d53608b9c8e3278c634595491de54f572a17a297dedad20f517039d9181900360600190a15050565b6001600160a01b03821660009081526035602052604081206003015460ff166110e0576040805162461bcd60e51b81526020600482015260126024820152713737b716b2bc34b9ba34b733903a37b5b2b760711b604482015290519081900360640190fd5b506001600160e01b03191660009081526036602052604090205460ff16919050565b61110b33611a46565b611155576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b60005b818110156113a057600083838381811061116e57fe5b602090810292909201356001600160a01b0316600081815260359093526040909220600301549192505060ff166111e5576040805162461bcd60e51b8152602060048201526016602482015275746f6b656e206973206e6f7420617661696c61626c6560501b604482015290519081900360640190fd5b6001600160a01b03811660009081526035602052604090206003015462010000900460ff16156112275760385461122390600163ffffffff611bbe16565b6038555b6001600160a01b03811660009081526035602052604081209061124a8282612280565b506000600182018190556002820181905560038201805462ffffff1916905560049091018190555b60375461128690600163ffffffff611bbe16565b81101561133f57816001600160a01b0316603782815481106112a457fe5b6000918252602090912001546001600160a01b0316141561133757603780546112d490600163ffffffff611bbe16565b815481106112de57fe5b600091825260209091200154603780546001600160a01b03909216918390811061130457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061133f565b600101611272565b5060378054906113539060001983016122c7565b50604080513381526001600160a01b038316602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a150600101611158565b505050565b6033546001600160a01b031690565b603a5490565b6113c333611a46565b61140d576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff1661147d576040805162461bcd60e51b815260206004820181905260248201527f6c6f616461626c653a20746f6b656e206973206e6f7420617661696c61626c65604482015290519081900360640190fd5b6001600160a01b0382166000818152603560209081526040918290206003018054851515610100810261ff00199092169190911790915582513381529182019390935280820192909252517f0e086282e8e406857ef1dce65e04a192ad8405e48484524cb2ddbf28e5d84eec9181900360600190a15050565b6114ff33611a46565b611549576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b611554838383611c1b565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008060248310156115fc576040805162461bcd60e51b815260206004820181905260248201527f6e6f7420656e6f756768206d6574686f642d656e636f64696e67206279746573604482015290519081900360640190fd5b6000611648600086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611ce5169050565b9050611654868261107b565b61169a576040805162461bcd60e51b81526020600482015260126024820152711d5b9cdd5c1c1bdc9d1959081b595d1a1bd960721b604482015290519081900360640190fd5b6001600160e01b03198116630852cd8d60e31b141561170857856116fe600487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b92509250506118df565b6001600160e01b031981166323b872dd60e01b141561180b576064841015611777576040805162461bcd60e51b815260206004820181905260248201527f6e6f7420656e6f756768206461746120666f72207472616e7366657246726f6d604482015290519081900360640190fd5b6117c1603086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d77169050565b6116fe604487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b604484101561184b5760405162461bcd60e51b81526004018080602001828103825260258152602001806123206025913960400191505060405180910390fd5b611895601086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d77169050565b6116fe602487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b935093915050565b60006118f4603a54611df9565b90506118ff33611a46565b806119125750336001600160a01b038216145b61195c576040805162461bcd60e51b815260206004820152601660248201527532b4ba3432b91037b930b1b6329037b91030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03841660009081526035602052604090206003015460ff166119c5576040805162461bcd60e51b8152602060048201526016602482015275746f6b656e206973206e6f7420617661696c61626c6560501b604482015290519081900360640190fd5b6001600160a01b03841660008181526035602090815260409182902060028101879055600401859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60345490565b6039546001600160a01b031690565b6000611a53603454611df9565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611aa857600080fd5b505afa158015611abc573d6000803e3d6000fd5b505050506040513d6020811015611ad257600080fd5b505192915050565b611ae26122eb565b6040516020810160405282815280602083015250611aff82611f1a565b8152919050565b60608082600001516040519080825280601f01601f191660200182016040528015611b38576020820181803883390190505b5090506000602082019050611b568185602001518660000151611fb3565b5092915050565b600082820183811015611bb7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082821115611c15576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b038216611ccb576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114611c74576040519150601f19603f3d011682016040523d82523d6000602084013e611c79565b606091505b5050905080611cc5576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506113a0565b6113a06001600160a01b038316848363ffffffff611ff116565b6000611cf882600463ffffffff611b5d16565b83511015611d44576040805162461bcd60e51b8152602060048201526014602482015273736c6963696e67206f7574206f662072616e676560601b604482015290519081900360640190fd5b600080611d5884602063ffffffff611b5d16565b90940151949350505050565b6000611cf882602063ffffffff611b5d16565b6000611d8a82601463ffffffff611b5d16565b83511015611dd6576040805162461bcd60e51b8152602060048201526014602482015273736c6963696e67206f7574206f662072616e676560601b604482015290519081900360640190fd5b600080611dea84602063ffffffff611b5d16565b9094015160601c949350505050565b6033546000906001600160a01b0316611e59576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015611ea557600080fd5b505afa158015611eb9573d6000803e3d6000fd5b505050506040513d6020811015611ecf57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015611aa857600080fd5b60008082611f2c5760009150506106c2565b6fffffffffffffffffffffffffffffffff8316611f5057601001600160801b830492505b67ffffffffffffffff8316611f715760080168010000000000000000830492505b63ffffffff8316611f8957600401600160201b830492505b61ffff8316611f9e5760020162010000830492505b60ff8316611faa576001015b60200392915050565b5b60208110611fd3578151835260209283019290910190601f1901611fb4565b905182516020929092036101000a6000190180199091169116179052565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113a0908490612050826001600160a01b03166121fc565b6120a1576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106120df5780518252601f1990920191602091820191016120c0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612141576040519150601f19603f3d011682016040523d82523d6000602084013e612146565b606091505b50915091508161219d576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156121f6578080602001905160208110156121b957600080fd5b50516121f65760405162461bcd60e51b815260040180806020018281038252602a815260200180612345602a913960400191505060405180910390fd5b50505050565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061224357805160ff1916838001178555612270565b82800160010185558215612270579182015b82811115612270578251825591602001919060010190612255565b5061227c929150612305565b5090565b50805460018160011615610100020316600290046000825580601f106122a657506122c4565b601f0160209004906000526020600020908101906122c49190612305565b50565b8154818355818111156113a0576000838152602090206113a0918101908301612305565b604051806040016040528060008152602001600081525090565b6106a191905b8082111561227c576000815560010161230b56fe6e6f7420656e6f756768206461746120666f72207472616e736665722f61707070726f76655361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a723158206a22a1e753419487d17667b70ef1d246ac344e30cd9e3cd178d1bec37d030b8d64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var TokenWhitelistBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034553480156200005657600080fd5b506040516200272c3803806200272c833981810160405260808110156200007c57600080fd5b5080516020820151604083015160609093015191929091620000a7846001600160e01b03620001a616565b620000bb826001600160e01b036200028616565b603a9290925550603980546001600160a01b0319166001600160a01b039092169190911790555060366020527f36aaa0d2a881446a5d284caf55fe779596f3dd15619675545d6094c8909139c2805460ff1990811660019081179092557fbdd45af1473e0dd27b6e035ccafb153373c61968247ba4b7c0e6c1c96496792f80548216831790557f877171c55a6bbc4aa0ea34a24de07dd3c5952b4a7d66df2b953f79c7955a122780548216831790556323b872dd60e01b6000527f04324ec27bf37ba85969616ff61c6c0e3939d6b141697b749b0be22765b29870805490911690911790556200034b565b600054610100900460ff1680620001cb5750620001cb6001600160e01b036200034516565b80620001da575060005460ff16155b620002175760405162461bcd60e51b815260040180806020018281038252602e815260200180620026fe602e913960400191505060405180910390fd5b600054610100900460ff1615801562000243576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200026f57603380546001600160a01b0319166001600160a01b0384161790555b801562000282576000805461ff00191690555b5050565b600054610100900460ff1680620002ab5750620002ab6001600160e01b036200034516565b80620002ba575060005460ff16155b620002f75760405162461bcd60e51b815260040180806020018281038252602e815260200180620026fe602e913960400191505060405180910390fd5b600054610100900460ff1615801562000323576000805460ff1961ff0019909116610100171660011790555b81156200026f576034829055801562000282576000805461ff00191690555050565b303b1590565b6123a3806200035b6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80636c3824ef116100a2578063996cba6811610071578063996cba6814610584578063afc72e93146105ba578063d545782e1461065b578063e2b4ce971461068d578063e9cbd8221461069557610116565b80636c3824ef146104bc5780637d73b2311461052a57806380cc0dda1461054e578063872773061461055657610116565b80633efec5e9116100e95780633efec5e9146103f0578063443dd2a4146103f857806344b049bc146104505780635d793a7d146104585780636a1744dc1461048657610116565b806313d5e8461461011b5780631d3a069f146101355780631f69565f1461017057806334c73edc14610240575b600080fd5b61012361069d565b60408051918252519081900360200190f35b61015c6004803603602081101561014b57600080fd5b50356001600160e01b0319166106a4565b604080519115158252519081900360200190f35b6101966004803603602081101561018657600080fd5b50356001600160a01b03166106c7565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b838110156101ff5781810151838201526020016101e7565b50505050905090810190601f16801561022c5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b6103ee600480360360c081101561025657600080fd5b810190602081018135600160201b81111561027057600080fd5b82018360208201111561028257600080fd5b803590602001918460208302840111600160201b831117156102a357600080fd5b919390929091602081019035600160201b8111156102c057600080fd5b8201836020820111156102d257600080fd5b803590602001918460208302840111600160201b831117156102f357600080fd5b919390929091602081019035600160201b81111561031057600080fd5b82018360208201111561032257600080fd5b803590602001918460208302840111600160201b8311171561034357600080fd5b919390929091602081019035600160201b81111561036057600080fd5b82018360208201111561037257600080fd5b803590602001918460208302840111600160201b8311171561039357600080fd5b919390929091602081019035600160201b8111156103b057600080fd5b8201836020820111156103c257600080fd5b803590602001918460208302840111600160201b831117156103e357600080fd5b9193509150356107c5565b005b610196610c57565b610400610d55565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043c578181015183820152602001610424565b505050509050019250505060405180910390f35b610400610db7565b6103ee6004803603604081101561046e57600080fd5b506001600160a01b0381351690602001351515610e85565b61015c6004803603604081101561049c57600080fd5b5080356001600160a01b031690602001356001600160e01b03191661107b565b6103ee600480360360208110156104d257600080fd5b810190602081018135600160201b8111156104ec57600080fd5b8201836020820111156104fe57600080fd5b803590602001918460208302840111600160201b8311171561051f57600080fd5b509092509050611102565b6105326113a5565b604080516001600160a01b039092168252519081900360200190f35b6101236113b4565b6103ee6004803603604081101561056c57600080fd5b506001600160a01b03813516906020013515156113ba565b6103ee6004803603606081101561059a57600080fd5b506001600160a01b038135811691602081013590911690604001356114f6565b610638600480360360408110156105d057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105fa57600080fd5b82018360208201111561060c57600080fd5b803590602001918460018302840111600160201b8311171561062d57600080fd5b5090925090506115a3565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6103ee6004803603606081101561067157600080fd5b506001600160a01b0381351690602081013590604001356118e7565b610123611a31565b610532611a37565b6038545b90565b6001600160e01b0319811660009081526036602052604090205460ff165b919050565b6001600160a01b038116600090815260356020908152604080832060018082015460028084015460038501546004860154865488516101009782161588026000190190911694909404601f81018a90048a0285018a019098528784526060999889988998899889988998929788979196909560ff8084169694840481169562010000909404169391929189918301828280156107a45780601f10610779576101008083540402835291602001916107a4565b820191906000526020600020905b81548152906001019060200180831161078757829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b6107ce33611a46565b610818576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b898814801561082657508986145b801561083157508984145b801561083c57508984145b61088d576040805162461bcd60e51b815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b60005b8a811015610c4957603560008d8d848181106108a857fe5b602090810292909201356001600160a01b03168352508101919091526040016000206003015460ff1615610923576040805162461bcd60e51b815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b60606109486109438c8c8581811061093757fe5b90506020020135611ada565b611b06565b90506040518060e001604052808281526020018a8a8581811061096757fe5b9050602002013581526020016000815260200160011515815260200188888581811061098f57fe5b905060200201351515151581526020018686858181106109ab57fe5b9050602002013515151515815260200184815250603560008f8f868181106109cf57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000019080519060200190610a1b929190612202565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560378d8d84818110610a9257fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b039590920293909301359390931692909217905550848483818110610ada57fe5b9050602002013515610afe57603854610afa90600163ffffffff611b5d16565b6038555b7f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e85818110610b2c57fe5b905060200201356001600160a01b0316838c8c87818110610b4957fe5b905060200201358b8b88818110610b5c57fe5b9050602002013515158a8a89818110610b7157fe5b90506020020135151560405180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610c01578181015183820152602001610be9565b50505050905090810190601f168015610c2e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a150600101610890565b505050505050505050505050565b6039546001600160a01b0316600090815260356020908152604080832060018082015460028084015460038501546004860154865488516101009782161588026000190190911694909404601f81018a90048a0285018a019098528784526060999889988998899889988998929788979196909560ff808416969484048116956201000090940416939192918991830182828015610d365780601f10610d0b57610100808354040283529160200191610d36565b820191906000526020600020905b815481529060010190602001808311610d1957829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606037805480602002602001604051908101604052809291908181526020018280548015610dad57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d8f575b5050505050905090565b606080603854604051908082528060200260200182016040528015610de6578160200160208202803883390190505b5090506000805b603754811015610e7d57600060378281548110610e0657fe5b60009182526020808320909101546001600160a01b0316808352603590915260409091206003015490915060ff620100009091041615610e745780848481518110610e4d57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001830192505b50600101610ded565b509091505090565b610e8e33611a46565b610ed8576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff16610f48576040805162461bcd60e51b815260206004820152601f60248201527f72656465656d61626c653a20746f6b656e206e6f7420617661696c61626c6500604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff620100009091041615158115151415610fc6576040805162461bcd60e51b815260206004820152601b60248201527f72656465656d61626c653a206e6f207374617465206368616e67650000000000604482015290519081900360640190fd5b8015610fe857603854610fe090600163ffffffff611b5d16565b603855611000565b603854610ffc90600163ffffffff611bbe16565b6038555b6001600160a01b038216600081815260356020908152604091829020600301805485151562010000810262ff0000199092169190911790915582513381529182019390935280820192909252517fcaa111d70d53608b9c8e3278c634595491de54f572a17a297dedad20f517039d9181900360600190a15050565b6001600160a01b03821660009081526035602052604081206003015460ff166110e0576040805162461bcd60e51b81526020600482015260126024820152713737b716b2bc34b9ba34b733903a37b5b2b760711b604482015290519081900360640190fd5b506001600160e01b03191660009081526036602052604090205460ff16919050565b61110b33611a46565b611155576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b60005b818110156113a057600083838381811061116e57fe5b602090810292909201356001600160a01b0316600081815260359093526040909220600301549192505060ff166111e5576040805162461bcd60e51b8152602060048201526016602482015275746f6b656e206973206e6f7420617661696c61626c6560501b604482015290519081900360640190fd5b6001600160a01b03811660009081526035602052604090206003015462010000900460ff16156112275760385461122390600163ffffffff611bbe16565b6038555b6001600160a01b03811660009081526035602052604081209061124a8282612280565b506000600182018190556002820181905560038201805462ffffff1916905560049091018190555b60375461128690600163ffffffff611bbe16565b81101561133f57816001600160a01b0316603782815481106112a457fe5b6000918252602090912001546001600160a01b0316141561133757603780546112d490600163ffffffff611bbe16565b815481106112de57fe5b600091825260209091200154603780546001600160a01b03909216918390811061130457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061133f565b600101611272565b5060378054906113539060001983016122c7565b50604080513381526001600160a01b038316602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a150600101611158565b505050565b6033546001600160a01b031690565b603a5490565b6113c333611a46565b61140d576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821660009081526035602052604090206003015460ff1661147d576040805162461bcd60e51b815260206004820181905260248201527f6c6f616461626c653a20746f6b656e206973206e6f7420617661696c61626c65604482015290519081900360640190fd5b6001600160a01b0382166000818152603560209081526040918290206003018054851515610100810261ff00199092169190911790915582513381529182019390935280820192909252517f0e086282e8e406857ef1dce65e04a192ad8405e48484524cb2ddbf28e5d84eec9181900360600190a15050565b6114ff33611a46565b611549576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71030b236b4b760511b604482015290519081900360640190fd5b611554838383611c1b565b604080516001600160a01b0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008060248310156115fc576040805162461bcd60e51b815260206004820181905260248201527f6e6f7420656e6f756768206d6574686f642d656e636f64696e67206279746573604482015290519081900360640190fd5b6000611648600086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611ce5169050565b9050611654868261107b565b61169a576040805162461bcd60e51b81526020600482015260126024820152711d5b9cdd5c1c1bdc9d1959081b595d1a1bd960721b604482015290519081900360640190fd5b6001600160e01b03198116630852cd8d60e31b141561170857856116fe600487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b92509250506118df565b6001600160e01b031981166323b872dd60e01b141561180b576064841015611777576040805162461bcd60e51b815260206004820181905260248201527f6e6f7420656e6f756768206461746120666f72207472616e7366657246726f6d604482015290519081900360640190fd5b6117c1603086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d77169050565b6116fe604487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b604484101561184b5760405162461bcd60e51b81526004018080602001828103825260258152602001806123206025913960400191505060405180910390fd5b611895601086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d77169050565b6116fe602487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff611d64169050565b935093915050565b60006118f4603a54611df9565b90506118ff33611a46565b806119125750336001600160a01b038216145b61195c576040805162461bcd60e51b815260206004820152601660248201527532b4ba3432b91037b930b1b6329037b91030b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03841660009081526035602052604090206003015460ff166119c5576040805162461bcd60e51b8152602060048201526016602482015275746f6b656e206973206e6f7420617661696c61626c6560501b604482015290519081900360640190fd5b6001600160a01b03841660008181526035602090815260409182902060028101879055600401859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60345490565b6039546001600160a01b031690565b6000611a53603454611df9565b6001600160a01b03166324d7806c836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611aa857600080fd5b505afa158015611abc573d6000803e3d6000fd5b505050506040513d6020811015611ad257600080fd5b505192915050565b611ae26122eb565b6040516020810160405282815280602083015250611aff82611f1a565b8152919050565b60608082600001516040519080825280601f01601f191660200182016040528015611b38576020820181803883390190505b5090506000602082019050611b568185602001518660000151611fb3565b5092915050565b600082820183811015611bb7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082821115611c15576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b038216611ccb576040516000906001600160a01b0385169083908381818185875af1925050503d8060008114611c74576040519150601f19603f3d011682016040523d82523d6000602084013e611c79565b606091505b5050905080611cc5576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506113a0565b6113a06001600160a01b038316848363ffffffff611ff116565b6000611cf882600463ffffffff611b5d16565b83511015611d44576040805162461bcd60e51b8152602060048201526014602482015273736c6963696e67206f7574206f662072616e676560601b604482015290519081900360640190fd5b600080611d5884602063ffffffff611b5d16565b90940151949350505050565b6000611cf882602063ffffffff611b5d16565b6000611d8a82601463ffffffff611b5d16565b83511015611dd6576040805162461bcd60e51b8152602060048201526014602482015273736c6963696e67206f7574206f662072616e676560601b604482015290519081900360640190fd5b600080611dea84602063ffffffff611b5d16565b9094015160601c949350505050565b6033546000906001600160a01b0316611e59576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b158015611ea557600080fd5b505afa158015611eb9573d6000803e3d6000fd5b505050506040513d6020811015611ecf57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b158015611aa857600080fd5b60008082611f2c5760009150506106c2565b6fffffffffffffffffffffffffffffffff8316611f5057601001600160801b830492505b67ffffffffffffffff8316611f715760080168010000000000000000830492505b63ffffffff8316611f8957600401600160201b830492505b61ffff8316611f9e5760020162010000830492505b60ff8316611faa576001015b60200392915050565b5b60208110611fd3578151835260209283019290910190601f1901611fb4565b905182516020929092036101000a6000190180199091169116179052565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113a0908490612050826001600160a01b03166121fc565b6120a1576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106120df5780518252601f1990920191602091820191016120c0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612141576040519150601f19603f3d011682016040523d82523d6000602084013e612146565b606091505b50915091508161219d576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156121f6578080602001905160208110156121b957600080fd5b50516121f65760405162461bcd60e51b815260040180806020018281038252602a815260200180612345602a913960400191505060405180910390fd5b50505050565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061224357805160ff1916838001178555612270565b82800160010185558215612270579182015b82811115612270578251825591602001919060010190612255565b5061227c929150612305565b5090565b50805460018160011615610100020316600290046000825580601f106122a657506122c4565b601f0160209004906000526020600020908101906122c49190612305565b50565b8154818355818111156113a0576000838152602090206113a0918101908301612305565b604051806040016040528060008152602001600081525090565b6106a191905b8082111561227c576000815560010161230b56fe6e6f7420656e6f756768206461746120666f72207472616e736665722f61707070726f76655361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72315820e27289697dcc49f3de6920a583d37d7d0d1f9c623bfb7f8b3915166cfebf17e164736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployTokenWhitelist deploys a new Ethereum contract, binding an instance of TokenWhitelist to it. func DeployTokenWhitelist(auth *bind.TransactOpts, backend bind.ContractBackend, _ens_ common.Address, _oracleNode_ [32]byte, _controllerNode_ [32]byte, _stablecoinAddress_ common.Address) (common.Address, *types.Transaction, *TokenWhitelist, error) { diff --git a/pkg/bindings/wallet.go b/pkg/bindings/wallet.go index 00c15f51..4852ef1b 100644 --- a/pkg/bindings/wallet.go +++ b/pkg/bindings/wallet.go @@ -31,7 +31,7 @@ var ( const WalletABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"AddedToWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_assets\",\"type\":\"address[]\"}],\"name\":\"BulkTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"CancelledWhitelistAddition\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"CancelledWhitelistRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_returndata\",\"type\":\"bytes\"}],\"name\":\"ExecutedRelayedTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_returndata\",\"type\":\"bytes\"}],\"name\":\"ExecutedTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_currentNonce\",\"type\":\"uint256\"}],\"name\":\"IncreasedRelayNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"LoadedTokenCard\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_locked\",\"type\":\"address\"}],\"name\":\"LockedOwnership\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"RemovedFromWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SetGasTopUpLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SetLoadLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SetSpendLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SubmittedGasTopUpLimitUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SubmittedLoadLimitUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SubmittedSpendLimitUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"SubmittedWhitelistAddition\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"SubmittedWhitelistRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ToppedUpGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Transferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"TransferredOwnership\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"UpdatedAvailableLimit\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"WALLET_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_transactionBatch\",\"type\":\"bytes\"}],\"name\":\"batchExecuteTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_assets\",\"type\":\"address[]\"}],\"name\":\"bulkTransfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"calculateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"cancelWhitelistAddition\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"cancelWhitelistRemoval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmGasTopUpLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmLoadLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmSpendLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"confirmWhitelistAddition\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"confirmWhitelistRemoval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"convertToEther\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"convertToStablecoin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"executeRelayedTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitControllerConfirmationRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitPending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"increaseRelayNonce\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_owner_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_transferable_\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tokenWhitelistNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_licenceNode_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_spendLimit_\",\"type\":\"uint256\"}],\"name\":\"initializeWallet\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isSetWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isTransferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hashedData\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"licenceNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitControllerConfirmationRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitPending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"loadTokenCard\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingWhitelistAddition\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingWhitelistRemoval\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"relayNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setGasTopUpLimit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setLoadLimit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setSpendLimit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"setWhitelist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitControllerConfirmationRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitPending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitGasTopUpLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitLoadLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitSpendLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"submitWhitelistAddition\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"submitWhitelistRemoval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"submittedWhitelistAddition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"submittedWhitelistRemoval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"topUpGas\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_transferable\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"whitelistArray\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelistMap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" // WalletBin is the compiled bytecode used for deploying new contracts. -var WalletBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d39660455534801561007957600080fd5b50615de6806200008a6000396000f3fe6080604052600436106103a25760003560e01c80637fd004fa116101e7578063cc0e7e561161010d578063e61c51ca116100a0578063f41c43191161006f578063f41c431914611114578063f42176481461113e578063f776f518146111b9578063f8b2cb4f146111ce576103a2565b8063e61c51ca1461105d578063eadd3cea14611087578063f36febda146110b1578063f40b51f8146110ea576103a2565b8063d251fefc116100dc578063d251fefc14610ff4578063da84b1ed1461101e578063de212bf314611033578063e2b4ce9714611048576103a2565b8063cc0e7e5614610ef2578063cccdc55614610f07578063cd7958dd14610f1c578063ce0b5bd514610fca576103a2565b8063b221f31611610185578063be40ba7911610154578063be40ba7914610e5b578063beabacc814610e70578063c4856cd914610eb3578063cbd2ac6814610ec8576103a2565b8063b221f31614610da8578063b242e53414610dd2578063b87e21ef14610e0d578063bcb8b74a14610e46576103a2565b806390e690c7116101c157806390e690c714610cb85780639b0dfd2714610ccd578063aaf1fc6214610ce2578063ab20599314610d93576103a2565b80637fd004fa14610c13578063877337b014610c8e5780638da5cb5b14610ca3576103a2565b80633a43199f116102cc5780635d2362a81161026a57806374624c551161023957806374624c5514610b8e578063747c31d614610bb85780637d73b23114610bcd5780637d7d004614610bfe576103a2565b80635d2362a814610a8e5780636137d67014610aa357806369efdfc014610b1e578063715018a614610b79576103a2565b80633f579f42116102a65780633f579f42146108b757806346efe0ed1461097d57806347b55a9d14610a4f5780635adc02ab14610a64576103a2565b80633a43199f146108375780633bfec254146108635780633c672eb71461088d576103a2565b80631efd0299116103445780632587a6a2116103135780632587a6a21461077557806326d05ab21461078a578063294f40251461079f57806332531c3c14610804576103a2565b80631efd02991461065657806320c13b0b1461066b5780632121dc751461073657806321ce918d1461074b576103a2565b8063100f23fd11610380578063100f23fd146104425780631127b57e1461046c5780631626ba7e146104f65780631aa21fba146105cb576103a2565b806301ffc9a7146103a7578063027ef3eb146103ef5780630f3a85d814610416575b600080fd5b3480156103b357600080fd5b506103db600480360360208110156103ca57600080fd5b50356001600160e01b031916611201565b604080519115158252519081900360200190f35b3480156103fb57600080fd5b5061040461121b565b60408051918252519081900360200190f35b34801561042257600080fd5b506104406004803603602081101561043957600080fd5b5035611222565b005b34801561044e57600080fd5b506104406004803603602081101561046557600080fd5b503561132e565b34801561047857600080fd5b506104816114d3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104bb5781810151838201526020016104a3565b50505050905090810190601f1680156104e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561050257600080fd5b506105ae6004803603604081101561051957600080fd5b81359190810190604081016020820135600160201b81111561053a57600080fd5b82018360208201111561054c57600080fd5b803590602001918460018302840111600160201b8311171561056d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506114f4945050505050565b604080516001600160e01b03199092168252519081900360200190f35b3480156105d757600080fd5b50610440600480360360408110156105ee57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561061857600080fd5b82018360208201111561062a57600080fd5b803590602001918460208302840111600160201b8311171561064b57600080fd5b509092509050611569565b34801561066257600080fd5b506104046116ee565b34801561067757600080fd5b506105ae6004803603604081101561068e57600080fd5b810190602081018135600160201b8111156106a857600080fd5b8201836020820111156106ba57600080fd5b803590602001918460018302840111600160201b831117156106db57600080fd5b919390929091602081019035600160201b8111156106f857600080fd5b82018360208201111561070a57600080fd5b803590602001918460018302840111600160201b8311171561072b57600080fd5b5090925090506116ff565b34801561074257600080fd5b506103db6117d4565b34801561075757600080fd5b506104406004803603602081101561076e57600080fd5b50356117e4565b34801561078157600080fd5b50610404611882565b34801561079657600080fd5b506103db611888565b3480156107ab57600080fd5b506107b4611891565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156107f05781810151838201526020016107d8565b505050509050019250505060405180910390f35b34801561081057600080fd5b506103db6004803603602081101561082757600080fd5b50356001600160a01b03166118f3565b6104406004803603604081101561084d57600080fd5b506001600160a01b038135169060200135611908565b34801561086f57600080fd5b506104406004803603602081101561088657600080fd5b5035611b46565b34801561089957600080fd5b50610440600480360360208110156108b057600080fd5b5035611c3e565b3480156108c357600080fd5b50610481600480360360608110156108da57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561090957600080fd5b82018360208201111561091b57600080fd5b803590602001918460018302840111600160201b8311171561093c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611ce4945050505050565b34801561098957600080fd5b50610440600480360360608110156109a057600080fd5b81359190810190604081016020820135600160201b8111156109c157600080fd5b8201836020820111156109d357600080fd5b803590602001918460018302840111600160201b831117156109f457600080fd5b919390929091602081019035600160201b811115610a1157600080fd5b820183602082011115610a2357600080fd5b803590602001918460018302840111600160201b83111715610a4457600080fd5b5090925090506121db565b348015610a5b57600080fd5b506107b461251c565b348015610a7057600080fd5b5061044060048036036020811015610a8757600080fd5b503561257c565b348015610a9a57600080fd5b5061040461284c565b348015610aaf57600080fd5b5061044060048036036020811015610ac657600080fd5b810190602081018135600160201b811115610ae057600080fd5b820183602082011115610af257600080fd5b803590602001918460208302840111600160201b83111715610b1357600080fd5b509092509050612858565b348015610b2a57600080fd5b50610440600480360360e0811015610b4157600080fd5b506001600160a01b03813581169160208101351515916040820135169060608101359060808101359060a08101359060c00135612a7e565b348015610b8557600080fd5b50610440612b62565b348015610b9a57600080fd5b5061044060048036036020811015610bb157600080fd5b5035612c60565b348015610bc457600080fd5b50610404612d64565b348015610bd957600080fd5b50610be2612d6a565b604080516001600160a01b039092168252519081900360200190f35b348015610c0a57600080fd5b50610404612d79565b348015610c1f57600080fd5b5061044060048036036020811015610c3657600080fd5b810190602081018135600160201b811115610c5057600080fd5b820183602082011115610c6257600080fd5b803590602001918460208302840111600160201b83111715610c8357600080fd5b509092509050612d85565b348015610c9a57600080fd5b506104046130c7565b348015610caf57600080fd5b50610be26130cd565b348015610cc457600080fd5b506104406130dc565b348015610cd957600080fd5b50610404613139565b348015610cee57600080fd5b5061044060048036036020811015610d0557600080fd5b810190602081018135600160201b811115610d1f57600080fd5b820183602082011115610d3157600080fd5b803590602001918460018302840111600160201b83111715610d5257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061313f945050505050565b348015610d9f57600080fd5b506103db613272565b348015610db457600080fd5b5061044060048036036020811015610dcb57600080fd5b503561327b565b348015610dde57600080fd5b5061044060048036036040811015610df557600080fd5b506001600160a01b038135169060200135151561336b565b348015610e1957600080fd5b5061040460048036036040811015610e3057600080fd5b506001600160a01b038135169060200135613525565b348015610e5257600080fd5b506103db6135b5565b348015610e6757600080fd5b506103db6135be565b348015610e7c57600080fd5b5061044060048036036060811015610e9357600080fd5b506001600160a01b038135811691602081013590911690604001356135cd565b348015610ebf57600080fd5b50610404613757565b348015610ed457600080fd5b5061044060048036036020811015610eeb57600080fd5b503561375d565b348015610efe57600080fd5b50610404613ada565b348015610f1357600080fd5b50610404613ae0565b348015610f2857600080fd5b5061040460048036036020811015610f3f57600080fd5b810190602081018135600160201b811115610f5957600080fd5b820183602082011115610f6b57600080fd5b803590602001918460208302840111600160201b83111715610f8c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613ae6945050505050565b348015610fd657600080fd5b5061044060048036036020811015610fed57600080fd5b5035613b40565b34801561100057600080fd5b50610be26004803603602081101561101757600080fd5b5035613ce9565b34801561102a57600080fd5b50610404613d10565b34801561103f57600080fd5b506103db613d16565b34801561105457600080fd5b50610404613d24565b34801561106957600080fd5b506104406004803603602081101561108057600080fd5b5035613d2a565b34801561109357600080fd5b50610440600480360360208110156110aa57600080fd5b5035613e74565b3480156110bd57600080fd5b50610404600480360360408110156110d457600080fd5b506001600160a01b038135169060200135613ecd565b3480156110f657600080fd5b506104406004803603602081101561110d57600080fd5b5035614080565b34801561112057600080fd5b506104406004803603602081101561113757600080fd5b50356140d9565b34801561114a57600080fd5b506104406004803603602081101561116157600080fd5b810190602081018135600160201b81111561117b57600080fd5b82018360208201111561118d57600080fd5b803590602001918460208302840111600160201b831117156111ae57600080fd5b509092509050614132565b3480156111c557600080fd5b506103db614484565b3480156111da57600080fd5b50610404600480360360208110156111f157600080fd5b50356001600160a01b031661448d565b6001600160e01b031981166301ffc9a760e01b145b919050565b603e545b90565b61122b33614498565b8061123557503330145b611279576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c680001115801561129857506706f05b59d3b200008111155b6112df576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b6112f060408263ffffffff6144ac16565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b61133733614498565b80611346575061134633614515565b611390576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a5460ff166113df576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b611442603880548060200260200160405190810160405280929190818152602001828054801561143857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161141a575b5050505050613ae6565b811461147f5760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b61148b60386000615b9b565b603a805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b60405180604001604052806005815260200164332e332e3160d81b81525081565b600080611507848463ffffffff6145a916565b905061151281614498565b611557576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b50630b135d3f60e11b90505b92915050565b61157233614498565b8061157c57503330145b6115c0576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b80611609576040805162461bcd60e51b8152602060048201526014602482015273617373657420617272617920697320656d70747960601b604482015290519081900360640190fd5b60005b8181101561166b57600061163a84848481811061162557fe5b905060200201356001600160a01b0316614697565b90506116628585858581811061164c57fe5b905060200201356001600160a01b0316836135cd565b5060010161160c565b507fd4f62f23021706247dcffea245d104ae7ddaec7f23acf3d11d7136d5de6a69ad83838360405180846001600160a01b03166001600160a01b03168152602001806020018281038252848482818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60006116fa6047614728565b905090565b6000808585604051602001808383808284376040805191909301818103601f190182528084528151602092830120601f8b01839004830282018301909452898152929650630b135d3f60e11b955061177694508693508991508890819084018382808284376000920191909152506114f492505050565b6001600160e01b031916146117c2576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b506320c13b0b60e01b95945050505050565b603554600160a01b900460ff1690565b6117ed33614498565b806117f757503330145b61183b576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b61184c603b8263ffffffff61475d16565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b60405490565b603a5460ff1681565b606060398054806020026020016040519081016040528092919081815260200182805480156118e957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118cb575b5050505050905090565b60366020526000908152604090205460ff1681565b61191133614498565b8061191b57503330145b61195f576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611968826147be565b6119ae576040805162461bcd60e51b8152602060048201526012602482015271746f6b656e206e6f74206c6f616461626c6560701b604482015290519081900360640190fd5b60006119ba8383613ecd565b90506119cd60478263ffffffff6147d816565b60006119da604d5461484e565b90506001600160a01b03841615611a8257611a056001600160a01b038516828563ffffffff61496f16565b806001600160a01b0316631b3c96b485856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611a6557600080fd5b505af1158015611a79573d6000803e3d6000fd5b50505050611afc565b806001600160a01b0316631b3c96b48486866040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001828152602001925050506000604051808303818588803b158015611ae257600080fd5b505af1158015611af6573d6000803e3d6000fd5b50505050505b604080516001600160a01b03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b611b4f33614498565b80611b5957503330145b611b9d576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b604654811115611bef576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b611c0060478263ffffffff6144ac16565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611c4733614498565b80611c5157503330145b611c95576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611ca6603b8263ffffffff6144ac16565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6060611cef33614498565b80611cf957503330145b611d3d576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff16611d6e57611d6e603b8463ffffffff6147d816565b611d80846001600160a01b0316614a87565b8015611d905750611d9084614a8d565b15611f7757600080611da28685614aa7565b6001600160a01b038216600090815260366020526040902054919350915060ff16611de8576000611dd38783613525565b9050611de6603b8263ffffffff6147d816565b505b611e016001600160a01b0387168563ffffffff614bb116565b604080516020808252818301909252606091602082018180388339019050509050600160f81b81601f81518110611e3457fe5b60200101906001600160f81b031916908160001a9053507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138787878460405180856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ecf578181015183820152602001611eb7565b50505050905090810190601f168015611efc5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611f2f578181015183820152602001611f17565b50505050905090810190601f168015611f5c5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a192506121d4915050565b60006060856001600160a01b031685856040518082805190602001908083835b60208310611fb65780518252601f199092019160209182019101611f97565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612018576040519150601f19603f3d011682016040523d82523d6000602084013e61201d565b606091505b50915091508181906120ad5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561207257818101518382015260200161205a565b50505050905090810190601f16801561209f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138686868460405180856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561213257818101518382015260200161211a565b50505050905090810190601f16801561215f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561219257818101518382015260200161217a565b50505050905090810190601f1680156121bf5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a19150505b9392505050565b6121e433614515565b612223576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b600046905060006122a3823089898960405160200180806836b7b737b634ba341d60b91b815250600901868152602001856001600160a01b03166001600160a01b031660601b8152601401848152602001838380828437808301925050509550505050505060405160208183030381529060405280519060200120614d6f565b9050631626ba7e60e01b6001600160e01b0319166122f78286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114f492505050565b6001600160e01b03191614612343576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b604c548714612385576040805162461bcd60e51b81526020600482015260096024820152687478207265706c617960b81b604482015290519081900360640190fd5b61238d614dc0565b60006060306001600160a01b03168888604051808383808284376040519201945060009350909150508083038183865af19150503d80600081146123ed576040519150601f19603f3d011682016040523d82523d6000602084013e6123f2565b606091505b50915091508181906124455760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561207257818101518382015260200161205a565b507f823dbcf2b7b0f265871963ca65ac033f6b4c71e0d82cd123d2ff23d752dc21c188888360405180806020018060200183810383528686828181526020019250808284376000838201819052601f909101601f191690920185810384528651815286516020918201939188019250908190849084905b838110156124d45781810151838201526020016124bc565b50505050905090810190601f1680156125015780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050505050505050565b606060388054806020026020016040519081016040528092919081815260200182805480156118e9576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116118cb575050505050905090565b61258533614515565b6125c4576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b603a5460ff16612613576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b6126746038805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b81146126b15760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b60005b6038548110156127985760366000603883815481106126cf57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff16612790576001603660006038848154811061270e57fe5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905560388054603791908390811061275457fe5b60009182526020808320909101548354600181018555938352912090910180546001600160a01b0319166001600160a01b039092169190911790555b6001016126b4565b507fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a33603860405180836001600160a01b03166001600160a01b0316815260200180602001828103825283818154815260200191508054801561282457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612806575b5050935050505060405180910390a161283f60386000615b9b565b50603a805460ff19169055565b60006116fa603b614728565b61286133614498565b8061286b57503330145b6128af576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff161580156128ca5750603a54610100900460ff16155b61291b576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b603a5462010000900460ff16612974576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b806129b8576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b6129c460398383615bb9565b50603a805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592612a3392859185918291850190849080828437600092019190915250613ae692505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a15050565b600054610100900460ff1680612a975750612a97614e08565b80612aa5575060005460ff16155b612ae05760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015612b0b576000805460ff1961ff0019909116610100171660011790555b612b1486614e0e565b612b1d84614edc565b612b278888614f89565b612b30826150e8565b612b386151d3565b612b41856152c4565b604d8390558015612b58576000805461ff00191690555b5050505050505050565b612b6b33614498565b612bb5576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff16612c13576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b603580546001600160a01b0319169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b612c6933614498565b80612c7357503330145b612cb7576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c6800011158015612cd657506706f05b59d3b200008111155b612d1d576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b612d2e60408263ffffffff61475d16565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b604d5490565b6033546001600160a01b031690565b60006116fa6040614728565b612d8e33614498565b80612d9857503330145b612ddc576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff16158015612df75750603a54610100900460ff16155b612e48576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015612f6457612ea1828281518110612e9457fe5b6020026020010151614498565b15612eec576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b0316828281518110612f0357fe5b60200260200101516001600160a01b03161415612f5c576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b600101612e7c565b50603a5462010000900460ff16612fbe576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b81613002576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b61300e60388484615bb9565b50603a805460ff1916600117905560408051602080850282810182019093528482527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928692869261307b92859185918291850190849080828437600092019190915250613ae692505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60455490565b6035546001600160a01b031690565b6130e533614498565b61312f576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b613137614dc0565b565b603b5490565b61314833614498565b8061315257503330145b613196576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8051602080820191906000808060605b86851015612b58576131bf86605463ffffffff61541616565b888601805160148201516034909201805193995060609190911c9650909450909250905061320460546131f8878563ffffffff61547316565b9063ffffffff61547316565b94508685111561324b576040805162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015290519081900360640190fd5b8161326157506040805160208101909152600081525b61326c848483611ce4565b506131a6565b604b5460ff1690565b61328433614498565b8061328e57503330145b6132d2576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b604654811115613324576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b61333560478263ffffffff61475d16565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b61337433614498565b6133be576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff1661341c576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6001600160a01b0382166134615760405162461bcd60e51b8152600401808060200182810382526023815260200180615d0c6023913960400191505060405180910390fd5b6035805460ff60a01b1916600160a01b83151502179055806134ba57604080516001600160a01b038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b603554604080516001600160a01b039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a150603580546001600160a01b0319166001600160a01b0392909216919091179055565b600080600080613534866154cd565b5050509350935093505080156135a9578161357f576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b61359f83613593878563ffffffff61565f16565b9063ffffffff6156b816565b9350505050611563565b50600095945050505050565b603f5460ff1690565b603a5462010000900460ff1681565b6135d633614498565b806135e057503330145b613624576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8080613661576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b6001600160a01b0384166136ac576040805162461bcd60e51b815260206004820152600d60248201526c064657374696e6174696f6e3d3609c1b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff166136fc57816001600160a01b038416156136e9576136e68484613525565b90505b6136fa603b8263ffffffff6147d816565b505b613707848484615722565b604080516001600160a01b0380871682528516602082015280820184905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a150505050565b604a5490565b61376633614515565b6137a5576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b603a54610100900460ff166137f9576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b61385a6039805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b81146138975760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b60005b603954811015613a255760366000603983815481106138b557fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615613a1d57600060366000603984815481106138f557fe5b6000918252602080832091909101546001600160a01b031683528201929092526040018120805460ff1916921515929092179091555b60375461393f90600163ffffffff61541616565b811015613a07576039828154811061395357fe5b600091825260209091200154603780546001600160a01b03909216918390811061397957fe5b6000918252602090912001546001600160a01b031614156139ff576037805460001981019081106139a657fe5b600091825260209091200154603780546001600160a01b0390921691839081106139cc57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613a07565b60010161392b565b506037805490613a1b906000198301615c1c565b505b60010161389a565b507fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b33603960405180836001600160a01b03166001600160a01b03168152602001806020018281038252838181548152602001915080548015613ab157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613a93575b5050935050505060405180910390a1613acc60396000615b9b565b50603a805461ff0019169055565b60435490565b604c5481565b60008160405160200180828051906020019060200280838360005b83811015613b19578181015183820152602001613b01565b50505050905001915050604051602081830303815290604052805190602001209050919050565b613b4933614498565b80613b585750613b5833614515565b613ba2576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a54610100900460ff16613bf6576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b613c576039805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b8114613c945760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b613ca060396000615b9b565b603a805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b60378181548110613cf657fe5b6000918252602090912001546001600160a01b0316905081565b60475490565b603a54610100900460ff1681565b60345490565b8080613d67576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b613d7033614498565b80613d7f5750613d7f33614515565b613dc9576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b613dda60408363ffffffff6147d816565b613de26130cd565b6001600160a01b03166108fc839081150290604051600060405180830381858888f19350505050158015613e1a573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e33613e456130cd565b604080516001600160a01b03938416815291909216602082015280820185905290519081900360600190a15050565b613e7d33614515565b613ebc576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b611ca6603b8263ffffffff6157ec16565b6000613ed761583c565b6001600160a01b0316836001600160a01b03161415613ef7575080611563565b816001600160a01b03841615613fbc576000806000613f15876154cd565b5050509350935093505080613f67576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81613fa2576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b613fb683613593888563ffffffff61565f16565b93505050505b6000806000613fc96158b2565b505050935093509350508061401b576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81614061576040805162461bcd60e51b81526020600482015260116024820152700737461626c65636f696e20726174653d3607c1b604482015290519081900360640190fd5b61407582613593868663ffffffff61565f16565b979650505050505050565b61408933614515565b6140c8576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b611c0060478263ffffffff6157ec16565b6140e233614515565b614121576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b6112f060408263ffffffff6157ec16565b61413b33614498565b8061414557503330145b614189576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015614298576141d5828281518110612e9457fe5b15614220576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b031682828151811061423757fe5b60200260200101516001600160a01b03161415614290576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b6001016141bd565b50603a5462010000900460ff16156142ef576040805162461bcd60e51b81526020600482015260156024820152741dda1a5d195b1a5cdd081a5b9a5d1a585b1a5e9959605a1b604482015290519081900360640190fd5b60005b828110156143e0576036600085858481811061430a57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff166143d85760016036600086868581811061434657fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550603784848381811061439b57fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b0395909202939093013593909316929092179055505b6001016142f2565b50603a805462ff0000191662010000179055604080513380825260208201838152603780549484018590527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a949293909290919060608301908490801561447057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614452575b5050935050505060405180910390a1505050565b60445460ff1690565b600061156382614697565b6035546001600160a01b0390811691161490565b600482015460ff16156144fa576040805162461bcd60e51b81526020600482015260116024820152701b1a5b5a5d08185b1c9958591e481cd95d607a1b604482015290519081900360640190fd5b6145048282615a21565b50600401805460ff19166001179055565b600061452260345461484e565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561457757600080fd5b505afa15801561458b573d6000803e3d6000fd5b505050506040513d60208110156145a157600080fd5b505192915050565b600081516041146145bc57506000611563565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156146025760009350505050611563565b8060ff16601b1415801561461a57508060ff16601c14155b1561462b5760009350505050611563565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015614682573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60006001600160a01b0382161561472157604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156146ee57600080fd5b505afa158015614702573d6000803e3d6000fd5b505050506040513d602081101561471857600080fd5b50519050611216565b5047611216565b6002810154600090614743906201518063ffffffff61547316565b42111561475257508054611216565b506001810154611216565b600482015460ff166147b6576040805162461bcd60e51b815260206004820152601960248201527f6c696d6974206861736e2774206265656e207365742079657400000000000000604482015290519081900360640190fd5b600390910155565b6000806147ca836154cd565b509098975050505050505050565b6147e182615a44565b808260010154101561482d576040805162461bcd60e51b815260206004820152601060248201526f185d985a5b18589b194f185b5bdd5b9d60821b604482015290519081900360640190fd5b6001820154614842908263ffffffff61541616565b82600101819055505050565b6033546000906001600160a01b03166148ae576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156148fa57600080fd5b505afa15801561490e573d6000803e3d6000fd5b505050506040513d602081101561492457600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561457757600080fd5b8015806149f5575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b1580156149c757600080fd5b505afa1580156149db573d6000803e3d6000fd5b505050506040513d60208110156149f157600080fd5b5051155b614a305760405162461bcd60e51b8152600401808060200182810382526036815260200180615d7c6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052614a82908490614bb1565b505050565b3b151590565b600080614a99836154cd565b509198975050505050505050565b600080614ab560455461484e565b6001600160a01b031663afc72e9385856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614b29578181015183820152602001614b11565b50505050905090810190601f168015614b565780820380516001836020036101000a031916815260200191505b509350505050604080518083038186803b158015614b7357600080fd5b505afa158015614b87573d6000803e3d6000fd5b505050506040513d6040811015614b9d57600080fd5b508051602090910151909590945092505050565b614bc3826001600160a01b0316614a87565b614c14576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310614c525780518252601f199092019160209182019101614c33565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614cb4576040519150601f19603f3d011682016040523d82523d6000602084013e614cb9565b606091505b509150915081614d10576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115614d6957808060200190516020811015614d2c57600080fd5b5051614d695760405162461bcd60e51b815260040180806020018281038252602a815260200180615d2f602a913960400191505060405180910390fd5b50505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b604c80546001019081905560408051338152602081019290925280517fab0423a75986556234aecd171c46ce7f5e45607d8070bf5230f2735b50322bff9281900390910190a1565b303b1590565b600054610100900460ff1680614e275750614e27614e08565b80614e35575060005460ff16155b614e705760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015614e9b576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821615614ec657603380546001600160a01b0319166001600160a01b0384161790555b8015614ed8576000805461ff00191690555b5050565b600054610100900460ff1680614ef55750614ef5614e08565b80614f03575060005460ff16155b614f3e5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015614f69576000805460ff1961ff0019909116610100171660011790555b8115614ec65760348290558015614ed8576000805461ff00191690555050565b600054610100900460ff1680614fa25750614fa2614e08565b80614fb0575060005460ff16155b614feb5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615016576000805460ff1961ff0019909116610100171660011790555b603580546001600160a01b0319166001600160a01b0385161760ff60a01b1916600160a01b8415158102919091179182905560ff91041661508e57604080516001600160a01b038516815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60408051600081526001600160a01b038516602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a18015614a82576000805461ff0019169055505050565b600054610100900460ff16806151015750615101614e08565b8061510f575060005460ff16155b61514a5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615175576000805460ff1961ff0019909116610100171660011790555b6040805160a08101825283815260208101849052429181018290526000606082018190526080909101819052603b849055603c849055603d91909155603e55603f805460ff191690558015614ed8576000805461ff00191690555050565b600054610100900460ff16806151ec57506151ec614e08565b806151fa575060005460ff16155b6152355760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615260576000805460ff1961ff0019909116610100171660011790555b6040805160a0810182526706f05b59d3b2000080825260208201819052428284018190526000606084018190526080909301839052928190556041556042919091556043556044805460ff1916905580156152c1576000805461ff00191690555b50565b600054610100900460ff16806152dd57506152dd614e08565b806152eb575060005460ff16155b6153265760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615351576000805460ff1961ff0019909116610100171660011790555b61535a82615a9c565b60006153646158b2565b5050505050915050600081116153b1576040805162461bcd60e51b815260206004820152600d60248201526c37379039ba30b13632b1b7b4b760991b604482015290519081900360640190fd5b6127100260468190556040805160a081018252828152602081018390524291810182905260006060820181905260809091018190526047839055604892909255604955604a55604b805460ff191690558015614ed8576000805461ff00191690555050565b60008282111561546d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156121d4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60606000806000806000806154e360455461484e565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b15801561553857600080fd5b505afa15801561554c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561557557600080fd5b8101908080516040519392919084600160201b82111561559457600080fd5b9083019060208201858111156155a957600080fd5b8251600160201b8111828201881017156155c257600080fd5b82525081516020918201929091019080838360005b838110156155ef5781810151838201526020016155d7565b50505050905090810190601f16801561561c5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b60008261566e57506000611563565b8282028284828161567b57fe5b04146121d45760405162461bcd60e51b8152600401808060200182810382526021815260200180615cbd6021913960400191505060405180910390fd5b600080821161570e576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161571957fe5b04949350505050565b6001600160a01b0382166157d2576040516000906001600160a01b0385169083908381818185875af1925050503d806000811461577b576040519150601f19603f3d011682016040523d82523d6000602084013e615780565b606091505b50509050806157cc576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b50614a82565b614a826001600160a01b038316848363ffffffff615b4916565b8082600301541461582e5760405162461bcd60e51b8152600401808060200182810382526022815260200180615c7b6022913960400191505060405180910390fd5b614ed8828360030154615a21565b600061584960455461484e565b6001600160a01b031663e9cbd8226040518163ffffffff1660e01b815260040160206040518083038186803b15801561588157600080fd5b505afa158015615895573d6000803e3d6000fd5b505050506040513d60208110156158ab57600080fd5b5051905090565b60606000806000806000806158c860455461484e565b6001600160a01b0316633efec5e96040518163ffffffff1660e01b815260040160006040518083038186803b15801561590057600080fd5b505afa158015615914573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561593d57600080fd5b8101908080516040519392919084600160201b82111561595c57600080fd5b90830190602082018581111561597157600080fd5b8251600160201b81118282018810171561598a57600080fd5b82525081516020918201929091019080838360005b838110156159b757818101518382015260200161599f565b50505050905090810190601f1680156159e45780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979f939e50919c509a5098509096509294509192505050565b615a2a82615a44565b8082556001820154811015614ed857815460018301555050565b6002810154615a5c906201518063ffffffff61547316565b4211156152c157426002820155805460018201556040517fe93bc25276d408d390778e7a8b926f2f67209c43ed540081b951fe128f0d3cd290600090a150565b600054610100900460ff1680615ab55750615ab5614e08565b80615ac3575060005460ff16155b615afe5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615b29576000805460ff1961ff0019909116610100171660011790555b8115614ec65760458290558015614ed8576000805461ff00191690555050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052614a82908490614bb1565b50805460008255906000526020600020908101906152c19190615c3c565b828054828255906000526020600020908101928215615c0c579160200282015b82811115615c0c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190615bd9565b50615c18929150615c56565b5090565b815481835581811115614a8257600083815260209020614a829181019083015b61121f91905b80821115615c185760008155600101615c42565b61121f91905b80821115615c185780546001600160a01b0319168155600101615c5c56fe636f6e6669726d65642f7375626d6974746564206c696d6974206d69736d6174636873656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646f776e65722063616e6e6f742062652073657420746f207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646e6f6e2d6d61746368696e672070656e64696e672077686974656c69737420686173685361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a72315820e7473c1d0e9d59712ab3eeb1643fd6d3b2f5404cd7decea43f8a5b80833b8a4e64736f6c63430005110032" +var WalletBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d39660455534801561007957600080fd5b50615de6806200008a6000396000f3fe6080604052600436106103a25760003560e01c80637fd004fa116101e7578063cc0e7e561161010d578063e61c51ca116100a0578063f41c43191161006f578063f41c431914611114578063f42176481461113e578063f776f518146111b9578063f8b2cb4f146111ce576103a2565b8063e61c51ca1461105d578063eadd3cea14611087578063f36febda146110b1578063f40b51f8146110ea576103a2565b8063d251fefc116100dc578063d251fefc14610ff4578063da84b1ed1461101e578063de212bf314611033578063e2b4ce9714611048576103a2565b8063cc0e7e5614610ef2578063cccdc55614610f07578063cd7958dd14610f1c578063ce0b5bd514610fca576103a2565b8063b221f31611610185578063be40ba7911610154578063be40ba7914610e5b578063beabacc814610e70578063c4856cd914610eb3578063cbd2ac6814610ec8576103a2565b8063b221f31614610da8578063b242e53414610dd2578063b87e21ef14610e0d578063bcb8b74a14610e46576103a2565b806390e690c7116101c157806390e690c714610cb85780639b0dfd2714610ccd578063aaf1fc6214610ce2578063ab20599314610d93576103a2565b80637fd004fa14610c13578063877337b014610c8e5780638da5cb5b14610ca3576103a2565b80633a43199f116102cc5780635d2362a81161026a57806374624c551161023957806374624c5514610b8e578063747c31d614610bb85780637d73b23114610bcd5780637d7d004614610bfe576103a2565b80635d2362a814610a8e5780636137d67014610aa357806369efdfc014610b1e578063715018a614610b79576103a2565b80633f579f42116102a65780633f579f42146108b757806346efe0ed1461097d57806347b55a9d14610a4f5780635adc02ab14610a64576103a2565b80633a43199f146108375780633bfec254146108635780633c672eb71461088d576103a2565b80631efd0299116103445780632587a6a2116103135780632587a6a21461077557806326d05ab21461078a578063294f40251461079f57806332531c3c14610804576103a2565b80631efd02991461065657806320c13b0b1461066b5780632121dc751461073657806321ce918d1461074b576103a2565b8063100f23fd11610380578063100f23fd146104425780631127b57e1461046c5780631626ba7e146104f65780631aa21fba146105cb576103a2565b806301ffc9a7146103a7578063027ef3eb146103ef5780630f3a85d814610416575b600080fd5b3480156103b357600080fd5b506103db600480360360208110156103ca57600080fd5b50356001600160e01b031916611201565b604080519115158252519081900360200190f35b3480156103fb57600080fd5b5061040461121b565b60408051918252519081900360200190f35b34801561042257600080fd5b506104406004803603602081101561043957600080fd5b5035611222565b005b34801561044e57600080fd5b506104406004803603602081101561046557600080fd5b503561132e565b34801561047857600080fd5b506104816114d3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104bb5781810151838201526020016104a3565b50505050905090810190601f1680156104e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561050257600080fd5b506105ae6004803603604081101561051957600080fd5b81359190810190604081016020820135600160201b81111561053a57600080fd5b82018360208201111561054c57600080fd5b803590602001918460018302840111600160201b8311171561056d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506114f4945050505050565b604080516001600160e01b03199092168252519081900360200190f35b3480156105d757600080fd5b50610440600480360360408110156105ee57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561061857600080fd5b82018360208201111561062a57600080fd5b803590602001918460208302840111600160201b8311171561064b57600080fd5b509092509050611569565b34801561066257600080fd5b506104046116ee565b34801561067757600080fd5b506105ae6004803603604081101561068e57600080fd5b810190602081018135600160201b8111156106a857600080fd5b8201836020820111156106ba57600080fd5b803590602001918460018302840111600160201b831117156106db57600080fd5b919390929091602081019035600160201b8111156106f857600080fd5b82018360208201111561070a57600080fd5b803590602001918460018302840111600160201b8311171561072b57600080fd5b5090925090506116ff565b34801561074257600080fd5b506103db6117d4565b34801561075757600080fd5b506104406004803603602081101561076e57600080fd5b50356117e4565b34801561078157600080fd5b50610404611882565b34801561079657600080fd5b506103db611888565b3480156107ab57600080fd5b506107b4611891565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156107f05781810151838201526020016107d8565b505050509050019250505060405180910390f35b34801561081057600080fd5b506103db6004803603602081101561082757600080fd5b50356001600160a01b03166118f3565b6104406004803603604081101561084d57600080fd5b506001600160a01b038135169060200135611908565b34801561086f57600080fd5b506104406004803603602081101561088657600080fd5b5035611b46565b34801561089957600080fd5b50610440600480360360208110156108b057600080fd5b5035611c3e565b3480156108c357600080fd5b50610481600480360360608110156108da57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561090957600080fd5b82018360208201111561091b57600080fd5b803590602001918460018302840111600160201b8311171561093c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611ce4945050505050565b34801561098957600080fd5b50610440600480360360608110156109a057600080fd5b81359190810190604081016020820135600160201b8111156109c157600080fd5b8201836020820111156109d357600080fd5b803590602001918460018302840111600160201b831117156109f457600080fd5b919390929091602081019035600160201b811115610a1157600080fd5b820183602082011115610a2357600080fd5b803590602001918460018302840111600160201b83111715610a4457600080fd5b5090925090506121db565b348015610a5b57600080fd5b506107b461251c565b348015610a7057600080fd5b5061044060048036036020811015610a8757600080fd5b503561257c565b348015610a9a57600080fd5b5061040461284c565b348015610aaf57600080fd5b5061044060048036036020811015610ac657600080fd5b810190602081018135600160201b811115610ae057600080fd5b820183602082011115610af257600080fd5b803590602001918460208302840111600160201b83111715610b1357600080fd5b509092509050612858565b348015610b2a57600080fd5b50610440600480360360e0811015610b4157600080fd5b506001600160a01b03813581169160208101351515916040820135169060608101359060808101359060a08101359060c00135612a7e565b348015610b8557600080fd5b50610440612b62565b348015610b9a57600080fd5b5061044060048036036020811015610bb157600080fd5b5035612c60565b348015610bc457600080fd5b50610404612d64565b348015610bd957600080fd5b50610be2612d6a565b604080516001600160a01b039092168252519081900360200190f35b348015610c0a57600080fd5b50610404612d79565b348015610c1f57600080fd5b5061044060048036036020811015610c3657600080fd5b810190602081018135600160201b811115610c5057600080fd5b820183602082011115610c6257600080fd5b803590602001918460208302840111600160201b83111715610c8357600080fd5b509092509050612d85565b348015610c9a57600080fd5b506104046130c7565b348015610caf57600080fd5b50610be26130cd565b348015610cc457600080fd5b506104406130dc565b348015610cd957600080fd5b50610404613139565b348015610cee57600080fd5b5061044060048036036020811015610d0557600080fd5b810190602081018135600160201b811115610d1f57600080fd5b820183602082011115610d3157600080fd5b803590602001918460018302840111600160201b83111715610d5257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061313f945050505050565b348015610d9f57600080fd5b506103db613272565b348015610db457600080fd5b5061044060048036036020811015610dcb57600080fd5b503561327b565b348015610dde57600080fd5b5061044060048036036040811015610df557600080fd5b506001600160a01b038135169060200135151561336b565b348015610e1957600080fd5b5061040460048036036040811015610e3057600080fd5b506001600160a01b038135169060200135613525565b348015610e5257600080fd5b506103db6135b5565b348015610e6757600080fd5b506103db6135be565b348015610e7c57600080fd5b5061044060048036036060811015610e9357600080fd5b506001600160a01b038135811691602081013590911690604001356135cd565b348015610ebf57600080fd5b50610404613757565b348015610ed457600080fd5b5061044060048036036020811015610eeb57600080fd5b503561375d565b348015610efe57600080fd5b50610404613ada565b348015610f1357600080fd5b50610404613ae0565b348015610f2857600080fd5b5061040460048036036020811015610f3f57600080fd5b810190602081018135600160201b811115610f5957600080fd5b820183602082011115610f6b57600080fd5b803590602001918460208302840111600160201b83111715610f8c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613ae6945050505050565b348015610fd657600080fd5b5061044060048036036020811015610fed57600080fd5b5035613b40565b34801561100057600080fd5b50610be26004803603602081101561101757600080fd5b5035613ce9565b34801561102a57600080fd5b50610404613d10565b34801561103f57600080fd5b506103db613d16565b34801561105457600080fd5b50610404613d24565b34801561106957600080fd5b506104406004803603602081101561108057600080fd5b5035613d2a565b34801561109357600080fd5b50610440600480360360208110156110aa57600080fd5b5035613e74565b3480156110bd57600080fd5b50610404600480360360408110156110d457600080fd5b506001600160a01b038135169060200135613ecd565b3480156110f657600080fd5b506104406004803603602081101561110d57600080fd5b5035614080565b34801561112057600080fd5b506104406004803603602081101561113757600080fd5b50356140d9565b34801561114a57600080fd5b506104406004803603602081101561116157600080fd5b810190602081018135600160201b81111561117b57600080fd5b82018360208201111561118d57600080fd5b803590602001918460208302840111600160201b831117156111ae57600080fd5b509092509050614132565b3480156111c557600080fd5b506103db614484565b3480156111da57600080fd5b50610404600480360360208110156111f157600080fd5b50356001600160a01b031661448d565b6001600160e01b031981166301ffc9a760e01b145b919050565b603e545b90565b61122b33614498565b8061123557503330145b611279576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c680001115801561129857506706f05b59d3b200008111155b6112df576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b6112f060408263ffffffff6144ac16565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b61133733614498565b80611346575061134633614515565b611390576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a5460ff166113df576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b611442603880548060200260200160405190810160405280929190818152602001828054801561143857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161141a575b5050505050613ae6565b811461147f5760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b61148b60386000615b9b565b603a805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b60405180604001604052806005815260200164332e332e3160d81b81525081565b600080611507848463ffffffff6145a916565b905061151281614498565b611557576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b50630b135d3f60e11b90505b92915050565b61157233614498565b8061157c57503330145b6115c0576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b80611609576040805162461bcd60e51b8152602060048201526014602482015273617373657420617272617920697320656d70747960601b604482015290519081900360640190fd5b60005b8181101561166b57600061163a84848481811061162557fe5b905060200201356001600160a01b0316614697565b90506116628585858581811061164c57fe5b905060200201356001600160a01b0316836135cd565b5060010161160c565b507fd4f62f23021706247dcffea245d104ae7ddaec7f23acf3d11d7136d5de6a69ad83838360405180846001600160a01b03166001600160a01b03168152602001806020018281038252848482818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60006116fa6047614728565b905090565b6000808585604051602001808383808284376040805191909301818103601f190182528084528151602092830120601f8b01839004830282018301909452898152929650630b135d3f60e11b955061177694508693508991508890819084018382808284376000920191909152506114f492505050565b6001600160e01b031916146117c2576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b506320c13b0b60e01b95945050505050565b603554600160a01b900460ff1690565b6117ed33614498565b806117f757503330145b61183b576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b61184c603b8263ffffffff61475d16565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b60405490565b603a5460ff1681565b606060398054806020026020016040519081016040528092919081815260200182805480156118e957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118cb575b5050505050905090565b60366020526000908152604090205460ff1681565b61191133614498565b8061191b57503330145b61195f576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611968826147be565b6119ae576040805162461bcd60e51b8152602060048201526012602482015271746f6b656e206e6f74206c6f616461626c6560701b604482015290519081900360640190fd5b60006119ba8383613ecd565b90506119cd60478263ffffffff6147d816565b60006119da604d5461484e565b90506001600160a01b03841615611a8257611a056001600160a01b038516828563ffffffff61496f16565b806001600160a01b0316631b3c96b485856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611a6557600080fd5b505af1158015611a79573d6000803e3d6000fd5b50505050611afc565b806001600160a01b0316631b3c96b48486866040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001828152602001925050506000604051808303818588803b158015611ae257600080fd5b505af1158015611af6573d6000803e3d6000fd5b50505050505b604080516001600160a01b03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b611b4f33614498565b80611b5957503330145b611b9d576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b604654811115611bef576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b611c0060478263ffffffff6144ac16565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611c4733614498565b80611c5157503330145b611c95576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611ca6603b8263ffffffff6144ac16565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6060611cef33614498565b80611cf957503330145b611d3d576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff16611d6e57611d6e603b8463ffffffff6147d816565b611d80846001600160a01b0316614a87565b8015611d905750611d9084614a8d565b15611f7757600080611da28685614aa7565b6001600160a01b038216600090815260366020526040902054919350915060ff16611de8576000611dd38783613525565b9050611de6603b8263ffffffff6147d816565b505b611e016001600160a01b0387168563ffffffff614bb116565b604080516020808252818301909252606091602082018180388339019050509050600160f81b81601f81518110611e3457fe5b60200101906001600160f81b031916908160001a9053507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138787878460405180856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ecf578181015183820152602001611eb7565b50505050905090810190601f168015611efc5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611f2f578181015183820152602001611f17565b50505050905090810190601f168015611f5c5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a192506121d4915050565b60006060856001600160a01b031685856040518082805190602001908083835b60208310611fb65780518252601f199092019160209182019101611f97565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612018576040519150601f19603f3d011682016040523d82523d6000602084013e61201d565b606091505b50915091508181906120ad5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561207257818101518382015260200161205a565b50505050905090810190601f16801561209f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138686868460405180856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561213257818101518382015260200161211a565b50505050905090810190601f16801561215f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561219257818101518382015260200161217a565b50505050905090810190601f1680156121bf5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a19150505b9392505050565b6121e433614515565b612223576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b600046905060006122a3823089898960405160200180806836b7b737b634ba341d60b91b815250600901868152602001856001600160a01b03166001600160a01b031660601b8152601401848152602001838380828437808301925050509550505050505060405160208183030381529060405280519060200120614d6f565b9050631626ba7e60e01b6001600160e01b0319166122f78286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114f492505050565b6001600160e01b03191614612343576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b604c548714612385576040805162461bcd60e51b81526020600482015260096024820152687478207265706c617960b81b604482015290519081900360640190fd5b61238d614dc0565b60006060306001600160a01b03168888604051808383808284376040519201945060009350909150508083038183865af19150503d80600081146123ed576040519150601f19603f3d011682016040523d82523d6000602084013e6123f2565b606091505b50915091508181906124455760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561207257818101518382015260200161205a565b507f823dbcf2b7b0f265871963ca65ac033f6b4c71e0d82cd123d2ff23d752dc21c188888360405180806020018060200183810383528686828181526020019250808284376000838201819052601f909101601f191690920185810384528651815286516020918201939188019250908190849084905b838110156124d45781810151838201526020016124bc565b50505050905090810190601f1680156125015780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050505050505050565b606060388054806020026020016040519081016040528092919081815260200182805480156118e9576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116118cb575050505050905090565b61258533614515565b6125c4576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b603a5460ff16612613576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b6126746038805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b81146126b15760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b60005b6038548110156127985760366000603883815481106126cf57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff16612790576001603660006038848154811061270e57fe5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905560388054603791908390811061275457fe5b60009182526020808320909101548354600181018555938352912090910180546001600160a01b0319166001600160a01b039092169190911790555b6001016126b4565b507fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a33603860405180836001600160a01b03166001600160a01b0316815260200180602001828103825283818154815260200191508054801561282457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612806575b5050935050505060405180910390a161283f60386000615b9b565b50603a805460ff19169055565b60006116fa603b614728565b61286133614498565b8061286b57503330145b6128af576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff161580156128ca5750603a54610100900460ff16155b61291b576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b603a5462010000900460ff16612974576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b806129b8576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b6129c460398383615bb9565b50603a805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592612a3392859185918291850190849080828437600092019190915250613ae692505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a15050565b600054610100900460ff1680612a975750612a97614e08565b80612aa5575060005460ff16155b612ae05760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015612b0b576000805460ff1961ff0019909116610100171660011790555b612b1486614e0e565b612b1d84614edc565b612b278888614f89565b612b30826150e8565b612b386151d3565b612b41856152c4565b604d8390558015612b58576000805461ff00191690555b5050505050505050565b612b6b33614498565b612bb5576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff16612c13576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b603580546001600160a01b0319169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b612c6933614498565b80612c7357503330145b612cb7576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c6800011158015612cd657506706f05b59d3b200008111155b612d1d576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b612d2e60408263ffffffff61475d16565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b604d5490565b6033546001600160a01b031690565b60006116fa6040614728565b612d8e33614498565b80612d9857503330145b612ddc576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff16158015612df75750603a54610100900460ff16155b612e48576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015612f6457612ea1828281518110612e9457fe5b6020026020010151614498565b15612eec576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b0316828281518110612f0357fe5b60200260200101516001600160a01b03161415612f5c576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b600101612e7c565b50603a5462010000900460ff16612fbe576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b81613002576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b61300e60388484615bb9565b50603a805460ff1916600117905560408051602080850282810182019093528482527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928692869261307b92859185918291850190849080828437600092019190915250613ae692505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60455490565b6035546001600160a01b031690565b6130e533614498565b61312f576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b613137614dc0565b565b603b5490565b61314833614498565b8061315257503330145b613196576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8051602080820191906000808060605b86851015612b58576131bf86605463ffffffff61541616565b888601805160148201516034909201805193995060609190911c9650909450909250905061320460546131f8878563ffffffff61547316565b9063ffffffff61547316565b94508685111561324b576040805162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015290519081900360640190fd5b8161326157506040805160208101909152600081525b61326c848483611ce4565b506131a6565b604b5460ff1690565b61328433614498565b8061328e57503330145b6132d2576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b604654811115613324576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b61333560478263ffffffff61475d16565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b61337433614498565b6133be576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff1661341c576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6001600160a01b0382166134615760405162461bcd60e51b8152600401808060200182810382526023815260200180615d0c6023913960400191505060405180910390fd5b6035805460ff60a01b1916600160a01b83151502179055806134ba57604080516001600160a01b038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b603554604080516001600160a01b039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a150603580546001600160a01b0319166001600160a01b0392909216919091179055565b600080600080613534866154cd565b5050509350935093505080156135a9578161357f576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b61359f83613593878563ffffffff61565f16565b9063ffffffff6156b816565b9350505050611563565b50600095945050505050565b603f5460ff1690565b603a5462010000900460ff1681565b6135d633614498565b806135e057503330145b613624576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8080613661576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b6001600160a01b0384166136ac576040805162461bcd60e51b815260206004820152600d60248201526c064657374696e6174696f6e3d3609c1b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff166136fc57816001600160a01b038416156136e9576136e68484613525565b90505b6136fa603b8263ffffffff6147d816565b505b613707848484615722565b604080516001600160a01b0380871682528516602082015280820184905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a150505050565b604a5490565b61376633614515565b6137a5576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b603a54610100900460ff166137f9576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b61385a6039805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b81146138975760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b60005b603954811015613a255760366000603983815481106138b557fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615613a1d57600060366000603984815481106138f557fe5b6000918252602080832091909101546001600160a01b031683528201929092526040018120805460ff1916921515929092179091555b60375461393f90600163ffffffff61541616565b811015613a07576039828154811061395357fe5b600091825260209091200154603780546001600160a01b03909216918390811061397957fe5b6000918252602090912001546001600160a01b031614156139ff576037805460001981019081106139a657fe5b600091825260209091200154603780546001600160a01b0390921691839081106139cc57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613a07565b60010161392b565b506037805490613a1b906000198301615c1c565b505b60010161389a565b507fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b33603960405180836001600160a01b03166001600160a01b03168152602001806020018281038252838181548152602001915080548015613ab157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613a93575b5050935050505060405180910390a1613acc60396000615b9b565b50603a805461ff0019169055565b60435490565b604c5481565b60008160405160200180828051906020019060200280838360005b83811015613b19578181015183820152602001613b01565b50505050905001915050604051602081830303815290604052805190602001209050919050565b613b4933614498565b80613b585750613b5833614515565b613ba2576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a54610100900460ff16613bf6576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b613c576039805480602002602001604051908101604052809291908181526020018280548015611438576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161141a575050505050613ae6565b8114613c945760405162461bcd60e51b8152600401808060200182810382526023815260200180615d596023913960400191505060405180910390fd5b613ca060396000615b9b565b603a805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b60378181548110613cf657fe5b6000918252602090912001546001600160a01b0316905081565b60475490565b603a54610100900460ff1681565b60345490565b8080613d67576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b613d7033614498565b80613d7f5750613d7f33614515565b613dc9576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b613dda60408363ffffffff6147d816565b613de26130cd565b6001600160a01b03166108fc839081150290604051600060405180830381858888f19350505050158015613e1a573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e33613e456130cd565b604080516001600160a01b03938416815291909216602082015280820185905290519081900360600190a15050565b613e7d33614515565b613ebc576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b611ca6603b8263ffffffff6157ec16565b6000613ed761583c565b6001600160a01b0316836001600160a01b03161415613ef7575080611563565b816001600160a01b03841615613fbc576000806000613f15876154cd565b5050509350935093505080613f67576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81613fa2576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b613fb683613593888563ffffffff61565f16565b93505050505b6000806000613fc96158b2565b505050935093509350508061401b576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81614061576040805162461bcd60e51b81526020600482015260116024820152700737461626c65636f696e20726174653d3607c1b604482015290519081900360640190fd5b61407582613593868663ffffffff61565f16565b979650505050505050565b61408933614515565b6140c8576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b611c0060478263ffffffff6157ec16565b6140e233614515565b614121576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c9d833981519152604482015290519081900360640190fd5b6112f060408263ffffffff6157ec16565b61413b33614498565b8061414557503330145b614189576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015614298576141d5828281518110612e9457fe5b15614220576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b031682828151811061423757fe5b60200260200101516001600160a01b03161415614290576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b6001016141bd565b50603a5462010000900460ff16156142ef576040805162461bcd60e51b81526020600482015260156024820152741dda1a5d195b1a5cdd081a5b9a5d1a585b1a5e9959605a1b604482015290519081900360640190fd5b60005b828110156143e0576036600085858481811061430a57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff166143d85760016036600086868581811061434657fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550603784848381811061439b57fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b0395909202939093013593909316929092179055505b6001016142f2565b50603a805462ff0000191662010000179055604080513380825260208201838152603780549484018590527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a949293909290919060608301908490801561447057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614452575b5050935050505060405180910390a1505050565b60445460ff1690565b600061156382614697565b6035546001600160a01b0390811691161490565b600482015460ff16156144fa576040805162461bcd60e51b81526020600482015260116024820152701b1a5b5a5d08185b1c9958591e481cd95d607a1b604482015290519081900360640190fd5b6145048282615a21565b50600401805460ff19166001179055565b600061452260345461484e565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561457757600080fd5b505afa15801561458b573d6000803e3d6000fd5b505050506040513d60208110156145a157600080fd5b505192915050565b600081516041146145bc57506000611563565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156146025760009350505050611563565b8060ff16601b1415801561461a57508060ff16601c14155b1561462b5760009350505050611563565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015614682573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60006001600160a01b0382161561472157604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156146ee57600080fd5b505afa158015614702573d6000803e3d6000fd5b505050506040513d602081101561471857600080fd5b50519050611216565b5047611216565b6002810154600090614743906201518063ffffffff61547316565b42111561475257508054611216565b506001810154611216565b600482015460ff166147b6576040805162461bcd60e51b815260206004820152601960248201527f6c696d6974206861736e2774206265656e207365742079657400000000000000604482015290519081900360640190fd5b600390910155565b6000806147ca836154cd565b509098975050505050505050565b6147e182615a44565b808260010154101561482d576040805162461bcd60e51b815260206004820152601060248201526f185d985a5b18589b194f185b5bdd5b9d60821b604482015290519081900360640190fd5b6001820154614842908263ffffffff61541616565b82600101819055505050565b6033546000906001600160a01b03166148ae576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156148fa57600080fd5b505afa15801561490e573d6000803e3d6000fd5b505050506040513d602081101561492457600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561457757600080fd5b8015806149f5575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b1580156149c757600080fd5b505afa1580156149db573d6000803e3d6000fd5b505050506040513d60208110156149f157600080fd5b5051155b614a305760405162461bcd60e51b8152600401808060200182810382526036815260200180615d7c6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052614a82908490614bb1565b505050565b3b151590565b600080614a99836154cd565b509198975050505050505050565b600080614ab560455461484e565b6001600160a01b031663afc72e9385856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614b29578181015183820152602001614b11565b50505050905090810190601f168015614b565780820380516001836020036101000a031916815260200191505b509350505050604080518083038186803b158015614b7357600080fd5b505afa158015614b87573d6000803e3d6000fd5b505050506040513d6040811015614b9d57600080fd5b508051602090910151909590945092505050565b614bc3826001600160a01b0316614a87565b614c14576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310614c525780518252601f199092019160209182019101614c33565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614cb4576040519150601f19603f3d011682016040523d82523d6000602084013e614cb9565b606091505b509150915081614d10576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115614d6957808060200190516020811015614d2c57600080fd5b5051614d695760405162461bcd60e51b815260040180806020018281038252602a815260200180615d2f602a913960400191505060405180910390fd5b50505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b604c80546001019081905560408051338152602081019290925280517fab0423a75986556234aecd171c46ce7f5e45607d8070bf5230f2735b50322bff9281900390910190a1565b303b1590565b600054610100900460ff1680614e275750614e27614e08565b80614e35575060005460ff16155b614e705760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015614e9b576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821615614ec657603380546001600160a01b0319166001600160a01b0384161790555b8015614ed8576000805461ff00191690555b5050565b600054610100900460ff1680614ef55750614ef5614e08565b80614f03575060005460ff16155b614f3e5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015614f69576000805460ff1961ff0019909116610100171660011790555b8115614ec65760348290558015614ed8576000805461ff00191690555050565b600054610100900460ff1680614fa25750614fa2614e08565b80614fb0575060005460ff16155b614feb5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615016576000805460ff1961ff0019909116610100171660011790555b603580546001600160a01b0319166001600160a01b0385161760ff60a01b1916600160a01b8415158102919091179182905560ff91041661508e57604080516001600160a01b038516815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60408051600081526001600160a01b038516602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a18015614a82576000805461ff0019169055505050565b600054610100900460ff16806151015750615101614e08565b8061510f575060005460ff16155b61514a5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615175576000805460ff1961ff0019909116610100171660011790555b6040805160a08101825283815260208101849052429181018290526000606082018190526080909101819052603b849055603c849055603d91909155603e55603f805460ff191690558015614ed8576000805461ff00191690555050565b600054610100900460ff16806151ec57506151ec614e08565b806151fa575060005460ff16155b6152355760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615260576000805460ff1961ff0019909116610100171660011790555b6040805160a0810182526706f05b59d3b2000080825260208201819052428284018190526000606084018190526080909301839052928190556041556042919091556043556044805460ff1916905580156152c1576000805461ff00191690555b50565b600054610100900460ff16806152dd57506152dd614e08565b806152eb575060005460ff16155b6153265760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615351576000805460ff1961ff0019909116610100171660011790555b61535a82615a9c565b60006153646158b2565b5050505050915050600081116153b1576040805162461bcd60e51b815260206004820152600d60248201526c37379039ba30b13632b1b7b4b760991b604482015290519081900360640190fd5b6127100260468190556040805160a081018252828152602081018390524291810182905260006060820181905260809091018190526047839055604892909255604955604a55604b805460ff191690558015614ed8576000805461ff00191690555050565b60008282111561546d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156121d4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60606000806000806000806154e360455461484e565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b15801561553857600080fd5b505afa15801561554c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561557557600080fd5b8101908080516040519392919084600160201b82111561559457600080fd5b9083019060208201858111156155a957600080fd5b8251600160201b8111828201881017156155c257600080fd5b82525081516020918201929091019080838360005b838110156155ef5781810151838201526020016155d7565b50505050905090810190601f16801561561c5780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b60008261566e57506000611563565b8282028284828161567b57fe5b04146121d45760405162461bcd60e51b8152600401808060200182810382526021815260200180615cbd6021913960400191505060405180910390fd5b600080821161570e576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161571957fe5b04949350505050565b6001600160a01b0382166157d2576040516000906001600160a01b0385169083908381818185875af1925050503d806000811461577b576040519150601f19603f3d011682016040523d82523d6000602084013e615780565b606091505b50509050806157cc576040805162461bcd60e51b81526020600482015260136024820152721cd85999551c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b50614a82565b614a826001600160a01b038316848363ffffffff615b4916565b8082600301541461582e5760405162461bcd60e51b8152600401808060200182810382526022815260200180615c7b6022913960400191505060405180910390fd5b614ed8828360030154615a21565b600061584960455461484e565b6001600160a01b031663e9cbd8226040518163ffffffff1660e01b815260040160206040518083038186803b15801561588157600080fd5b505afa158015615895573d6000803e3d6000fd5b505050506040513d60208110156158ab57600080fd5b5051905090565b60606000806000806000806158c860455461484e565b6001600160a01b0316633efec5e96040518163ffffffff1660e01b815260040160006040518083038186803b15801561590057600080fd5b505afa158015615914573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561593d57600080fd5b8101908080516040519392919084600160201b82111561595c57600080fd5b90830190602082018581111561597157600080fd5b8251600160201b81118282018810171561598a57600080fd5b82525081516020918201929091019080838360005b838110156159b757818101518382015260200161599f565b50505050905090810190601f1680156159e45780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979f939e50919c509a5098509096509294509192505050565b615a2a82615a44565b8082556001820154811015614ed857815460018301555050565b6002810154615a5c906201518063ffffffff61547316565b4211156152c157426002820155805460018201556040517fe93bc25276d408d390778e7a8b926f2f67209c43ed540081b951fe128f0d3cd290600090a150565b600054610100900460ff1680615ab55750615ab5614e08565b80615ac3575060005460ff16155b615afe5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cde602e913960400191505060405180910390fd5b600054610100900460ff16158015615b29576000805460ff1961ff0019909116610100171660011790555b8115614ec65760458290558015614ed8576000805461ff00191690555050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052614a82908490614bb1565b50805460008255906000526020600020908101906152c19190615c3c565b828054828255906000526020600020908101928215615c0c579160200282015b82811115615c0c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190615bd9565b50615c18929150615c56565b5090565b815481835581811115614a8257600083815260209020614a829181019083015b61121f91905b80821115615c185760008155600101615c42565b61121f91905b80821115615c185780546001600160a01b0319168155600101615c5c56fe636f6e6669726d65642f7375626d6974746564206c696d6974206d69736d6174636873656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646f776e65722063616e6e6f742062652073657420746f207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646e6f6e2d6d61746368696e672070656e64696e672077686974656c69737420686173685361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a72315820e0ed6c9ff5bae8abd2460bfceae05c853efa66136a3d3808cddc4ad01d73c66a64736f6c63430005110032" // DeployWallet deploys a new Ethereum contract, binding an instance of Wallet to it. func DeployWallet(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Wallet, error) { diff --git a/pkg/bindings/walletCache.go b/pkg/bindings/walletCache.go index f4e27b4c..344740d0 100644 --- a/pkg/bindings/walletCache.go +++ b/pkg/bindings/walletCache.go @@ -31,7 +31,7 @@ var ( const WalletCacheABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_walletImplementation_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_defaultSpendLimit_\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_licenceNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_tokenWhitelistNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_walletDeployerNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"addresspayable\",\"name\":\"_wallet\",\"type\":\"address\"}],\"name\":\"CachedWallet\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[],\"name\":\"cacheWallet\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"cachedWallets\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cachedWalletsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"defaultSpendLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ens\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"licenceNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"walletCachePop\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"walletDeployerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"walletImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" // WalletCacheBin is the compiled bytecode used for deploying new contracts. -var WalletCacheBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fd0ff8bd67f6e25e4e4b010df582a36a0ee9b78e49afe6cc1cff5dd5a830403306035557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d3966036557f1d0c0adbe6addd93659446311e0767a56b67d41ef38f0cb66dcf7560d28a5a386037553480156100c157600080fd5b50604051610d13380380610d13833981810160405260e08110156100e457600080fd5b508051602082015160408301516060840151608085015160a086015160c0909601519495939492939192909190610123866001600160e01b0361019a16565b610135846001600160e01b0361027116565b603880546001600160a01b03808a166001600160a01b0319928316179092556039805492891692909116919091179055603a85905582156101765760358390555b81156101825760368290555b801561018e5760378190555b5050505050505061032d565b600054610100900460ff16806101bc57506101bc6001600160e01b0361032716565b806101ca575060005460ff16155b6102055760405162461bcd60e51b815260040180806020018281038252602e815260200180610ce5602e913960400191505060405180910390fd5b600054610100900460ff16158015610230576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382161561025b57603380546001600160a01b0319166001600160a01b0384161790555b801561026d576000805461ff00191690555b5050565b600054610100900460ff168061029357506102936001600160e01b0361032716565b806102a1575060005460ff16155b6102dc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610ce5602e913960400191505060405180910390fd5b600054610100900460ff16158015610307576000805460ff1961ff0019909116610100171660011790555b811561025b576034829055801561026d576000805461ff00191690555050565b303b1590565b6109a98061033c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063877337b011610071578063877337b01461011957806387e8bed114610121578063a4570e5114610129578063a7a7d3bc14610131578063e2b4ce9714610139578063fc6cabe714610141576100b4565b80633f15457f146100b957806360dbc5de146100dd57806371b9076a146100e7578063747c31d6146101015780637d73b231146101095780638117abc114610111575b600080fd5b6100c161015e565b604080516001600160a01b039092168252519081900360200190f35b6100e561016d565b005b6100ef610323565b60408051918252519081900360200190f35b6100ef610329565b6100c161032f565b6100c161033e565b6100ef61034d565b6100ef610353565b6100c1610359565b6100ef610440565b6100ef610446565b6100c16004803603602081101561015757600080fd5b503561044c565b6039546001600160a01b031681565b600061017a603754610473565b6038546040519192506000916001600160a01b039091169061019b906105c6565b6001600160a01b03909116815260406020820181905260008183018190529051918290036080019190f0801580156101d7573d6000803e3d6000fd5b509050806001600160a01b03166369efdfc0836001603960009054906101000a90046001600160a01b031660365461020d610446565b603554603a54604080516001600160e01b031960e08b901b1681526001600160a01b03988916600482015296151560248801529490961660448601526064850192909252608484015260a483015260c4820192909252905160e480830192600092919082900301818387803b15801561028557600080fd5b505af1158015610299573d6000803e3d6000fd5b5050603b80546001810182556000919091527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d0180546001600160a01b0385166001600160a01b0319909116811790915560408051918252517f9ede7876a6b2454072ceeaff4b6b4e6eaa5381db241b850f2a46034136fc2e6e9350908190036020019150a15050565b603b5490565b60355481565b6033546001600160a01b031690565b6038546001600160a01b031681565b60365481565b60375481565b6000610366603754610473565b6001600160a01b0316336001600160a01b0316146103cb576040805162461bcd60e51b815260206004820152601d60248201527f6e6f742063616c6c65642062792077616c6c65742d6465706c6f796572000000604482015290519081900360640190fd5b603b54600111156103de576103de61016d565b603b80546000919060001981019081106103f457fe5b600091825260209091200154603b80546001600160a01b039092169250908061041957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055905090565b603a5481565b60345490565b603b818154811061045957fe5b6000918252602090912001546001600160a01b0316905081565b6033546000906001600160a01b03166104d3576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b15801561051f57600080fd5b505afa158015610533573d6000803e3d6000fd5b505050506040513d602081101561054957600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561059457600080fd5b505afa1580156105a8573d6000803e3d6000fd5b505050506040513d60208110156105be57600080fd5b505192915050565b6103a1806105d48339019056fe60806040526040516103a13803806103a18339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b5060408181527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000082525190819003601c01902060008051602061034683398151915260001990910114925061012a91505057fe5b61013c826001600160e01b036101fb16565b8051156101f4576000826001600160a01b0316826040518082805190602001908083835b6020831061017f5780518252601f199092019160209182019101610160565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101df576040519150601f19603f3d011682016040523d82523d6000602084013e6101e4565b606091505b50509050806101f257600080fd5b505b5050610261565b61020e8161025b60201b61009c1760201c565b6102495760405162461bcd60e51b815260040180806020018281038252603b815260200180610366603b913960400191505060405180910390fd5b60008051602061034683398151915255565b3b151590565b60d78061026f6000396000f3fe6080604052366046576040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a16052565b6052604e6054565b6079565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156097573d6000f35b3d6000fd5b3b15159056fea265627a7a7231582058f40811b947b3087b4bc98e2e55fad06453ab3add16603dca7f42157d4de2e364736f6c63430005110032360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a265627a7a72315820f7ecfb181330c26c796e5c39bfe79aba509b960abfdaaa4a71bb1fee37cddb7c64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var WalletCacheBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fd0ff8bd67f6e25e4e4b010df582a36a0ee9b78e49afe6cc1cff5dd5a830403306035557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d3966036557f1d0c0adbe6addd93659446311e0767a56b67d41ef38f0cb66dcf7560d28a5a386037553480156100c157600080fd5b50604051610d13380380610d13833981810160405260e08110156100e457600080fd5b508051602082015160408301516060840151608085015160a086015160c0909601519495939492939192909190610123866001600160e01b0361019a16565b610135846001600160e01b0361027116565b603880546001600160a01b03808a166001600160a01b0319928316179092556039805492891692909116919091179055603a85905582156101765760358390555b81156101825760368290555b801561018e5760378190555b5050505050505061032d565b600054610100900460ff16806101bc57506101bc6001600160e01b0361032716565b806101ca575060005460ff16155b6102055760405162461bcd60e51b815260040180806020018281038252602e815260200180610ce5602e913960400191505060405180910390fd5b600054610100900460ff16158015610230576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382161561025b57603380546001600160a01b0319166001600160a01b0384161790555b801561026d576000805461ff00191690555b5050565b600054610100900460ff168061029357506102936001600160e01b0361032716565b806102a1575060005460ff16155b6102dc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610ce5602e913960400191505060405180910390fd5b600054610100900460ff16158015610307576000805460ff1961ff0019909116610100171660011790555b811561025b576034829055801561026d576000805461ff00191690555050565b303b1590565b6109a98061033c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063877337b011610071578063877337b01461011957806387e8bed114610121578063a4570e5114610129578063a7a7d3bc14610131578063e2b4ce9714610139578063fc6cabe714610141576100b4565b80633f15457f146100b957806360dbc5de146100dd57806371b9076a146100e7578063747c31d6146101015780637d73b231146101095780638117abc114610111575b600080fd5b6100c161015e565b604080516001600160a01b039092168252519081900360200190f35b6100e561016d565b005b6100ef610323565b60408051918252519081900360200190f35b6100ef610329565b6100c161032f565b6100c161033e565b6100ef61034d565b6100ef610353565b6100c1610359565b6100ef610440565b6100ef610446565b6100c16004803603602081101561015757600080fd5b503561044c565b6039546001600160a01b031681565b600061017a603754610473565b6038546040519192506000916001600160a01b039091169061019b906105c6565b6001600160a01b03909116815260406020820181905260008183018190529051918290036080019190f0801580156101d7573d6000803e3d6000fd5b509050806001600160a01b03166369efdfc0836001603960009054906101000a90046001600160a01b031660365461020d610446565b603554603a54604080516001600160e01b031960e08b901b1681526001600160a01b03988916600482015296151560248801529490961660448601526064850192909252608484015260a483015260c4820192909252905160e480830192600092919082900301818387803b15801561028557600080fd5b505af1158015610299573d6000803e3d6000fd5b5050603b80546001810182556000919091527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d0180546001600160a01b0385166001600160a01b0319909116811790915560408051918252517f9ede7876a6b2454072ceeaff4b6b4e6eaa5381db241b850f2a46034136fc2e6e9350908190036020019150a15050565b603b5490565b60355481565b6033546001600160a01b031690565b6038546001600160a01b031681565b60365481565b60375481565b6000610366603754610473565b6001600160a01b0316336001600160a01b0316146103cb576040805162461bcd60e51b815260206004820152601d60248201527f6e6f742063616c6c65642062792077616c6c65742d6465706c6f796572000000604482015290519081900360640190fd5b603b54600111156103de576103de61016d565b603b80546000919060001981019081106103f457fe5b600091825260209091200154603b80546001600160a01b039092169250908061041957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055905090565b603a5481565b60345490565b603b818154811061045957fe5b6000918252602090912001546001600160a01b0316905081565b6033546000906001600160a01b03166104d3576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b15801561051f57600080fd5b505afa158015610533573d6000803e3d6000fd5b505050506040513d602081101561054957600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561059457600080fd5b505afa1580156105a8573d6000803e3d6000fd5b505050506040513d60208110156105be57600080fd5b505192915050565b6103a1806105d48339019056fe60806040526040516103a13803806103a18339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b5060408181527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000082525190819003601c01902060008051602061034683398151915260001990910114925061012a91505057fe5b61013c826001600160e01b036101fb16565b8051156101f4576000826001600160a01b0316826040518082805190602001908083835b6020831061017f5780518252601f199092019160209182019101610160565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101df576040519150601f19603f3d011682016040523d82523d6000602084013e6101e4565b606091505b50509050806101f257600080fd5b505b5050610261565b61020e8161025b60201b61009c1760201c565b6102495760405162461bcd60e51b815260040180806020018281038252603b815260200180610366603b913960400191505060405180910390fd5b60008051602061034683398151915255565b3b151590565b60d78061026f6000396000f3fe6080604052366046576040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a16052565b6052604e6054565b6079565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156097573d6000f35b3d6000fd5b3b15159056fea265627a7a7231582058f40811b947b3087b4bc98e2e55fad06453ab3add16603dca7f42157d4de2e364736f6c63430005110032360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a265627a7a72315820aab6b362a4d48aaec7ce3fc662a65f52e03bcfa7d3e44d9aeb645e5f7d79824c64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployWalletCache deploys a new Ethereum contract, binding an instance of WalletCache to it. func DeployWalletCache(auth *bind.TransactOpts, backend bind.ContractBackend, _walletImplementation_ common.Address, _ens_ common.Address, _defaultSpendLimit_ *big.Int, _controllerNode_ [32]byte, _licenceNode_ [32]byte, _tokenWhitelistNode_ [32]byte, _walletDeployerNode_ [32]byte) (common.Address, *types.Transaction, *WalletCache, error) { diff --git a/pkg/bindings/walletDeployer.go b/pkg/bindings/walletDeployer.go index 917ac25c..e9b1bb9c 100644 --- a/pkg/bindings/walletDeployer.go +++ b/pkg/bindings/walletDeployer.go @@ -31,7 +31,7 @@ var ( const WalletDeployerABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ens_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_controllerNode_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_walletCacheNode_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"DeployedWallet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_oldWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_paid\",\"type\":\"uint256\"}],\"name\":\"MigratedWallet\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"deployWallet\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deployedWallets\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"_oldWallet\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_initializedSpendLimit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_initializedGasTopUpLimit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_initializedLoadLimit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_initializedWhitelist\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"_spendLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasTopUpLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_loadLimit\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_whitelistedAddresses\",\"type\":\"address[]\"}],\"name\":\"migrateWallet\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"walletCacheNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" // WalletDeployerBin is the compiled bytecode used for deploying new contracts. -var WalletDeployerBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557faf553cb0d77690819f9d6fbaa04416e1fdcfa01b2a9a833c7a11e6ae0bc1be886035553480156200007a57600080fd5b5060405162000d7a38038062000d7a83398181016040526060811015620000a057600080fd5b5080516020820151604090920151909190620000c5836001600160e01b03620000ef16565b620000d9826001600160e01b03620001cf16565b8015620000e65760358190555b50505062000294565b600054610100900460ff1680620001145750620001146001600160e01b036200028e16565b8062000123575060005460ff16155b620001605760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d4c602e913960400191505060405180910390fd5b600054610100900460ff161580156200018c576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821615620001b857603380546001600160a01b0319166001600160a01b0384161790555b8015620001cb576000805461ff00191690555b5050565b600054610100900460ff1680620001f45750620001f46001600160e01b036200028e16565b8062000203575060005460ff16155b620002405760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d4c602e913960400191505060405180910390fd5b600054610100900460ff161580156200026c576000805460ff1961ff0019909116610100171660011790555b8115620001b85760348290558015620001cb576000805461ff00191690555050565b303b1590565b610aa880620002a46000396000f3fe6080604052600436106100555760003560e01c80637d73b2311461005a57806380a12c0e1461008b5780638d682ef7146100be578063a6ede3d414610180578063c8cc2fc2146101a7578063e2b4ce97146101da575b600080fd5b34801561006657600080fd5b5061006f6101ef565b604080516001600160a01b039092168252519081900360200190f35b34801561009757600080fd5b5061006f600480360360208110156100ae57600080fd5b50356001600160a01b03166101fe565b61017e60048036036101408110156100d557600080fd5b6001600160a01b03823581169260208101359091169160408201351515916060810135151591608082013515159160a081013515159160c08201359160e0810135916101008201359190810190610140810161012082013564010000000081111561013f57600080fd5b82018360208201111561015157600080fd5b8035906020019184602083028401116401000000008311171561017357600080fd5b509092509050610219565b005b34801561018c57600080fd5b506101956106f3565b60408051918252519081900360200190f35b3480156101b357600080fd5b5061017e600480360360208110156101ca57600080fd5b50356001600160a01b03166106f9565b3480156101e657600080fd5b50610195610897565b6033546001600160a01b031690565b6036602052600090815260409020546001600160a01b031681565b6102223361089d565b610273576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6001600160a01b038b811660009081526036602052604090205416156102ca5760405162461bcd60e51b8152600401808060200182810382526021815260200180610a536021913960400191505060405180910390fd5b8a6001600160a01b03168a6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561030d57600080fd5b505afa158015610321573d6000803e3d6000fd5b505050506040513d602081101561033757600080fd5b50516001600160a01b031614610385576040805162461bcd60e51b815260206004820152600e60248201526d0deeedccae440dad2e6dac2e8c6d60931b604482015290519081900360640190fd5b6000610392603554610931565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156103cc57600080fd5b505af11580156103e0573d6000803e3d6000fd5b505050506040513d60208110156103f657600080fd5b5051604080516001600160a01b038084168252808f1660208301528f168183015234606082015290519192507fc65d6ee9571556236e352151c95c79b6589474ad814195aaac7d5ab8d88ba2dd919081900360800190a16001600160a01b038c8116600090815260366020526040902080546001600160a01b03191691831691909117905589156104e057806001600160a01b0316633c672eb7876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156104c757600080fd5b505af11580156104db573d6000803e3d6000fd5b505050505b881561054557806001600160a01b0316630f3a85d8866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561052c57600080fd5b505af1158015610540573d6000803e3d6000fd5b505050505b87156105aa57806001600160a01b0316633bfec254856040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561059157600080fd5b505af11580156105a5573d6000803e3d6000fd5b505050505b861561063e57806001600160a01b031663f421764884846040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561062557600080fd5b505af1158015610639573d6000803e3d6000fd5b505050505b60408051632c90b94d60e21b81526001600160a01b038e8116600483015260006024830181905292519084169263b242e534926044808201939182900301818387803b15801561068d57600080fd5b505af11580156106a1573d6000803e3d6000fd5b5050505060003411156106e5576040516001600160a01b038d16903480156108fc02916000818181858888f193505050501580156106e3573d6000803e3d6000fd5b505b505050505050505050505050565b60355481565b6107023361089d565b610753576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6000610760603554610931565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b505050506040513d60208110156107c457600080fd5b5051604080516001600160a01b0380841682528516602082015281519293507fc02db5f4164f89d90905928336769906e16d79c4a77342126eb647ca9440d078929081900390910190a16001600160a01b0382811660008181526036602052604080822080546001600160a01b03191694861694851790558051632c90b94d60e21b81526004810193909352602483018290525163b242e53492604480820193929182900301818387803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050505050565b60345490565b60006108aa603454610931565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156108ff57600080fd5b505afa158015610913573d6000803e3d6000fd5b505050506040513d602081101561092957600080fd5b505192915050565b6033546000906001600160a01b0316610991576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d6020811015610a0757600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b1580156108ff57600080fdfe77616c6c657420616c7265616479206465706c6f79656420666f72206f776e6572a265627a7a723158204b30c66037e971e53ea87b0565c05f2f6ae573b6a8409e21d0e42da7df4dfcda64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var WalletDeployerBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557faf553cb0d77690819f9d6fbaa04416e1fdcfa01b2a9a833c7a11e6ae0bc1be886035553480156200007a57600080fd5b5060405162000d7a38038062000d7a83398181016040526060811015620000a057600080fd5b5080516020820151604090920151909190620000c5836001600160e01b03620000ef16565b620000d9826001600160e01b03620001cf16565b8015620000e65760358190555b50505062000294565b600054610100900460ff1680620001145750620001146001600160e01b036200028e16565b8062000123575060005460ff16155b620001605760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d4c602e913960400191505060405180910390fd5b600054610100900460ff161580156200018c576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821615620001b857603380546001600160a01b0319166001600160a01b0384161790555b8015620001cb576000805461ff00191690555b5050565b600054610100900460ff1680620001f45750620001f46001600160e01b036200028e16565b8062000203575060005460ff16155b620002405760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d4c602e913960400191505060405180910390fd5b600054610100900460ff161580156200026c576000805460ff1961ff0019909116610100171660011790555b8115620001b85760348290558015620001cb576000805461ff00191690555050565b303b1590565b610aa880620002a46000396000f3fe6080604052600436106100555760003560e01c80637d73b2311461005a57806380a12c0e1461008b5780638d682ef7146100be578063a6ede3d414610180578063c8cc2fc2146101a7578063e2b4ce97146101da575b600080fd5b34801561006657600080fd5b5061006f6101ef565b604080516001600160a01b039092168252519081900360200190f35b34801561009757600080fd5b5061006f600480360360208110156100ae57600080fd5b50356001600160a01b03166101fe565b61017e60048036036101408110156100d557600080fd5b6001600160a01b03823581169260208101359091169160408201351515916060810135151591608082013515159160a081013515159160c08201359160e0810135916101008201359190810190610140810161012082013564010000000081111561013f57600080fd5b82018360208201111561015157600080fd5b8035906020019184602083028401116401000000008311171561017357600080fd5b509092509050610219565b005b34801561018c57600080fd5b506101956106f3565b60408051918252519081900360200190f35b3480156101b357600080fd5b5061017e600480360360208110156101ca57600080fd5b50356001600160a01b03166106f9565b3480156101e657600080fd5b50610195610897565b6033546001600160a01b031690565b6036602052600090815260409020546001600160a01b031681565b6102223361089d565b610273576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6001600160a01b038b811660009081526036602052604090205416156102ca5760405162461bcd60e51b8152600401808060200182810382526021815260200180610a536021913960400191505060405180910390fd5b8a6001600160a01b03168a6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561030d57600080fd5b505afa158015610321573d6000803e3d6000fd5b505050506040513d602081101561033757600080fd5b50516001600160a01b031614610385576040805162461bcd60e51b815260206004820152600e60248201526d0deeedccae440dad2e6dac2e8c6d60931b604482015290519081900360640190fd5b6000610392603554610931565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156103cc57600080fd5b505af11580156103e0573d6000803e3d6000fd5b505050506040513d60208110156103f657600080fd5b5051604080516001600160a01b038084168252808f1660208301528f168183015234606082015290519192507fc65d6ee9571556236e352151c95c79b6589474ad814195aaac7d5ab8d88ba2dd919081900360800190a16001600160a01b038c8116600090815260366020526040902080546001600160a01b03191691831691909117905589156104e057806001600160a01b0316633c672eb7876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156104c757600080fd5b505af11580156104db573d6000803e3d6000fd5b505050505b881561054557806001600160a01b0316630f3a85d8866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561052c57600080fd5b505af1158015610540573d6000803e3d6000fd5b505050505b87156105aa57806001600160a01b0316633bfec254856040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561059157600080fd5b505af11580156105a5573d6000803e3d6000fd5b505050505b861561063e57806001600160a01b031663f421764884846040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561062557600080fd5b505af1158015610639573d6000803e3d6000fd5b505050505b60408051632c90b94d60e21b81526001600160a01b038e8116600483015260006024830181905292519084169263b242e534926044808201939182900301818387803b15801561068d57600080fd5b505af11580156106a1573d6000803e3d6000fd5b5050505060003411156106e5576040516001600160a01b038d16903480156108fc02916000818181858888f193505050501580156106e3573d6000803e3d6000fd5b505b505050505050505050505050565b60355481565b6107023361089d565b610753576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6000610760603554610931565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b505050506040513d60208110156107c457600080fd5b5051604080516001600160a01b0380841682528516602082015281519293507fc02db5f4164f89d90905928336769906e16d79c4a77342126eb647ca9440d078929081900390910190a16001600160a01b0382811660008181526036602052604080822080546001600160a01b03191694861694851790558051632c90b94d60e21b81526004810193909352602483018290525163b242e53492604480820193929182900301818387803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050505050565b60345490565b60006108aa603454610931565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156108ff57600080fd5b505afa158015610913573d6000803e3d6000fd5b505050506040513d602081101561092957600080fd5b505192915050565b6033546000906001600160a01b0316610991576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d6020811015610a0757600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b1580156108ff57600080fdfe77616c6c657420616c7265616479206465706c6f79656420666f72206f776e6572a265627a7a72315820bc3dd5cb2a521a87d607007eabb2f7d31a845dc80edfdf2ba4f3cfbfdcc80c5e64736f6c63430005110032436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // DeployWalletDeployer deploys a new Ethereum contract, binding an instance of WalletDeployer to it. func DeployWalletDeployer(auth *bind.TransactOpts, backend bind.ContractBackend, _ens_ common.Address, _controllerNode_ [32]byte, _walletCacheNode_ [32]byte) (common.Address, *types.Transaction, *WalletDeployer, error) { diff --git a/tools/slither/slither.db.json b/tools/slither/slither.db.json index a6666e09..a3f8275f 100644 --- a/tools/slither/slither.db.json +++ b/tools/slither/slither.db.json @@ -1 +1 @@ -[{"elements": [{"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3838, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}, {"type": "node", "name": "cacheWallet()", "source_mapping": {"start": 3972, "length": 13, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [100], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3838, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "cachedWallets.pop()", "source_mapping": {"start": 4080, "length": 19, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [104], "starting_column": 9, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3838, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "cachedWallets"}}], "description": "Reentrancy in WalletCache.walletCachePop() (../../contracts/walletCache.sol#98-107):\n\tExternal calls:\n\t- cacheWallet() (../../contracts/walletCache.sol#100)\n\tState variables written after the call(s):\n\t- WalletCache.cachedWallets (../../contracts/walletCache.sol#54) in cachedWallets.pop() (../../contracts/walletCache.sol#104)\n", "markdown": "Reentrancy in [WalletCache.walletCachePop()](../../contracts/walletCache.sol#L98-L107):\n\tExternal calls:\n\t- [cacheWallet()](../../contracts/walletCache.sol#L100)\n\tState variables written after the call(s):\n\t- [WalletCache.cachedWallets](../../contracts/walletCache.sol#L54) in [cachedWallets.pop()](../../contracts/walletCache.sol#L104)\n", "id": "9c7be75147448dbb8ff35016b74de4d723373008b40b58dde79f10ca95d518ef", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4319, "length": 83, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [112], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4412, "length": 341, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [113, 114, 115, 116, 117, 118, 119, 120, 121], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "cachedWallets.push(wallet)", "source_mapping": {"start": 4763, "length": 26, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [122], "starting_column": 9, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "cachedWallets"}}], "description": "Reentrancy in WalletCache.cacheWallet() (../../contracts/walletCache.sol#110-125):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#112)\n\t- Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#113-121)\n\tState variables written after the call(s):\n\t- WalletCache.cachedWallets (../../contracts/walletCache.sol#54) in cachedWallets.push(wallet) (../../contracts/walletCache.sol#122)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L110-L125):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L112)\n\t- [Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L113-L121)\n\tState variables written after the call(s):\n\t- [WalletCache.cachedWallets](../../contracts/walletCache.sol#L54) in [cachedWallets.push(wallet)](../../contracts/walletCache.sol#L122)\n", "id": "6cf52a800fc4bfc6a33370f09629daea34bf2d99ffb1860e952981e0ae4c8e89", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4319, "length": 83, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [112], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4412, "length": 341, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [113, 114, 115, 116, 117, 118, 119, 120, 121], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in WalletCache.cacheWallet() (../../contracts/walletCache.sol#110-125):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#112)\n\t- Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#113-121)\n\tEvent emitted after the call(s):\n\t- CachedWallet(wallet) (../../contracts/walletCache.sol#124)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L110-L125):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L112)\n\t- [Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L113-L121)\n\tEvent emitted after the call(s):\n\t- [CachedWallet(wallet)](../../contracts/walletCache.sol#L124)\n", "id": "340e6fa5aa30eb289807c22a0368a1dceeea03796ec52fcbb5f81ecd185efa42", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2911, "length": 1524, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 3505, "length": 84, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [82], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2911, "length": 1524, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "deployedWallets[_owner] = wallet", "source_mapping": {"start": 3668, "length": 32, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [85], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2911, "length": 1524, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "deployedWallets"}}], "description": "Reentrancy in WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[]) (../../contracts/walletDeployer.sol#67-107):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#82)\n\tState variables written after the call(s):\n\t- WalletDeployer.deployedWallets (../../contracts/walletDeployer.sol#37) in deployedWallets[_owner] = wallet (../../contracts/walletDeployer.sol#85)\n", "markdown": "Reentrancy in [WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])](../../contracts/walletDeployer.sol#L67-L107):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L82)\n\tState variables written after the call(s):\n\t- [WalletDeployer.deployedWallets](../../contracts/walletDeployer.sol#L37) in [deployedWallets[_owner] = wallet](../../contracts/walletDeployer.sol#L85)\n", "id": "c9cc5c90886e5d43e0954b7aed44a9204cd59053d3e6ab4f4811d66b300047f9", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "deployWallet", "source_mapping": {"start": 2094, "length": 409, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 2174, "length": 84, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [53], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2094, "length": 409, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "deployedWallets[_owner] = wallet", "source_mapping": {"start": 2314, "length": 32, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [56], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2094, "length": 409, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "deployedWallets"}}], "description": "Reentrancy in WalletDeployer.deployWallet(address) (../../contracts/walletDeployer.sol#52-60):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#53)\n\tState variables written after the call(s):\n\t- WalletDeployer.deployedWallets (../../contracts/walletDeployer.sol#37) in deployedWallets[_owner] = wallet (../../contracts/walletDeployer.sol#56)\n", "markdown": "Reentrancy in [WalletDeployer.deployWallet(address)](../../contracts/walletDeployer.sol#L52-L60):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L53)\n\tState variables written after the call(s):\n\t- [WalletDeployer.deployedWallets](../../contracts/walletDeployer.sol#L37) in [deployedWallets[_owner] = wallet](../../contracts/walletDeployer.sol#L56)\n", "id": "51e7b14ee9e777e7d9aceb503d7e4fb463d228f819cdb01de7243c0e900bd1d1", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "deployWallet", "source_mapping": {"start": 2094, "length": 409, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 2174, "length": 84, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [53], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2094, "length": 409, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in WalletDeployer.deployWallet(address) (../../contracts/walletDeployer.sol#52-60):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#53)\n\tEvent emitted after the call(s):\n\t- DeployedWallet(wallet,_owner) (../../contracts/walletDeployer.sol#54)\n", "markdown": "Reentrancy in [WalletDeployer.deployWallet(address)](../../contracts/walletDeployer.sol#L52-L60):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L53)\n\tEvent emitted after the call(s):\n\t- [DeployedWallet(wallet,_owner)](../../contracts/walletDeployer.sol#L54)\n", "id": "1f2a19c730b57366cf03fa55fac9a4a4507666d304922ee6908d90b860910bc7", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2911, "length": 1524, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 3505, "length": 84, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [82], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2911, "length": 1524, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[]) (../../contracts/walletDeployer.sol#67-107):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#82)\n\tEvent emitted after the call(s):\n\t- MigratedWallet(wallet,_oldWallet,_owner,msg.value) (../../contracts/walletDeployer.sol#83)\n", "markdown": "Reentrancy in [WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])](../../contracts/walletDeployer.sol#L67-L107):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L82)\n\tEvent emitted after the call(s):\n\t- [MigratedWallet(wallet,_oldWallet,_owner,msg.value)](../../contracts/walletDeployer.sol#L83)\n", "id": "27487f82407f9c471ccfad236aefd4fdee287f7e67460c6a09735532f3797e50", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "walletCachePop", "source_mapping": {"start": 4320, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [106, 107, 108, 109, 110, 111, 112, 113, 114, 115], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}, {"type": "node", "name": "cacheWallet()", "source_mapping": {"start": 4454, "length": 13, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [108], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 4320, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [106, 107, 108, 109, 110, 111, 112, 113, 114, 115], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "cachedWallets.pop()", "source_mapping": {"start": 4562, "length": 19, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [112], "starting_column": 9, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 4320, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [106, 107, 108, 109, 110, 111, 112, 113, 114, 115], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "cachedWallets"}}], "description": "Reentrancy in WalletCache.walletCachePop() (../../contracts/walletCache.sol#106-115):\n\tExternal calls:\n\t- cacheWallet() (../../contracts/walletCache.sol#108)\n\tState variables written after the call(s):\n\t- WalletCache.cachedWallets (../../contracts/walletCache.sol#55) in cachedWallets.pop() (../../contracts/walletCache.sol#112)\n", "markdown": "Reentrancy in [WalletCache.walletCachePop()](../../contracts/walletCache.sol#L106-L115):\n\tExternal calls:\n\t- [cacheWallet()](../../contracts/walletCache.sol#L108)\n\tState variables written after the call(s):\n\t- [WalletCache.cachedWallets](../../contracts/walletCache.sol#L55) in [cachedWallets.pop()](../../contracts/walletCache.sol#L112)\n", "id": "fecd01393f63606141144b81e95841080ef9ec784c6a7665ac131c45668eafaf", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4801, "length": 83, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [120], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4894, "length": 341, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [121, 122, 123, 124, 125, 126, 127, 128, 129], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "cachedWallets.push(wallet)", "source_mapping": {"start": 5245, "length": 26, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [130], "starting_column": 9, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "cachedWallets"}}], "description": "Reentrancy in WalletCache.cacheWallet() (../../contracts/walletCache.sol#118-133):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#120)\n\t- Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#121-129)\n\tState variables written after the call(s):\n\t- WalletCache.cachedWallets (../../contracts/walletCache.sol#55) in cachedWallets.push(wallet) (../../contracts/walletCache.sol#130)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L118-L133):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L120)\n\t- [Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L121-L129)\n\tState variables written after the call(s):\n\t- [WalletCache.cachedWallets](../../contracts/walletCache.sol#L55) in [cachedWallets.push(wallet)](../../contracts/walletCache.sol#L130)\n", "id": "d5f7b99dcb5b4e54edb987f0658898944bcccecbb530aec08382ac9885101ad4", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4801, "length": 83, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [120], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4894, "length": 341, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [121, 122, 123, 124, 125, 126, 127, 128, 129], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in WalletCache.cacheWallet() (../../contracts/walletCache.sol#118-133):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#120)\n\t- Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#121-129)\n\tEvent emitted after the call(s):\n\t- CachedWallet(wallet) (../../contracts/walletCache.sol#132)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L118-L133):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L120)\n\t- [Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L121-L129)\n\tEvent emitted after the call(s):\n\t- [CachedWallet(wallet)](../../contracts/walletCache.sol#L132)\n", "id": "a07975382e172b7388b74354e94975e46685aa84b3c61e6a848891baf4310cf9", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6735, "length": 38, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [128], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (decMinted))", "source_mapping": {"start": 7622, "length": 32, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [146], "starting_column": 13, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#49-163) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#128)\n\t-mint = mint.mul(10 ** (decMinted)) (../../contracts/internals/parseIntScientific.sol#146)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L49-L163) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L128)\n\t-[mint = mint.mul(10 ** (decMinted))](../../contracts/internals/parseIntScientific.sol#L146)\n", "id": "7f2a8a8833de43e4bde53359583557ee2e1dd2c6c047aa209df3b9574e4a0801", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6735, "length": 38, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [128], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (_magnitudeMult - decMinted))", "source_mapping": {"start": 7866, "length": 49, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [150], "starting_column": 13, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#49-163) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#128)\n\t-mint = mint.mul(10 ** (_magnitudeMult - decMinted)) (../../contracts/internals/parseIntScientific.sol#150)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L49-L163) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L128)\n\t-[mint = mint.mul(10 ** (_magnitudeMult - decMinted))](../../contracts/internals/parseIntScientific.sol#L150)\n", "id": "a82b7c9693de1c9605223cd9c9b544a7e3cafa00cc860a652f4702656c06516e", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6735, "length": 38, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [128], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (_magnitudeMult))", "source_mapping": {"start": 8375, "length": 37, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [159], "starting_column": 13, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#49-163) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#128)\n\t-mint = mint.mul(10 ** (_magnitudeMult)) (../../contracts/internals/parseIntScientific.sol#159)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L49-L163) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L128)\n\t-[mint = mint.mul(10 ** (_magnitudeMult))](../../contracts/internals/parseIntScientific.sol#L159)\n", "id": "298bd6ddafc691cf4f164caea46b84f7d806fa4aa46de23a15f20ba149f569d4", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mintDec /= 10 ** (decMinted)", "source_mapping": {"start": 8192, "length": 26, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [156], "starting_column": 13, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mintDec = mintDec.mul(10)", "source_mapping": {"start": 3689, "length": 25, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [68], "starting_column": 21, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#49-163) performs a multiplication on the result of a division:\n\t-mintDec /= 10 ** (decMinted) (../../contracts/internals/parseIntScientific.sol#156)\n\t-mintDec = mintDec.mul(10) (../../contracts/internals/parseIntScientific.sol#68)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L49-L163) performs a multiplication on the result of a division:\n\t-[mintDec /= 10 ** (decMinted)](../../contracts/internals/parseIntScientific.sol#L156)\n\t-[mintDec = mintDec.mul(10)](../../contracts/internals/parseIntScientific.sol#L68)\n", "id": "470f40a7333d285b7694adabe7173b9c0362522e9144fa61ef4a6eaa2daf9e01", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6735, "length": 38, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [128], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10)", "source_mapping": {"start": 4059, "length": 19, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [75], "starting_column": 21, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#49-163) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#128)\n\t-mint = mint.mul(10) (../../contracts/internals/parseIntScientific.sol#75)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L49-L163) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L128)\n\t-[mint = mint.mul(10)](../../contracts/internals/parseIntScientific.sol#L75)\n", "id": "f8b2ecf16caf3e893d94cb419fc0ab2f8ea68dd9192e609cb5a3db13bc7a8e17", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}, {"type": "node", "name": "oraclize_setCustomGasPrice(10000000000)", "source_mapping": {"start": 3703, "length": 39, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [82], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "oraclize_setProof(proofType_Native)", "source_mapping": {"start": 3752, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [83], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "oraclize_setProof(proofType_Native)", "source_mapping": {"start": 3752, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [83], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "oraclize"}}, {"type": "node", "name": "oraclize_setProof(proofType_Native)", "source_mapping": {"start": 3752, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [83], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "OAR"}}], "description": "Reentrancy in Oracle.constructor(address,address,bytes32,bytes32) (../../contracts/oracle.sol#76-84):\n\tExternal calls:\n\t- oraclize_setCustomGasPrice(10000000000) (../../contracts/oracle.sol#82)\n\t- oraclize_setProof(proofType_Native) (../../contracts/oracle.sol#83)\n\tState variables written after the call(s):\n\t- usingOraclize.OAR (../../contracts/externals/oraclizeAPI_0.5.sol#277) in oraclize_setProof(proofType_Native) (../../contracts/oracle.sol#83)\n\t- usingOraclize.oraclize (../../contracts/externals/oraclizeAPI_0.5.sol#276) in oraclize_setProof(proofType_Native) (../../contracts/oracle.sol#83)\n", "markdown": "Reentrancy in [Oracle.constructor(address,address,bytes32,bytes32)](../../contracts/oracle.sol#L76-L84):\n\tExternal calls:\n\t- [oraclize_setCustomGasPrice(10000000000)](../../contracts/oracle.sol#L82)\n\t- [oraclize_setProof(proofType_Native)](../../contracts/oracle.sol#L83)\n\tState variables written after the call(s):\n\t- [usingOraclize.OAR](../../contracts/externals/oraclizeAPI_0.5.sol#L277) in [oraclize_setProof(proofType_Native)](../../contracts/oracle.sol#L83)\n\t- [usingOraclize.oraclize](../../contracts/externals/oraclizeAPI_0.5.sol#L276) in [oraclize_setProof(proofType_Native)](../../contracts/oracle.sol#L83)\n", "id": "145e9d5c8d484249fb333dd150e5769fb409316350e7126dbd818f67cd953b4c", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseRate", "source_mapping": {"start": 6977, "length": 877, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_parseRate(string)"}}, {"type": "node", "name": "body.split(:.toSlice())", "source_mapping": {"start": 7510, "length": 25, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [162], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseRate", "source_mapping": {"start": 6977, "length": 877, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_parseRate(string)"}}}}], "description": "Oracle._parseRate(string) (../../contracts/oracle.sol#152-169) ignores return value by body.split(:.toSlice()) (../../contracts/oracle.sol#162)\n", "markdown": "[Oracle._parseRate(string)](../../contracts/oracle.sol#L152-L169) ignores return value by [body.split(:.toSlice())](../../contracts/oracle.sol#L162)\n", "id": "4f4dde8e09b7fab422ef8516964bd57199df1959fa65c0853e5a163c6a292488", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseRate", "source_mapping": {"start": 6977, "length": 877, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_parseRate(string)"}}, {"type": "node", "name": "body.until(}.toSlice())", "source_mapping": {"start": 7663, "length": 25, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [165], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseRate", "source_mapping": {"start": 6977, "length": 877, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_parseRate(string)"}}}}], "description": "Oracle._parseRate(string) (../../contracts/oracle.sol#152-169) ignores return value by body.until(}.toSlice()) (../../contracts/oracle.sol#165)\n", "markdown": "[Oracle._parseRate(string)](../../contracts/oracle.sol#L152-L169) ignores return value by [body.until(}.toSlice())](../../contracts/oracle.sol#L165)\n", "id": "ecd08aeb7dd4faaa07dc115004766b21c0507249bce3660a1f56e4a94f5b272a", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "__callback", "source_mapping": {"start": 5678, "length": 1151, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "__callback(bytes32,string,bytes)"}}, {"type": "node", "name": "require(bool,string)(msg.sender == oraclize_cbAddress(),sender is not oraclize)", "source_mapping": {"start": 5838, "length": 69, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [126], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "__callback", "source_mapping": {"start": 5678, "length": 1151, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "__callback(bytes32,string,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "delete _queryToToken[_queryID]", "source_mapping": {"start": 6714, "length": 30, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [144], "starting_column": 13, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "__callback", "source_mapping": {"start": 5678, "length": 1151, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "__callback(bytes32,string,bytes)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_queryToToken"}}], "description": "Reentrancy in Oracle.__callback(bytes32,string,bytes) (../../contracts/oracle.sol#124-148):\n\tExternal calls:\n\t- require(bool,string)(msg.sender == oraclize_cbAddress(),sender is not oraclize) (../../contracts/oracle.sol#126)\n\tState variables written after the call(s):\n\t- Oracle._queryToToken (../../contracts/oracle.sol#69) in delete _queryToToken[_queryID] (../../contracts/oracle.sol#144)\n", "markdown": "Reentrancy in [Oracle.__callback(bytes32,string,bytes)](../../contracts/oracle.sol#L124-L148):\n\tExternal calls:\n\t- [require(bool,string)(msg.sender == oraclize_cbAddress(),sender is not oraclize)](../../contracts/oracle.sol#L126)\n\tState variables written after the call(s):\n\t- [Oracle._queryToToken](../../contracts/oracle.sol#L69) in [delete _queryToToken[_queryID]](../../contracts/oracle.sol#L144)\n", "id": "9df9180e83e9fb4f4f4f4624d0e360f81c29ace8d43a3ed948cbcb3d582da0ee", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}, {"type": "node", "name": "queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit)", "source_mapping": {"start": 9309, "length": 101, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [195], "starting_column": 17, "ending_column": 118}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_queryToToken[queryID] = tokenAddresses[i]", "source_mapping": {"start": 9510, "length": 42, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [197], "starting_column": 17, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_queryToToken"}}], "description": "Reentrancy in Oracle._updateTokenRates(uint256) (../../contracts/oracle.sol#173-202):\n\tExternal calls:\n\t- queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit) (../../contracts/oracle.sol#195)\n\tState variables written after the call(s):\n\t- Oracle._queryToToken (../../contracts/oracle.sol#69) in _queryToToken[queryID] = tokenAddresses[i] (../../contracts/oracle.sol#197)\n", "markdown": "Reentrancy in [Oracle._updateTokenRates(uint256)](../../contracts/oracle.sol#L173-L202):\n\tExternal calls:\n\t- [queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit)](../../contracts/oracle.sol#L195)\n\tState variables written after the call(s):\n\t- [Oracle._queryToToken](../../contracts/oracle.sol#L69) in [_queryToToken[queryID] = tokenAddresses[i]](../../contracts/oracle.sol#L197)\n", "id": "13e8648d299dd6174d83a44e5f6780c95921ee5bdcfd52abd4e828e3d4fb6b60", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}, {"type": "node", "name": "queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit)", "source_mapping": {"start": 11357, "length": 104, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [229], "starting_column": 17, "ending_column": 121}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_queryToToken[queryID] = _tokenList[i]", "source_mapping": {"start": 11561, "length": 38, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [231], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_queryToToken"}}], "description": "Reentrancy in Oracle._updateTokenRatesList(uint256,address[]) (../../contracts/oracle.sol#207-236):\n\tExternal calls:\n\t- queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit) (../../contracts/oracle.sol#229)\n\tState variables written after the call(s):\n\t- Oracle._queryToToken (../../contracts/oracle.sol#69) in _queryToToken[queryID] = _tokenList[i] (../../contracts/oracle.sol#231)\n", "markdown": "Reentrancy in [Oracle._updateTokenRatesList(uint256,address[])](../../contracts/oracle.sol#L207-L236):\n\tExternal calls:\n\t- [queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit)](../../contracts/oracle.sol#L229)\n\tState variables written after the call(s):\n\t- [Oracle._queryToToken](../../contracts/oracle.sol#L69) in [_queryToToken[queryID] = _tokenList[i]](../../contracts/oracle.sol#L231)\n", "id": "da706edd3bac0e3f63e079f67abca627c16ffa165e4917efb4aa123a306ae1e0", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}, {"type": "node", "name": "oraclize_setCustomGasPrice(10000000000)", "source_mapping": {"start": 3703, "length": 39, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [82], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "oraclize_setProof(proofType_Native)", "source_mapping": {"start": 3752, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [83], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "oraclize_setProof(proofType_Native)", "source_mapping": {"start": 3752, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [83], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "oraclize_network_name"}}], "description": "Reentrancy in Oracle.constructor(address,address,bytes32,bytes32) (../../contracts/oracle.sol#76-84):\n\tExternal calls:\n\t- oraclize_setCustomGasPrice(10000000000) (../../contracts/oracle.sol#82)\n\t- oraclize_setProof(proofType_Native) (../../contracts/oracle.sol#83)\n\tState variables written after the call(s):\n\t- usingOraclize.oraclize_network_name (../../contracts/externals/oraclizeAPI_0.5.sol#290) in oraclize_setProof(proofType_Native) (../../contracts/oracle.sol#83)\n", "markdown": "Reentrancy in [Oracle.constructor(address,address,bytes32,bytes32)](../../contracts/oracle.sol#L76-L84):\n\tExternal calls:\n\t- [oraclize_setCustomGasPrice(10000000000)](../../contracts/oracle.sol#L82)\n\t- [oraclize_setProof(proofType_Native)](../../contracts/oracle.sol#L83)\n\tState variables written after the call(s):\n\t- [usingOraclize.oraclize_network_name](../../contracts/externals/oraclizeAPI_0.5.sol#L290) in [oraclize_setProof(proofType_Native)](../../contracts/oracle.sol#L83)\n", "id": "cc09cdd29bfde97f27d2a5d4f189b6763e920a5c3f9b9b64dcd985fd076b1c29", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}, {"type": "node", "name": "oraclize_getPrice(URL) * tokenAddresses.length > address(this).balance", "source_mapping": {"start": 8427, "length": 72, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [180], "starting_column": 20, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle._updateTokenRates(uint256) (../../contracts/oracle.sol#173-202):\n\tExternal calls:\n\t- oraclize_getPrice(URL) * tokenAddresses.length > address(this).balance (../../contracts/oracle.sol#180)\n\tEvent emitted after the call(s):\n\t- FailedUpdateRequest(insufficient balance) (../../contracts/oracle.sol#182)\n", "markdown": "Reentrancy in [Oracle._updateTokenRates(uint256)](../../contracts/oracle.sol#L173-L202):\n\tExternal calls:\n\t- [oraclize_getPrice(URL) * tokenAddresses.length > address(this).balance](../../contracts/oracle.sol#L180)\n\tEvent emitted after the call(s):\n\t- [FailedUpdateRequest(insufficient balance)](../../contracts/oracle.sol#L182)\n", "id": "b1b260294a9174a034f41084a4052fd8534e81b54c6f21119a3dbff8d7863521", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}, {"type": "node", "name": "queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit)", "source_mapping": {"start": 9309, "length": 101, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [195], "starting_column": 17, "ending_column": 118}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle._updateTokenRates(uint256) (../../contracts/oracle.sol#173-202):\n\tExternal calls:\n\t- queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit) (../../contracts/oracle.sol#195)\n\tEvent emitted after the call(s):\n\t- RequestedUpdate(sym.toString(),queryID) (../../contracts/oracle.sol#199)\n", "markdown": "Reentrancy in [Oracle._updateTokenRates(uint256)](../../contracts/oracle.sol#L173-L202):\n\tExternal calls:\n\t- [queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit)](../../contracts/oracle.sol#L195)\n\tEvent emitted after the call(s):\n\t- [RequestedUpdate(sym.toString(),queryID)](../../contracts/oracle.sol#L199)\n", "id": "6adade20a88d6343b2632a13a9d9788fbabed5c3ebcb245965fdaba0d8bf0683", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}, {"type": "node", "name": "oraclize_getPrice(URL) * _tokenList.length > address(this).balance", "source_mapping": {"start": 10341, "length": 68, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [213], "starting_column": 20, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle._updateTokenRatesList(uint256,address[]) (../../contracts/oracle.sol#207-236):\n\tExternal calls:\n\t- oraclize_getPrice(URL) * _tokenList.length > address(this).balance (../../contracts/oracle.sol#213)\n\tEvent emitted after the call(s):\n\t- FailedUpdateRequest(insufficient balance) (../../contracts/oracle.sol#215)\n", "markdown": "Reentrancy in [Oracle._updateTokenRatesList(uint256,address[])](../../contracts/oracle.sol#L207-L236):\n\tExternal calls:\n\t- [oraclize_getPrice(URL) * _tokenList.length > address(this).balance](../../contracts/oracle.sol#L213)\n\tEvent emitted after the call(s):\n\t- [FailedUpdateRequest(insufficient balance)](../../contracts/oracle.sol#L215)\n", "id": "2909537287d7900b02d7b32f1c6b2a6653edc8b431298b6ddca1a183b7e44e28", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}, {"type": "node", "name": "queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit)", "source_mapping": {"start": 11357, "length": 104, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [229], "starting_column": 17, "ending_column": 121}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle._updateTokenRatesList(uint256,address[]) (../../contracts/oracle.sol#207-236):\n\tExternal calls:\n\t- queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit) (../../contracts/oracle.sol#229)\n\tEvent emitted after the call(s):\n\t- RequestedUpdate(symbol.toString(),queryID) (../../contracts/oracle.sol#233)\n", "markdown": "Reentrancy in [Oracle._updateTokenRatesList(uint256,address[])](../../contracts/oracle.sol#L207-L236):\n\tExternal calls:\n\t- [queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit)](../../contracts/oracle.sol#L229)\n\tEvent emitted after the call(s):\n\t- [RequestedUpdate(symbol.toString(),queryID)](../../contracts/oracle.sol#L233)\n", "id": "bf326ce0611dc01df71ad8ca5b23dc151821feb54aef0708d7e80a25e7fa66a5", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 5209, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [114, 115, 116, 117], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,_asset,_amount)", "source_mapping": {"start": 5307, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [115], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 5209, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [114, 115, 116, 117], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle.claim(address,address,uint256) (../../contracts/oracle.sol#114-117):\n\tExternal calls:\n\t- _safeTransfer(_to,_asset,_amount) (../../contracts/oracle.sol#115)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_asset,_amount) (../../contracts/oracle.sol#116)\n", "markdown": "Reentrancy in [Oracle.claim(address,address,uint256)](../../contracts/oracle.sol#L114-L117):\n\tExternal calls:\n\t- [_safeTransfer(_to,_asset,_amount)](../../contracts/oracle.sol#L115)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_asset,_amount)](../../contracts/oracle.sol#L116)\n", "id": "838fe2f76c9ca9ef6c6eda4cb6ddf4deb7e543fec73cd14ac51d596b11078c69", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "setCustomGasPrice", "source_mapping": {"start": 4235, "length": 173, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [95, 96, 97, 98], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "setCustomGasPrice(uint256)"}}, {"type": "node", "name": "oraclize_setCustomGasPrice(_gasPrice)", "source_mapping": {"start": 4315, "length": 37, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [96], "starting_column": 9, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "setCustomGasPrice", "source_mapping": {"start": 4235, "length": 173, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [95, 96, 97, 98], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "setCustomGasPrice(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle.setCustomGasPrice(uint256) (../../contracts/oracle.sol#95-98):\n\tExternal calls:\n\t- oraclize_setCustomGasPrice(_gasPrice) (../../contracts/oracle.sol#96)\n\tEvent emitted after the call(s):\n\t- SetGasPrice(msg.sender,_gasPrice) (../../contracts/oracle.sol#97)\n", "markdown": "Reentrancy in [Oracle.setCustomGasPrice(uint256)](../../contracts/oracle.sol#L95-L98):\n\tExternal calls:\n\t- [oraclize_setCustomGasPrice(_gasPrice)](../../contracts/oracle.sol#L96)\n\tEvent emitted after the call(s):\n\t- [SetGasPrice(msg.sender,_gasPrice)](../../contracts/oracle.sol#L97)\n", "id": "1f16da36cf525f60bbd52331dcd028bbc997552faa9539c6006d85d4211825c8", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}, {"type": "node", "name": "oraclize_setCustomGasPrice(10000000000)", "source_mapping": {"start": 3703, "length": 39, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [82], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}}], "description": "Oracle.constructor(address,address,bytes32,bytes32) (../../contracts/oracle.sol#76-84) uses literals with too many digits:\n\t- oraclize_setCustomGasPrice(10000000000) (../../contracts/oracle.sol#82)\n", "markdown": "[Oracle.constructor(address,address,bytes32,bytes32)](../../contracts/oracle.sol#L76-L84) uses literals with too many digits:\n\t- [oraclize_setCustomGasPrice(10000000000)](../../contracts/oracle.sol#L82)\n", "id": "39e1f7c58a43e434eef6b268ca3ad4ef0c74e291b3e4365b652aa7ce7191ec0e", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "burn", "source_mapping": {"start": 2873, "length": 841, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}}, "signature": "burn(address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,redeemableAddresses[i],redeemableAmount)", "source_mapping": {"start": 3518, "length": 60, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [79], "starting_column": 17, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "burn", "source_mapping": {"start": 2873, "length": 841, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}}, "signature": "burn(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Holder.burn(address,uint256) (../../contracts/holder.sol#68-85):\n\tExternal calls:\n\t- _safeTransfer(_to,redeemableAddresses[i],redeemableAmount) (../../contracts/holder.sol#79)\n\tEvent emitted after the call(s):\n\t- CashAndBurned(_to,redeemableAddresses[i],redeemableAmount) (../../contracts/holder.sol#80)\n", "markdown": "Reentrancy in [Holder.burn(address,uint256)](../../contracts/holder.sol#L68-L85):\n\tExternal calls:\n\t- [_safeTransfer(_to,redeemableAddresses[i],redeemableAmount)](../../contracts/holder.sol#L79)\n\tEvent emitted after the call(s):\n\t- [CashAndBurned(_to,redeemableAddresses[i],redeemableAmount)](../../contracts/holder.sol#L80)\n", "id": "4883d8b5f0464e37fdee3911105f426388438b40a07ad77752f94dd83c9015d3", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "nonRedeemableTokenClaim", "source_mapping": {"start": 3964, "length": 667, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}}, "signature": "nonRedeemableTokenClaim(address,address[])"}}, {"type": "node", "name": "_safeTransfer(_to,_nonRedeemableAddresses[i],claimBalance)", "source_mapping": {"start": 4441, "length": 60, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [96], "starting_column": 17, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "nonRedeemableTokenClaim", "source_mapping": {"start": 3964, "length": 667, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}}, "signature": "nonRedeemableTokenClaim(address,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Holder.nonRedeemableTokenClaim(address,address[]) (../../contracts/holder.sol#90-102):\n\tExternal calls:\n\t- _safeTransfer(_to,_nonRedeemableAddresses[i],claimBalance) (../../contracts/holder.sol#96)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_nonRedeemableAddresses[i],claimBalance) (../../contracts/holder.sol#97)\n", "markdown": "Reentrancy in [Holder.nonRedeemableTokenClaim(address,address[])](../../contracts/holder.sol#L90-L102):\n\tExternal calls:\n\t- [_safeTransfer(_to,_nonRedeemableAddresses[i],claimBalance)](../../contracts/holder.sol#L96)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_nonRedeemableAddresses[i],claimBalance)](../../contracts/holder.sol#L97)\n", "id": "57c506c68402acae21cf8e3fa44add5ed8951c98dbce2513119f4f104634637a", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 34426, "length": 1540, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}, {"type": "node", "name": "amountToSend = _amount.mul(rate).div(magnitude)", "source_mapping": {"start": 35317, "length": 47, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [768], "starting_column": 13, "ending_column": 60}, "type_specific_fields": {"parent": {"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 34426, "length": 1540, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}}}, {"type": "node", "name": "amountToSend.mul(stablecoinMagnitude).div(stablecoinRate)", "source_mapping": {"start": 35895, "length": 64, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [777], "starting_column": 9, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 34426, "length": 1540, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}}}], "description": "Wallet.convertToStablecoin(address,uint256) (../../contracts/wallet.sol#752-778) performs a multiplication on the result of a division:\n\t-amountToSend = _amount.mul(rate).div(magnitude) (../../contracts/wallet.sol#768)\n\t-amountToSend.mul(stablecoinMagnitude).div(stablecoinRate) (../../contracts/wallet.sol#777)\n", "markdown": "[Wallet.convertToStablecoin(address,uint256)](../../contracts/wallet.sol#L752-L778) performs a multiplication on the result of a division:\n\t-[amountToSend = _amount.mul(rate).div(magnitude)](../../contracts/wallet.sol#L768)\n\t-[amountToSend.mul(stablecoinMagnitude).div(stablecoinRate)](../../contracts/wallet.sol#L777)\n", "id": "9427e4fd8ac32b25bff5654b20554c8b328211491d3e5cc716ff823d44447352", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_tokenWhitelistNode", "source_mapping": {"start": 21797, "length": 27, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [503], "starting_column": 35, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "_initializeLoadLimit", "source_mapping": {"start": 21767, "length": 464, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [503, 504, 505, 506, 507, 508, 509], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "LoadLimit", "source_mapping": {"start": 19681, "length": 2552, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510], "starting_column": 1, "ending_column": 2}}, "signature": "_initializeLoadLimit(bytes32)"}}}}, {"type": "variable", "name": "_tokenWhitelistNode", "source_mapping": {"start": 1132, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/internals/tokenWhitelistable.sol", "filename_relative": "../../contracts/internals/tokenWhitelistable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/tokenWhitelistable.sol", "filename_short": "../../contracts/internals/tokenWhitelistable.sol", "is_dependency": false, "lines": [29], "starting_column": 5, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelistable", "source_mapping": {"start": 998, "length": 4648, "filename_used": "/contracts/tools/slither/../../contracts/internals/tokenWhitelistable.sol", "filename_relative": "../../contracts/internals/tokenWhitelistable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/tokenWhitelistable.sol", "filename_short": "../../contracts/internals/tokenWhitelistable.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}}}], "description": "LoadLimit._initializeLoadLimit(bytes32)._tokenWhitelistNode (../../contracts/wallet.sol#503) shadows:\n\t- TokenWhitelistable._tokenWhitelistNode (../../contracts/internals/tokenWhitelistable.sol#29) (state variable)\n", "markdown": "[LoadLimit._initializeLoadLimit(bytes32)._tokenWhitelistNode](../../contracts/wallet.sol#L503) shadows:\n\t- [TokenWhitelistable._tokenWhitelistNode](../../contracts/internals/tokenWhitelistable.sol#L29) (state variable)\n", "id": "8f15cbf6d24a4b17962fde5591cd20736fc2ed8d234ab44f7ef3eab547790f4e", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 13279, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [277, 278, 279, 280], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelist", "source_mapping": {"start": 1938, "length": 15854, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,_asset,_amount)", "source_mapping": {"start": 13377, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [278], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 13279, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [277, 278, 279, 280], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelist", "source_mapping": {"start": 1938, "length": 15854, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in TokenWhitelist.claim(address,address,uint256) (../../contracts/tokenWhitelist.sol#277-280):\n\tExternal calls:\n\t- _safeTransfer(_to,_asset,_amount) (../../contracts/tokenWhitelist.sol#278)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_asset,_amount) (../../contracts/tokenWhitelist.sol#279)\n", "markdown": "Reentrancy in [TokenWhitelist.claim(address,address,uint256)](../../contracts/tokenWhitelist.sol#L277-L280):\n\tExternal calls:\n\t- [_safeTransfer(_to,_asset,_amount)](../../contracts/tokenWhitelist.sol#L278)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_asset,_amount)](../../contracts/tokenWhitelist.sol#L279)\n", "id": "2ca6fdd6302454fdf9a41e8c3cc4452a5a1dbee301b2675f010d9d2966e80e75", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeRelayedTransaction", "source_mapping": {"start": 26519, "length": 1111, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeRelayedTransaction(uint256,bytes,bytes)"}}, {"type": "node", "name": "(success,returndata) = address(this).call(_data)", "source_mapping": {"start": 27449, "length": 67, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [614], "starting_column": 9, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "executeRelayedTransaction", "source_mapping": {"start": 26519, "length": 1111, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeRelayedTransaction(uint256,bytes,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Wallet.executeRelayedTransaction(uint256,bytes,bytes) (../../contracts/wallet.sol#599-618):\n\tExternal calls:\n\t- (success,returndata) = address(this).call(_data) (../../contracts/wallet.sol#614)\n\tEvent emitted after the call(s):\n\t- ExecutedRelayedTransaction(_data,returndata) (../../contracts/wallet.sol#617)\n", "markdown": "Reentrancy in [Wallet.executeRelayedTransaction(uint256,bytes,bytes)](../../contracts/wallet.sol#L599-L618):\n\tExternal calls:\n\t- [(success,returndata) = address(this).call(_data)](../../contracts/wallet.sol#L614)\n\tEvent emitted after the call(s):\n\t- [ExecutedRelayedTransaction(_data,returndata)](../../contracts/wallet.sol#L617)\n", "id": "112c5438d3b21ae470128028e431b55e0dc8b1fe0ce27241678cf1122edc4e27", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeTransaction", "source_mapping": {"start": 36226, "length": 1934, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}, {"type": "node", "name": "ERC20(_destination).callOptionalReturn(_data)", "source_mapping": {"start": 37535, "length": 45, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [804], "starting_column": 13, "ending_column": 58}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 36226, "length": 1934, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Wallet.executeTransaction(address,uint256,bytes) (../../contracts/wallet.sol#784-820):\n\tExternal calls:\n\t- ERC20(_destination).callOptionalReturn(_data) (../../contracts/wallet.sol#804)\n\tEvent emitted after the call(s):\n\t- ExecutedTransaction(_destination,_value,_data,b) (../../contracts/wallet.sol#810)\n", "markdown": "Reentrancy in [Wallet.executeTransaction(address,uint256,bytes)](../../contracts/wallet.sol#L784-L820):\n\tExternal calls:\n\t- [ERC20(_destination).callOptionalReturn(_data)](../../contracts/wallet.sol#L804)\n\tEvent emitted after the call(s):\n\t- [ExecutedTransaction(_destination,_value,_data,b)](../../contracts/wallet.sol#L810)\n", "id": "90922d797d564ffa148dd8a01afcc923d8a2f2c9f27b82661bb31094cb90a9fe", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeTransaction", "source_mapping": {"start": 36226, "length": 1934, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}, {"type": "node", "name": "(success,returndata) = _destination.call.value(_value)(_data)", "source_mapping": {"start": 37854, "length": 80, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [814], "starting_column": 9, "ending_column": 89}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 36226, "length": 1934, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Wallet.executeTransaction(address,uint256,bytes) (../../contracts/wallet.sol#784-820):\n\tExternal calls:\n\t- (success,returndata) = _destination.call.value(_value)(_data) (../../contracts/wallet.sol#814)\n\tEvent emitted after the call(s):\n\t- ExecutedTransaction(_destination,_value,_data,returndata) (../../contracts/wallet.sol#817)\n", "markdown": "Reentrancy in [Wallet.executeTransaction(address,uint256,bytes)](../../contracts/wallet.sol#L784-L820):\n\tExternal calls:\n\t- [(success,returndata) = _destination.call.value(_value)(_data)](../../contracts/wallet.sol#L814)\n\tEvent emitted after the call(s):\n\t- [ExecutedTransaction(_destination,_value,_data,returndata)](../../contracts/wallet.sol#L817)\n", "id": "1ae3f304d8052577f82d9d3898acef327ffddc3b8b02c5cc38f30bc9a52d0377", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 29390, "length": 943, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}, {"type": "node", "name": "ERC20(_asset).safeApprove(licenceAddress,_amount)", "source_mapping": {"start": 30066, "length": 50, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [668], "starting_column": 13, "ending_column": 63}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 29390, "length": 943, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ILicence(licenceAddress).load(_asset,_amount)", "source_mapping": {"start": 30130, "length": 46, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [669], "starting_column": 13, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 29390, "length": 943, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ILicence(licenceAddress).load.value(_amount)(_asset,_amount)", "source_mapping": {"start": 30207, "length": 61, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [671], "starting_column": 13, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 29390, "length": 943, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ILicence(licenceAddress).load.value(_amount)(_asset,_amount)", "source_mapping": {"start": 30207, "length": 61, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [671], "starting_column": 13, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 29390, "length": 943, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}], "description": "Reentrancy in Wallet.loadTokenCard(address,uint256) (../../contracts/wallet.sol#658-675):\n\tExternal calls:\n\t- ERC20(_asset).safeApprove(licenceAddress,_amount) (../../contracts/wallet.sol#668)\n\t- ILicence(licenceAddress).load(_asset,_amount) (../../contracts/wallet.sol#669)\n\t- ILicence(licenceAddress).load.value(_amount)(_asset,_amount) (../../contracts/wallet.sol#671)\n\tExternal calls sending eth:\n\t- ILicence(licenceAddress).load.value(_amount)(_asset,_amount) (../../contracts/wallet.sol#671)\n\tEvent emitted after the call(s):\n\t- LoadedTokenCard(_asset,_amount) (../../contracts/wallet.sol#674)\n", "markdown": "Reentrancy in [Wallet.loadTokenCard(address,uint256)](../../contracts/wallet.sol#L658-L675):\n\tExternal calls:\n\t- [ERC20(_asset).safeApprove(licenceAddress,_amount)](../../contracts/wallet.sol#L668)\n\t- [ILicence(licenceAddress).load(_asset,_amount)](../../contracts/wallet.sol#L669)\n\t- [ILicence(licenceAddress).load.value(_amount)(_asset,_amount)](../../contracts/wallet.sol#L671)\n\tExternal calls sending eth:\n\t- [ILicence(licenceAddress).load.value(_amount)(_asset,_amount)](../../contracts/wallet.sol#L671)\n\tEvent emitted after the call(s):\n\t- [LoadedTokenCard(_asset,_amount)](../../contracts/wallet.sol#L674)\n", "id": "32a5001c60ea652a4680686ea61a7e6e110e48a9a1e1faba88e96733c4931e27", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "transfer", "source_mapping": {"start": 38964, "length": 1097, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "transfer(address,address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,_asset,_amount)", "source_mapping": {"start": 39935, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [853], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "transfer", "source_mapping": {"start": 38964, "length": 1097, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "transfer(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Wallet.transfer(address,address,uint256) (../../contracts/wallet.sol#836-856):\n\tExternal calls:\n\t- _safeTransfer(_to,_asset,_amount) (../../contracts/wallet.sol#853)\n\tEvent emitted after the call(s):\n\t- Transferred(_to,_asset,_amount) (../../contracts/wallet.sol#855)\n", "markdown": "Reentrancy in [Wallet.transfer(address,address,uint256)](../../contracts/wallet.sol#L836-L856):\n\tExternal calls:\n\t- [_safeTransfer(_to,_asset,_amount)](../../contracts/wallet.sol#L853)\n\tEvent emitted after the call(s):\n\t- [Transferred(_to,_asset,_amount)](../../contracts/wallet.sol#L855)\n", "id": "aac85d47c8d408d9a538125346dbc9950619776bd96e62f1f93385989c8b065b", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "topUpGas", "source_mapping": {"start": 30715, "length": 425, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [684, 685, 686, 687, 688, 689, 690, 691], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "topUpGas(uint256)"}}, {"type": "node", "name": "owner().transfer(_amount)", "source_mapping": {"start": 31014, "length": 25, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [688], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "topUpGas", "source_mapping": {"start": 30715, "length": 425, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [684, 685, 686, 687, 688, 689, 690, 691], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "topUpGas(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Wallet.topUpGas(uint256) (../../contracts/wallet.sol#684-691):\n\tExternal calls:\n\t- owner().transfer(_amount) (../../contracts/wallet.sol#688)\n\tEvent emitted after the call(s):\n\t- ToppedUpGas(msg.sender,owner(),_amount) (../../contracts/wallet.sol#690)\n", "markdown": "Reentrancy in [Wallet.topUpGas(uint256)](../../contracts/wallet.sol#L684-L691):\n\tExternal calls:\n\t- [owner().transfer(_amount)](../../contracts/wallet.sol#L688)\n\tEvent emitted after the call(s):\n\t- [ToppedUpGas(msg.sender,owner(),_amount)](../../contracts/wallet.sol#L690)\n", "id": "136c6d6739199960ae0bf308fce78ecb212a08fa6e6c014bcbd923c4f0015046", "check": "reentrancy-unlimited-gas", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "batchExecuteTransaction", "source_mapping": {"start": 31472, "length": 2016, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "batchExecuteTransaction(bytes)"}}], "description": "batchExecuteTransaction(bytes) should be declared external:\n\t- Wallet.batchExecuteTransaction(bytes) (../../contracts/wallet.sol#697-732)\n", "markdown": "batchExecuteTransaction(bytes) should be declared external:\n\t- [Wallet.batchExecuteTransaction(bytes)](../../contracts/wallet.sol#L697-L732)\n", "id": "25be393b22a852005aebc844d44187435f0cfff81e7632ced668dd912f0e2261", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 9073, "length": 36, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [215], "starting_column": 17, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}}, {"type": "node", "name": "_cryptoFloat.transfer(loadAmount)", "source_mapping": {"start": 9127, "length": 33, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [216], "starting_column": 17, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}}], "description": "Licence.load(address,uint256) (../../contracts/licence.sol#201-223) sends eth to arbitrary user\n\tDangerous calls:\n\t- _tokenHolder.transfer(licenceAmount) (../../contracts/licence.sol#215)\n\t- _cryptoFloat.transfer(loadAmount) (../../contracts/licence.sol#216)\n", "markdown": "[Licence.load(address,uint256)](../../contracts/licence.sol#L201-L223) sends eth to arbitrary user\n\tDangerous calls:\n\t- [_tokenHolder.transfer(licenceAmount)](../../contracts/licence.sol#L215)\n\t- [_cryptoFloat.transfer(loadAmount)](../../contracts/licence.sol#L216)\n", "id": "77a1d9fb3657ae0373a1ee2191c5fba1c04170d16f4a8c073a174eedb2b6bc4b", "check": "arbitrary-send", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 7038, "length": 195, "filename_used": "/contracts/tools/slither/../../contracts/controller.sol", "filename_relative": "../../contracts/controller.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/controller.sol", "filename_short": "../../contracts/controller.sol", "is_dependency": false, "lines": [186, 187, 188, 189], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Controller", "source_mapping": {"start": 1459, "length": 5776, "filename_used": "/contracts/tools/slither/../../contracts/controller.sol", "filename_relative": "../../contracts/controller.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/controller.sol", "filename_short": "../../contracts/controller.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,_asset,_amount)", "source_mapping": {"start": 7147, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/controller.sol", "filename_relative": "../../contracts/controller.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/controller.sol", "filename_short": "../../contracts/controller.sol", "is_dependency": false, "lines": [187], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 7038, "length": 195, "filename_used": "/contracts/tools/slither/../../contracts/controller.sol", "filename_relative": "../../contracts/controller.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/controller.sol", "filename_short": "../../contracts/controller.sol", "is_dependency": false, "lines": [186, 187, 188, 189], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Controller", "source_mapping": {"start": 1459, "length": 5776, "filename_used": "/contracts/tools/slither/../../contracts/controller.sol", "filename_relative": "../../contracts/controller.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/controller.sol", "filename_short": "../../contracts/controller.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Controller.claim(address,address,uint256) (../../contracts/controller.sol#186-189):\n\tExternal calls:\n\t- _safeTransfer(_to,_asset,_amount) (../../contracts/controller.sol#187)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_asset,_amount) (../../contracts/controller.sol#188)\n", "markdown": "Reentrancy in [Controller.claim(address,address,uint256)](../../contracts/controller.sol#L186-L189):\n\tExternal calls:\n\t- [_safeTransfer(_to,_asset,_amount)](../../contracts/controller.sol#L187)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_asset,_amount)](../../contracts/controller.sol#L188)\n", "id": "ce3e7f890cf7bca36bbe00a4feab6c3793439951e10b882b9c576ec85c6b47d8", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 9459, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [226, 227, 228, 229], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,_asset,_amount)", "source_mapping": {"start": 9557, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [227], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 9459, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [226, 227, 228, 229], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Licence.claim(address,address,uint256) (../../contracts/licence.sol#226-229):\n\tExternal calls:\n\t- _safeTransfer(_to,_asset,_amount) (../../contracts/licence.sol#227)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_asset,_amount) (../../contracts/licence.sol#228)\n", "markdown": "Reentrancy in [Licence.claim(address,address,uint256)](../../contracts/licence.sol#L226-L229):\n\tExternal calls:\n\t- [_safeTransfer(_to,_asset,_amount)](../../contracts/licence.sol#L227)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_asset,_amount)](../../contracts/licence.sol#L228)\n", "id": "fdf2fa6addf7bef04edc254acc324db73f2332629d733ef61923875a75322877", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)", "source_mapping": {"start": 8795, "length": 71, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [211], "starting_column": 17, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8884, "length": 68, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [212], "starting_column": 17, "ending_column": 85}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 9073, "length": 36, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [215], "starting_column": 17, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_cryptoFloat.transfer(loadAmount)", "source_mapping": {"start": 9127, "length": 33, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [216], "starting_column": 17, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}], "description": "Reentrancy in Licence.load(address,uint256) (../../contracts/licence.sol#201-223):\n\tExternal calls:\n\t- ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount) (../../contracts/licence.sol#211)\n\t- ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount) (../../contracts/licence.sol#212)\n\tExternal calls sending eth:\n\t- _tokenHolder.transfer(licenceAmount) (../../contracts/licence.sol#215)\n\t- _cryptoFloat.transfer(loadAmount) (../../contracts/licence.sol#216)\n\tEvent emitted after the call(s):\n\t- TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount) (../../contracts/licence.sol#219)\n", "markdown": "Reentrancy in [Licence.load(address,uint256)](../../contracts/licence.sol#L201-L223):\n\tExternal calls:\n\t- [ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)](../../contracts/licence.sol#L211)\n\t- [ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)](../../contracts/licence.sol#L212)\n\tExternal calls sending eth:\n\t- [_tokenHolder.transfer(licenceAmount)](../../contracts/licence.sol#L215)\n\t- [_cryptoFloat.transfer(loadAmount)](../../contracts/licence.sol#L216)\n\tEvent emitted after the call(s):\n\t- [TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount)](../../contracts/licence.sol#L219)\n", "id": "28ebff565ba397e67049a43ee60fda046211b31c5ab61b7ccbe89ddf6bbc5224", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8489, "length": 68, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [205], "starting_column": 13, "ending_column": 81}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)", "source_mapping": {"start": 8795, "length": 71, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [211], "starting_column": 17, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8884, "length": 68, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [212], "starting_column": 17, "ending_column": 85}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 9073, "length": 36, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [215], "starting_column": 17, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_cryptoFloat.transfer(loadAmount)", "source_mapping": {"start": 9127, "length": 33, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [216], "starting_column": 17, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}], "description": "Reentrancy in Licence.load(address,uint256) (../../contracts/licence.sol#201-223):\n\tExternal calls:\n\t- ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount) (../../contracts/licence.sol#205)\n\t- ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount) (../../contracts/licence.sol#211)\n\t- ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount) (../../contracts/licence.sol#212)\n\tExternal calls sending eth:\n\t- _tokenHolder.transfer(licenceAmount) (../../contracts/licence.sol#215)\n\t- _cryptoFloat.transfer(loadAmount) (../../contracts/licence.sol#216)\n\tEvent emitted after the call(s):\n\t- TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount) (../../contracts/licence.sol#222)\n", "markdown": "Reentrancy in [Licence.load(address,uint256)](../../contracts/licence.sol#L201-L223):\n\tExternal calls:\n\t- [ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)](../../contracts/licence.sol#L205)\n\t- [ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)](../../contracts/licence.sol#L211)\n\t- [ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)](../../contracts/licence.sol#L212)\n\tExternal calls sending eth:\n\t- [_tokenHolder.transfer(licenceAmount)](../../contracts/licence.sol#L215)\n\t- [_cryptoFloat.transfer(loadAmount)](../../contracts/licence.sol#L216)\n\tEvent emitted after the call(s):\n\t- [TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount)](../../contracts/licence.sol#L222)\n", "id": "8e611627c7652f109a6f7e6ff68b283f6b4f2cc70302d7daadca9664108f8cef", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 9073, "length": 36, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [215], "starting_column": 17, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_cryptoFloat.transfer(loadAmount)", "source_mapping": {"start": 9127, "length": 33, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [216], "starting_column": 17, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Licence.load(address,uint256) (../../contracts/licence.sol#201-223):\n\tExternal calls:\n\t- _tokenHolder.transfer(licenceAmount) (../../contracts/licence.sol#215)\n\t- _cryptoFloat.transfer(loadAmount) (../../contracts/licence.sol#216)\n\tEvent emitted after the call(s):\n\t- TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount) (../../contracts/licence.sol#219)\n\t- TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount) (../../contracts/licence.sol#222)\n", "markdown": "Reentrancy in [Licence.load(address,uint256)](../../contracts/licence.sol#L201-L223):\n\tExternal calls:\n\t- [_tokenHolder.transfer(licenceAmount)](../../contracts/licence.sol#L215)\n\t- [_cryptoFloat.transfer(loadAmount)](../../contracts/licence.sol#L216)\n\tEvent emitted after the call(s):\n\t- [TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount)](../../contracts/licence.sol#L219)\n\t- [TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount)](../../contracts/licence.sol#L222)\n", "id": "a30148aae0f13c5bced5d249c6284bb19c3ef27d698547440c3a3058773e258b", "check": "reentrancy-unlimited-gas", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "controllerNode", "source_mapping": {"start": 1778, "length": 95, "filename_used": "/contracts/tools/slither/../../contracts/internals/controllable.sol", "filename_relative": "../../contracts/internals/controllable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/controllable.sol", "filename_short": "../../contracts/internals/controllable.sol", "is_dependency": false, "lines": [48, 49, 50], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Controllable", "source_mapping": {"start": 995, "length": 1770, "filename_used": "/contracts/tools/slither/../../contracts/internals/controllable.sol", "filename_relative": "../../contracts/internals/controllable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/controllable.sol", "filename_short": "../../contracts/internals/controllable.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71], "starting_column": 1, "ending_column": 2}}, "signature": "controllerNode()"}}], "description": "controllerNode() should be declared external:\n\t- Controllable.controllerNode() (../../contracts/internals/controllable.sol#48-50)\n", "markdown": "controllerNode() should be declared external:\n\t- [Controllable.controllerNode()](../../contracts/internals/controllable.sol#L48-L50)\n", "id": "d13a5d67fbaa6821edc17da5f446b38ce126b2b8abcbc3c21b79428186db1d29", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "owner", "source_mapping": {"start": 3508, "length": 85, "filename_used": "/contracts/tools/slither/../../contracts/internals/ownable.sol", "filename_relative": "../../contracts/internals/ownable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/ownable.sol", "filename_short": "../../contracts/internals/ownable.sol", "is_dependency": false, "lines": [81, 82, 83], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ownable", "source_mapping": {"start": 1190, "length": 3110, "filename_used": "/contracts/tools/slither/../../contracts/internals/ownable.sol", "filename_relative": "../../contracts/internals/ownable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/ownable.sol", "filename_short": "../../contracts/internals/ownable.sol", "is_dependency": false, "lines": [28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101], "starting_column": 1, "ending_column": 2}}, "signature": "owner()"}}], "description": "owner() should be declared external:\n\t- Ownable.owner() (../../contracts/internals/ownable.sol#81-83)\n", "markdown": "owner() should be declared external:\n\t- [Ownable.owner()](../../contracts/internals/ownable.sol#L81-L83)\n", "id": "698811821ed34357d834c197b976565a1354eaff150bcbc8a352f2d8c7df57f3", "check": "external-function", "impact": "Optimization", "confidence": "High"}] \ No newline at end of file +[{"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1188, "length": 82, "filename_used": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_relative": "../../contracts/internals/ensResolvable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_short": "../../contracts/internals/ensResolvable.sol", "is_dependency": false, "lines": [30], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "WalletDeployer.slitherConstructorVariables() (../../contracts/walletDeployer.sol#27-108) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#30)\n", "markdown": "[WalletDeployer.slitherConstructorVariables()](../../contracts/walletDeployer.sol#L27-L108) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L30)\n", "id": "57137e586ec8e1c72973c7346eba554c668c54b1f5aa1cac483dc89710755b65", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1188, "length": 82, "filename_used": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_relative": "../../contracts/internals/ensResolvable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_short": "../../contracts/internals/ensResolvable.sol", "is_dependency": false, "lines": [30], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Licence.slitherConstructorVariables() (../../contracts/licence.sol#38-250) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#30)\n", "markdown": "[Licence.slitherConstructorVariables()](../../contracts/licence.sol#L38-L250) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L30)\n", "id": "2a3248bdff26536de1b1750a79be6c2a469c16123b39102364f6714073812efb", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 22334, "length": 17725, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17725, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1188, "length": 82, "filename_used": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_relative": "../../contracts/internals/ensResolvable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_short": "../../contracts/internals/ensResolvable.sol", "is_dependency": false, "lines": [30], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 22334, "length": 17725, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17725, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Wallet.slitherConstructorVariables() (../../contracts/wallet.sol#514-857) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#30)\n", "markdown": "[Wallet.slitherConstructorVariables()](../../contracts/wallet.sol#L514-L857) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L30)\n", "id": "bb20c6c8f4f8d2add12a77599d15bb425ca4bb2749ccc87653325f3e774c82c8", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1188, "length": 82, "filename_used": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_relative": "../../contracts/internals/ensResolvable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_short": "../../contracts/internals/ensResolvable.sol", "is_dependency": false, "lines": [30], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "WalletCache.slitherConstructorVariables() (../../contracts/walletCache.sol#34-126) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#30)\n", "markdown": "[WalletCache.slitherConstructorVariables()](../../contracts/walletCache.sol#L34-L126) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L30)\n", "id": "4c82d4318857dda3245886fc09c320e8ad2e6c83a4a4a8f31d66b5a7383c2170", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1188, "length": 82, "filename_used": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_relative": "../../contracts/internals/ensResolvable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_short": "../../contracts/internals/ensResolvable.sol", "is_dependency": false, "lines": [30], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Oracle.slitherConstructorVariables() (../../contracts/oracle.sol#33-347) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#30)\n", "markdown": "[Oracle.slitherConstructorVariables()](../../contracts/oracle.sol#L33-L347) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L30)\n", "id": "62c27317dbe3df5329d49e292c279f9e28b8ec2bc7bf6dab6bc9d00db3891b5a", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1188, "length": 82, "filename_used": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_relative": "../../contracts/internals/ensResolvable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_short": "../../contracts/internals/ensResolvable.sol", "is_dependency": false, "lines": [30], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Holder.slitherConstructorVariables() (../../contracts/holder.sol#32-109) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#30)\n", "markdown": "[Holder.slitherConstructorVariables()](../../contracts/holder.sol#L32-L109) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L30)\n", "id": "2d1bc4f7c83e31e8c5d7cf79fe90d68bb155ee140733a3b37f457afce2a4c6dd", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1938, "length": 15854, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelist", "source_mapping": {"start": 1938, "length": 15854, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1188, "length": 82, "filename_used": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_relative": "../../contracts/internals/ensResolvable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/ensResolvable.sol", "filename_short": "../../contracts/internals/ensResolvable.sol", "is_dependency": false, "lines": [30], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1938, "length": 15854, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelist", "source_mapping": {"start": 1938, "length": 15854, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "TokenWhitelist.slitherConstructorVariables() (../../contracts/tokenWhitelist.sol#49-371) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#30)\n", "markdown": "[TokenWhitelist.slitherConstructorVariables()](../../contracts/tokenWhitelist.sol#L49-L371) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L30)\n", "id": "0988b1a784585d4725cd2252cbc974fe59883eacfa52a293e16f71d93848dc49", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3838, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}, {"type": "node", "name": "cacheWallet()", "source_mapping": {"start": 3972, "length": 13, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [100], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3838, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "cachedWallets.pop()", "source_mapping": {"start": 4080, "length": 19, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [104], "starting_column": 9, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3838, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "cachedWallets"}}], "description": "Reentrancy in WalletCache.walletCachePop() (../../contracts/walletCache.sol#98-107):\n\tExternal calls:\n\t- cacheWallet() (../../contracts/walletCache.sol#100)\n\tState variables written after the call(s):\n\t- WalletCache.cachedWallets (../../contracts/walletCache.sol#54) in cachedWallets.pop() (../../contracts/walletCache.sol#104)\n", "markdown": "Reentrancy in [WalletCache.walletCachePop()](../../contracts/walletCache.sol#L98-L107):\n\tExternal calls:\n\t- [cacheWallet()](../../contracts/walletCache.sol#L100)\n\tState variables written after the call(s):\n\t- [WalletCache.cachedWallets](../../contracts/walletCache.sol#L54) in [cachedWallets.pop()](../../contracts/walletCache.sol#L104)\n", "id": "9c7be75147448dbb8ff35016b74de4d723373008b40b58dde79f10ca95d518ef", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4319, "length": 83, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [112], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4412, "length": 341, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [113, 114, 115, 116, 117, 118, 119, 120, 121], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "cachedWallets.push(wallet)", "source_mapping": {"start": 4763, "length": 26, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [122], "starting_column": 9, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "cachedWallets"}}], "description": "Reentrancy in WalletCache.cacheWallet() (../../contracts/walletCache.sol#110-125):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#112)\n\t- Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#113-121)\n\tState variables written after the call(s):\n\t- WalletCache.cachedWallets (../../contracts/walletCache.sol#54) in cachedWallets.push(wallet) (../../contracts/walletCache.sol#122)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L110-L125):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L112)\n\t- [Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L113-L121)\n\tState variables written after the call(s):\n\t- [WalletCache.cachedWallets](../../contracts/walletCache.sol#L54) in [cachedWallets.push(wallet)](../../contracts/walletCache.sol#L122)\n", "id": "6cf52a800fc4bfc6a33370f09629daea34bf2d99ffb1860e952981e0ae4c8e89", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4319, "length": 83, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [112], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4412, "length": 341, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [113, 114, 115, 116, 117, 118, 119, 120, 121], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4206, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 3615, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in WalletCache.cacheWallet() (../../contracts/walletCache.sol#110-125):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#112)\n\t- Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#113-121)\n\tEvent emitted after the call(s):\n\t- CachedWallet(wallet) (../../contracts/walletCache.sol#124)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L110-L125):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L112)\n\t- [Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L113-L121)\n\tEvent emitted after the call(s):\n\t- [CachedWallet(wallet)](../../contracts/walletCache.sol#L124)\n", "id": "340e6fa5aa30eb289807c22a0368a1dceeea03796ec52fcbb5f81ecd185efa42", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2911, "length": 1524, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 3505, "length": 84, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [82], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2911, "length": 1524, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "deployedWallets[_owner] = wallet", "source_mapping": {"start": 3668, "length": 32, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [85], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2911, "length": 1524, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "deployedWallets"}}], "description": "Reentrancy in WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[]) (../../contracts/walletDeployer.sol#67-107):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#82)\n\tState variables written after the call(s):\n\t- WalletDeployer.deployedWallets (../../contracts/walletDeployer.sol#37) in deployedWallets[_owner] = wallet (../../contracts/walletDeployer.sol#85)\n", "markdown": "Reentrancy in [WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])](../../contracts/walletDeployer.sol#L67-L107):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L82)\n\tState variables written after the call(s):\n\t- [WalletDeployer.deployedWallets](../../contracts/walletDeployer.sol#L37) in [deployedWallets[_owner] = wallet](../../contracts/walletDeployer.sol#L85)\n", "id": "c9cc5c90886e5d43e0954b7aed44a9204cd59053d3e6ab4f4811d66b300047f9", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "deployWallet", "source_mapping": {"start": 2094, "length": 409, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 2174, "length": 84, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [53], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2094, "length": 409, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "deployedWallets[_owner] = wallet", "source_mapping": {"start": 2314, "length": 32, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [56], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2094, "length": 409, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "deployedWallets"}}], "description": "Reentrancy in WalletDeployer.deployWallet(address) (../../contracts/walletDeployer.sol#52-60):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#53)\n\tState variables written after the call(s):\n\t- WalletDeployer.deployedWallets (../../contracts/walletDeployer.sol#37) in deployedWallets[_owner] = wallet (../../contracts/walletDeployer.sol#56)\n", "markdown": "Reentrancy in [WalletDeployer.deployWallet(address)](../../contracts/walletDeployer.sol#L52-L60):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L53)\n\tState variables written after the call(s):\n\t- [WalletDeployer.deployedWallets](../../contracts/walletDeployer.sol#L37) in [deployedWallets[_owner] = wallet](../../contracts/walletDeployer.sol#L56)\n", "id": "51e7b14ee9e777e7d9aceb503d7e4fb463d228f819cdb01de7243c0e900bd1d1", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "deployWallet", "source_mapping": {"start": 2094, "length": 409, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 2174, "length": 84, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [53], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2094, "length": 409, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in WalletDeployer.deployWallet(address) (../../contracts/walletDeployer.sol#52-60):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#53)\n\tEvent emitted after the call(s):\n\t- DeployedWallet(wallet,_owner) (../../contracts/walletDeployer.sol#54)\n", "markdown": "Reentrancy in [WalletDeployer.deployWallet(address)](../../contracts/walletDeployer.sol#L52-L60):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L53)\n\tEvent emitted after the call(s):\n\t- [DeployedWallet(wallet,_owner)](../../contracts/walletDeployer.sol#L54)\n", "id": "1f2a19c730b57366cf03fa55fac9a4a4507666d304922ee6908d90b860910bc7", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2911, "length": 1524, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 3505, "length": 84, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [82], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2911, "length": 1524, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 963, "length": 3474, "filename_used": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_relative": "../../contracts/walletDeployer.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletDeployer.sol", "filename_short": "../../contracts/walletDeployer.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[]) (../../contracts/walletDeployer.sol#67-107):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#82)\n\tEvent emitted after the call(s):\n\t- MigratedWallet(wallet,_oldWallet,_owner,msg.value) (../../contracts/walletDeployer.sol#83)\n", "markdown": "Reentrancy in [WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])](../../contracts/walletDeployer.sol#L67-L107):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L82)\n\tEvent emitted after the call(s):\n\t- [MigratedWallet(wallet,_oldWallet,_owner,msg.value)](../../contracts/walletDeployer.sol#L83)\n", "id": "27487f82407f9c471ccfad236aefd4fdee287f7e67460c6a09735532f3797e50", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "walletCachePop", "source_mapping": {"start": 4320, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [106, 107, 108, 109, 110, 111, 112, 113, 114, 115], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}, {"type": "node", "name": "cacheWallet()", "source_mapping": {"start": 4454, "length": 13, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [108], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 4320, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [106, 107, 108, 109, 110, 111, 112, 113, 114, 115], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "cachedWallets.pop()", "source_mapping": {"start": 4562, "length": 19, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [112], "starting_column": 9, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 4320, "length": 292, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [106, 107, 108, 109, 110, 111, 112, 113, 114, 115], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "cachedWallets"}}], "description": "Reentrancy in WalletCache.walletCachePop() (../../contracts/walletCache.sol#106-115):\n\tExternal calls:\n\t- cacheWallet() (../../contracts/walletCache.sol#108)\n\tState variables written after the call(s):\n\t- WalletCache.cachedWallets (../../contracts/walletCache.sol#55) in cachedWallets.pop() (../../contracts/walletCache.sol#112)\n", "markdown": "Reentrancy in [WalletCache.walletCachePop()](../../contracts/walletCache.sol#L106-L115):\n\tExternal calls:\n\t- [cacheWallet()](../../contracts/walletCache.sol#L108)\n\tState variables written after the call(s):\n\t- [WalletCache.cachedWallets](../../contracts/walletCache.sol#L55) in [cachedWallets.pop()](../../contracts/walletCache.sol#L112)\n", "id": "fecd01393f63606141144b81e95841080ef9ec784c6a7665ac131c45668eafaf", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4801, "length": 83, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [120], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4894, "length": 341, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [121, 122, 123, 124, 125, 126, 127, 128, 129], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "cachedWallets.push(wallet)", "source_mapping": {"start": 5245, "length": 26, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [130], "starting_column": 9, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "cachedWallets"}}], "description": "Reentrancy in WalletCache.cacheWallet() (../../contracts/walletCache.sol#118-133):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#120)\n\t- Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#121-129)\n\tState variables written after the call(s):\n\t- WalletCache.cachedWallets (../../contracts/walletCache.sol#55) in cachedWallets.push(wallet) (../../contracts/walletCache.sol#130)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L118-L133):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L120)\n\t- [Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L121-L129)\n\tState variables written after the call(s):\n\t- [WalletCache.cachedWallets](../../contracts/walletCache.sol#L55) in [cachedWallets.push(wallet)](../../contracts/walletCache.sol#L130)\n", "id": "d5f7b99dcb5b4e54edb987f0658898944bcccecbb530aec08382ac9885101ad4", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4801, "length": 83, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [120], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4894, "length": 341, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [121, 122, 123, 124, 125, 126, 127, 128, 129], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4688, "length": 626, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1219, "length": 4097, "filename_used": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_relative": "../../contracts/walletCache.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/walletCache.sol", "filename_short": "../../contracts/walletCache.sol", "is_dependency": false, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in WalletCache.cacheWallet() (../../contracts/walletCache.sol#118-133):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#120)\n\t- Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#121-129)\n\tEvent emitted after the call(s):\n\t- CachedWallet(wallet) (../../contracts/walletCache.sol#132)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L118-L133):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L120)\n\t- [Wallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ens,tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L121-L129)\n\tEvent emitted after the call(s):\n\t- [CachedWallet(wallet)](../../contracts/walletCache.sol#L132)\n", "id": "a07975382e172b7388b74354e94975e46685aa84b3c61e6a848891baf4310cf9", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6735, "length": 38, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [128], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (decMinted))", "source_mapping": {"start": 7622, "length": 32, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [146], "starting_column": 13, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#49-163) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#128)\n\t-mint = mint.mul(10 ** (decMinted)) (../../contracts/internals/parseIntScientific.sol#146)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L49-L163) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L128)\n\t-[mint = mint.mul(10 ** (decMinted))](../../contracts/internals/parseIntScientific.sol#L146)\n", "id": "7f2a8a8833de43e4bde53359583557ee2e1dd2c6c047aa209df3b9574e4a0801", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6735, "length": 38, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [128], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (_magnitudeMult - decMinted))", "source_mapping": {"start": 7866, "length": 49, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [150], "starting_column": 13, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#49-163) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#128)\n\t-mint = mint.mul(10 ** (_magnitudeMult - decMinted)) (../../contracts/internals/parseIntScientific.sol#150)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L49-L163) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L128)\n\t-[mint = mint.mul(10 ** (_magnitudeMult - decMinted))](../../contracts/internals/parseIntScientific.sol#L150)\n", "id": "a82b7c9693de1c9605223cd9c9b544a7e3cafa00cc860a652f4702656c06516e", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6735, "length": 38, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [128], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (_magnitudeMult))", "source_mapping": {"start": 8375, "length": 37, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [159], "starting_column": 13, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#49-163) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#128)\n\t-mint = mint.mul(10 ** (_magnitudeMult)) (../../contracts/internals/parseIntScientific.sol#159)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L49-L163) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L128)\n\t-[mint = mint.mul(10 ** (_magnitudeMult))](../../contracts/internals/parseIntScientific.sol#L159)\n", "id": "298bd6ddafc691cf4f164caea46b84f7d806fa4aa46de23a15f20ba149f569d4", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mintDec /= 10 ** (decMinted)", "source_mapping": {"start": 8192, "length": 26, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [156], "starting_column": 13, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mintDec = mintDec.mul(10)", "source_mapping": {"start": 3689, "length": 25, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [68], "starting_column": 21, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#49-163) performs a multiplication on the result of a division:\n\t-mintDec /= 10 ** (decMinted) (../../contracts/internals/parseIntScientific.sol#156)\n\t-mintDec = mintDec.mul(10) (../../contracts/internals/parseIntScientific.sol#68)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L49-L163) performs a multiplication on the result of a division:\n\t-[mintDec /= 10 ** (decMinted)](../../contracts/internals/parseIntScientific.sol#L156)\n\t-[mintDec = mintDec.mul(10)](../../contracts/internals/parseIntScientific.sol#L68)\n", "id": "470f40a7333d285b7694adabe7173b9c0362522e9144fa61ef4a6eaa2daf9e01", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6735, "length": 38, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [128], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10)", "source_mapping": {"start": 4059, "length": 19, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [75], "starting_column": 21, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2338, "length": 6150, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 951, "length": 7539, "filename_used": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_relative": "../../contracts/internals/parseIntScientific.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/parseIntScientific.sol", "filename_short": "../../contracts/internals/parseIntScientific.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#49-163) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#128)\n\t-mint = mint.mul(10) (../../contracts/internals/parseIntScientific.sol#75)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L49-L163) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L128)\n\t-[mint = mint.mul(10)](../../contracts/internals/parseIntScientific.sol#L75)\n", "id": "f8b2ecf16caf3e893d94cb419fc0ab2f8ea68dd9192e609cb5a3db13bc7a8e17", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}, {"type": "node", "name": "oraclize_setCustomGasPrice(10000000000)", "source_mapping": {"start": 3703, "length": 39, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [82], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "oraclize_setProof(proofType_Native)", "source_mapping": {"start": 3752, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [83], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "oraclize_setProof(proofType_Native)", "source_mapping": {"start": 3752, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [83], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "oraclize"}}, {"type": "node", "name": "oraclize_setProof(proofType_Native)", "source_mapping": {"start": 3752, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [83], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "OAR"}}], "description": "Reentrancy in Oracle.constructor(address,address,bytes32,bytes32) (../../contracts/oracle.sol#76-84):\n\tExternal calls:\n\t- oraclize_setCustomGasPrice(10000000000) (../../contracts/oracle.sol#82)\n\t- oraclize_setProof(proofType_Native) (../../contracts/oracle.sol#83)\n\tState variables written after the call(s):\n\t- usingOraclize.OAR (../../contracts/externals/oraclizeAPI_0.5.sol#277) in oraclize_setProof(proofType_Native) (../../contracts/oracle.sol#83)\n\t- usingOraclize.oraclize (../../contracts/externals/oraclizeAPI_0.5.sol#276) in oraclize_setProof(proofType_Native) (../../contracts/oracle.sol#83)\n", "markdown": "Reentrancy in [Oracle.constructor(address,address,bytes32,bytes32)](../../contracts/oracle.sol#L76-L84):\n\tExternal calls:\n\t- [oraclize_setCustomGasPrice(10000000000)](../../contracts/oracle.sol#L82)\n\t- [oraclize_setProof(proofType_Native)](../../contracts/oracle.sol#L83)\n\tState variables written after the call(s):\n\t- [usingOraclize.OAR](../../contracts/externals/oraclizeAPI_0.5.sol#L277) in [oraclize_setProof(proofType_Native)](../../contracts/oracle.sol#L83)\n\t- [usingOraclize.oraclize](../../contracts/externals/oraclizeAPI_0.5.sol#L276) in [oraclize_setProof(proofType_Native)](../../contracts/oracle.sol#L83)\n", "id": "145e9d5c8d484249fb333dd150e5769fb409316350e7126dbd818f67cd953b4c", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseRate", "source_mapping": {"start": 6977, "length": 877, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_parseRate(string)"}}, {"type": "node", "name": "body.split(:.toSlice())", "source_mapping": {"start": 7510, "length": 25, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [162], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseRate", "source_mapping": {"start": 6977, "length": 877, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_parseRate(string)"}}}}], "description": "Oracle._parseRate(string) (../../contracts/oracle.sol#152-169) ignores return value by body.split(:.toSlice()) (../../contracts/oracle.sol#162)\n", "markdown": "[Oracle._parseRate(string)](../../contracts/oracle.sol#L152-L169) ignores return value by [body.split(:.toSlice())](../../contracts/oracle.sol#L162)\n", "id": "4f4dde8e09b7fab422ef8516964bd57199df1959fa65c0853e5a163c6a292488", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseRate", "source_mapping": {"start": 6977, "length": 877, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_parseRate(string)"}}, {"type": "node", "name": "body.until(}.toSlice())", "source_mapping": {"start": 7663, "length": 25, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [165], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseRate", "source_mapping": {"start": 6977, "length": 877, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_parseRate(string)"}}}}], "description": "Oracle._parseRate(string) (../../contracts/oracle.sol#152-169) ignores return value by body.until(}.toSlice()) (../../contracts/oracle.sol#165)\n", "markdown": "[Oracle._parseRate(string)](../../contracts/oracle.sol#L152-L169) ignores return value by [body.until(}.toSlice())](../../contracts/oracle.sol#L165)\n", "id": "ecd08aeb7dd4faaa07dc115004766b21c0507249bce3660a1f56e4a94f5b272a", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "__callback", "source_mapping": {"start": 5678, "length": 1151, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "__callback(bytes32,string,bytes)"}}, {"type": "node", "name": "require(bool,string)(msg.sender == oraclize_cbAddress(),sender is not oraclize)", "source_mapping": {"start": 5838, "length": 69, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [126], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "__callback", "source_mapping": {"start": 5678, "length": 1151, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "__callback(bytes32,string,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "delete _queryToToken[_queryID]", "source_mapping": {"start": 6714, "length": 30, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [144], "starting_column": 13, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "__callback", "source_mapping": {"start": 5678, "length": 1151, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "__callback(bytes32,string,bytes)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_queryToToken"}}], "description": "Reentrancy in Oracle.__callback(bytes32,string,bytes) (../../contracts/oracle.sol#124-148):\n\tExternal calls:\n\t- require(bool,string)(msg.sender == oraclize_cbAddress(),sender is not oraclize) (../../contracts/oracle.sol#126)\n\tState variables written after the call(s):\n\t- Oracle._queryToToken (../../contracts/oracle.sol#69) in delete _queryToToken[_queryID] (../../contracts/oracle.sol#144)\n", "markdown": "Reentrancy in [Oracle.__callback(bytes32,string,bytes)](../../contracts/oracle.sol#L124-L148):\n\tExternal calls:\n\t- [require(bool,string)(msg.sender == oraclize_cbAddress(),sender is not oraclize)](../../contracts/oracle.sol#L126)\n\tState variables written after the call(s):\n\t- [Oracle._queryToToken](../../contracts/oracle.sol#L69) in [delete _queryToToken[_queryID]](../../contracts/oracle.sol#L144)\n", "id": "9df9180e83e9fb4f4f4f4624d0e360f81c29ace8d43a3ed948cbcb3d582da0ee", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}, {"type": "node", "name": "queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit)", "source_mapping": {"start": 9309, "length": 101, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [195], "starting_column": 17, "ending_column": 118}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_queryToToken[queryID] = tokenAddresses[i]", "source_mapping": {"start": 9510, "length": 42, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [197], "starting_column": 17, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_queryToToken"}}], "description": "Reentrancy in Oracle._updateTokenRates(uint256) (../../contracts/oracle.sol#173-202):\n\tExternal calls:\n\t- queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit) (../../contracts/oracle.sol#195)\n\tState variables written after the call(s):\n\t- Oracle._queryToToken (../../contracts/oracle.sol#69) in _queryToToken[queryID] = tokenAddresses[i] (../../contracts/oracle.sol#197)\n", "markdown": "Reentrancy in [Oracle._updateTokenRates(uint256)](../../contracts/oracle.sol#L173-L202):\n\tExternal calls:\n\t- [queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit)](../../contracts/oracle.sol#L195)\n\tState variables written after the call(s):\n\t- [Oracle._queryToToken](../../contracts/oracle.sol#L69) in [_queryToToken[queryID] = tokenAddresses[i]](../../contracts/oracle.sol#L197)\n", "id": "13e8648d299dd6174d83a44e5f6780c95921ee5bdcfd52abd4e828e3d4fb6b60", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}, {"type": "node", "name": "queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit)", "source_mapping": {"start": 11357, "length": 104, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [229], "starting_column": 17, "ending_column": 121}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_queryToToken[queryID] = _tokenList[i]", "source_mapping": {"start": 11561, "length": 38, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [231], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_queryToToken"}}], "description": "Reentrancy in Oracle._updateTokenRatesList(uint256,address[]) (../../contracts/oracle.sol#207-236):\n\tExternal calls:\n\t- queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit) (../../contracts/oracle.sol#229)\n\tState variables written after the call(s):\n\t- Oracle._queryToToken (../../contracts/oracle.sol#69) in _queryToToken[queryID] = _tokenList[i] (../../contracts/oracle.sol#231)\n", "markdown": "Reentrancy in [Oracle._updateTokenRatesList(uint256,address[])](../../contracts/oracle.sol#L207-L236):\n\tExternal calls:\n\t- [queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit)](../../contracts/oracle.sol#L229)\n\tState variables written after the call(s):\n\t- [Oracle._queryToToken](../../contracts/oracle.sol#L69) in [_queryToToken[queryID] = _tokenList[i]](../../contracts/oracle.sol#L231)\n", "id": "da706edd3bac0e3f63e079f67abca627c16ffa165e4917efb4aa123a306ae1e0", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}, {"type": "node", "name": "oraclize_setCustomGasPrice(10000000000)", "source_mapping": {"start": 3703, "length": 39, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [82], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "oraclize_setProof(proofType_Native)", "source_mapping": {"start": 3752, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [83], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "oraclize_setProof(proofType_Native)", "source_mapping": {"start": 3752, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [83], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "oraclize_network_name"}}], "description": "Reentrancy in Oracle.constructor(address,address,bytes32,bytes32) (../../contracts/oracle.sol#76-84):\n\tExternal calls:\n\t- oraclize_setCustomGasPrice(10000000000) (../../contracts/oracle.sol#82)\n\t- oraclize_setProof(proofType_Native) (../../contracts/oracle.sol#83)\n\tState variables written after the call(s):\n\t- usingOraclize.oraclize_network_name (../../contracts/externals/oraclizeAPI_0.5.sol#290) in oraclize_setProof(proofType_Native) (../../contracts/oracle.sol#83)\n", "markdown": "Reentrancy in [Oracle.constructor(address,address,bytes32,bytes32)](../../contracts/oracle.sol#L76-L84):\n\tExternal calls:\n\t- [oraclize_setCustomGasPrice(10000000000)](../../contracts/oracle.sol#L82)\n\t- [oraclize_setProof(proofType_Native)](../../contracts/oracle.sol#L83)\n\tState variables written after the call(s):\n\t- [usingOraclize.oraclize_network_name](../../contracts/externals/oraclizeAPI_0.5.sol#L290) in [oraclize_setProof(proofType_Native)](../../contracts/oracle.sol#L83)\n", "id": "cc09cdd29bfde97f27d2a5d4f189b6763e920a5c3f9b9b64dcd985fd076b1c29", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}, {"type": "node", "name": "oraclize_getPrice(URL) * tokenAddresses.length > address(this).balance", "source_mapping": {"start": 8427, "length": 72, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [180], "starting_column": 20, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle._updateTokenRates(uint256) (../../contracts/oracle.sol#173-202):\n\tExternal calls:\n\t- oraclize_getPrice(URL) * tokenAddresses.length > address(this).balance (../../contracts/oracle.sol#180)\n\tEvent emitted after the call(s):\n\t- FailedUpdateRequest(insufficient balance) (../../contracts/oracle.sol#182)\n", "markdown": "Reentrancy in [Oracle._updateTokenRates(uint256)](../../contracts/oracle.sol#L173-L202):\n\tExternal calls:\n\t- [oraclize_getPrice(URL) * tokenAddresses.length > address(this).balance](../../contracts/oracle.sol#L180)\n\tEvent emitted after the call(s):\n\t- [FailedUpdateRequest(insufficient balance)](../../contracts/oracle.sol#L182)\n", "id": "b1b260294a9174a034f41084a4052fd8534e81b54c6f21119a3dbff8d7863521", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}, {"type": "node", "name": "queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit)", "source_mapping": {"start": 9309, "length": 101, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [195], "starting_column": 17, "ending_column": 118}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRates", "source_mapping": {"start": 8025, "length": 1670, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRates(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle._updateTokenRates(uint256) (../../contracts/oracle.sol#173-202):\n\tExternal calls:\n\t- queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit) (../../contracts/oracle.sol#195)\n\tEvent emitted after the call(s):\n\t- RequestedUpdate(sym.toString(),queryID) (../../contracts/oracle.sol#199)\n", "markdown": "Reentrancy in [Oracle._updateTokenRates(uint256)](../../contracts/oracle.sol#L173-L202):\n\tExternal calls:\n\t- [queryID = oraclize_query(URL,apiPrefix.concat(sym).toSlice().concat(apiSuffix),_gasLimit)](../../contracts/oracle.sol#L195)\n\tEvent emitted after the call(s):\n\t- [RequestedUpdate(sym.toString(),queryID)](../../contracts/oracle.sol#L199)\n", "id": "6adade20a88d6343b2632a13a9d9788fbabed5c3ebcb245965fdaba0d8bf0683", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}, {"type": "node", "name": "oraclize_getPrice(URL) * _tokenList.length > address(this).balance", "source_mapping": {"start": 10341, "length": 68, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [213], "starting_column": 20, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle._updateTokenRatesList(uint256,address[]) (../../contracts/oracle.sol#207-236):\n\tExternal calls:\n\t- oraclize_getPrice(URL) * _tokenList.length > address(this).balance (../../contracts/oracle.sol#213)\n\tEvent emitted after the call(s):\n\t- FailedUpdateRequest(insufficient balance) (../../contracts/oracle.sol#215)\n", "markdown": "Reentrancy in [Oracle._updateTokenRatesList(uint256,address[])](../../contracts/oracle.sol#L207-L236):\n\tExternal calls:\n\t- [oraclize_getPrice(URL) * _tokenList.length > address(this).balance](../../contracts/oracle.sol#L213)\n\tEvent emitted after the call(s):\n\t- [FailedUpdateRequest(insufficient balance)](../../contracts/oracle.sol#L215)\n", "id": "2909537287d7900b02d7b32f1c6b2a6653edc8b431298b6ddca1a183b7e44e28", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}, {"type": "node", "name": "queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit)", "source_mapping": {"start": 11357, "length": 104, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [229], "starting_column": 17, "ending_column": 121}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateTokenRatesList", "source_mapping": {"start": 9967, "length": 1778, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "_updateTokenRatesList(uint256,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle._updateTokenRatesList(uint256,address[]) (../../contracts/oracle.sol#207-236):\n\tExternal calls:\n\t- queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit) (../../contracts/oracle.sol#229)\n\tEvent emitted after the call(s):\n\t- RequestedUpdate(symbol.toString(),queryID) (../../contracts/oracle.sol#233)\n", "markdown": "Reentrancy in [Oracle._updateTokenRatesList(uint256,address[])](../../contracts/oracle.sol#L207-L236):\n\tExternal calls:\n\t- [queryID = oraclize_query(URL,apiPrefix.concat(symbol).toSlice().concat(apiSuffix),_gasLimit)](../../contracts/oracle.sol#L229)\n\tEvent emitted after the call(s):\n\t- [RequestedUpdate(symbol.toString(),queryID)](../../contracts/oracle.sol#L233)\n", "id": "bf326ce0611dc01df71ad8ca5b23dc151821feb54aef0708d7e80a25e7fa66a5", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 5209, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [114, 115, 116, 117], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,_asset,_amount)", "source_mapping": {"start": 5307, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [115], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 5209, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [114, 115, 116, 117], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle.claim(address,address,uint256) (../../contracts/oracle.sol#114-117):\n\tExternal calls:\n\t- _safeTransfer(_to,_asset,_amount) (../../contracts/oracle.sol#115)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_asset,_amount) (../../contracts/oracle.sol#116)\n", "markdown": "Reentrancy in [Oracle.claim(address,address,uint256)](../../contracts/oracle.sol#L114-L117):\n\tExternal calls:\n\t- [_safeTransfer(_to,_asset,_amount)](../../contracts/oracle.sol#L115)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_asset,_amount)](../../contracts/oracle.sol#L116)\n", "id": "838fe2f76c9ca9ef6c6eda4cb6ddf4deb7e543fec73cd14ac51d596b11078c69", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "setCustomGasPrice", "source_mapping": {"start": 4235, "length": 173, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [95, 96, 97, 98], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "setCustomGasPrice(uint256)"}}, {"type": "node", "name": "oraclize_setCustomGasPrice(_gasPrice)", "source_mapping": {"start": 4315, "length": 37, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [96], "starting_column": 9, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "setCustomGasPrice", "source_mapping": {"start": 4235, "length": 173, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [95, 96, 97, 98], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "setCustomGasPrice(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Oracle.setCustomGasPrice(uint256) (../../contracts/oracle.sol#95-98):\n\tExternal calls:\n\t- oraclize_setCustomGasPrice(_gasPrice) (../../contracts/oracle.sol#96)\n\tEvent emitted after the call(s):\n\t- SetGasPrice(msg.sender,_gasPrice) (../../contracts/oracle.sol#97)\n", "markdown": "Reentrancy in [Oracle.setCustomGasPrice(uint256)](../../contracts/oracle.sol#L95-L98):\n\tExternal calls:\n\t- [oraclize_setCustomGasPrice(_gasPrice)](../../contracts/oracle.sol#L96)\n\tEvent emitted after the call(s):\n\t- [SetGasPrice(msg.sender,_gasPrice)](../../contracts/oracle.sol#L97)\n", "id": "1f16da36cf525f60bbd52331dcd028bbc997552faa9539c6006d85d4211825c8", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}, {"type": "node", "name": "oraclize_setCustomGasPrice(10000000000)", "source_mapping": {"start": 3703, "length": 39, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [82], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 3210, "length": 584, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [76, 77, 78, 79, 80, 81, 82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1225, "length": 15495, "filename_used": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_relative": "../../contracts/oracle.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/oracle.sol", "filename_short": "../../contracts/oracle.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,bytes32,bytes32)"}}}}], "description": "Oracle.constructor(address,address,bytes32,bytes32) (../../contracts/oracle.sol#76-84) uses literals with too many digits:\n\t- oraclize_setCustomGasPrice(10000000000) (../../contracts/oracle.sol#82)\n", "markdown": "[Oracle.constructor(address,address,bytes32,bytes32)](../../contracts/oracle.sol#L76-L84) uses literals with too many digits:\n\t- [oraclize_setCustomGasPrice(10000000000)](../../contracts/oracle.sol#L82)\n", "id": "39e1f7c58a43e434eef6b268ca3ad4ef0c74e291b3e4365b652aa7ce7191ec0e", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "burn", "source_mapping": {"start": 2873, "length": 841, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}}, "signature": "burn(address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,redeemableAddresses[i],redeemableAmount)", "source_mapping": {"start": 3518, "length": 60, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [79], "starting_column": 17, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "burn", "source_mapping": {"start": 2873, "length": 841, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}}, "signature": "burn(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Holder.burn(address,uint256) (../../contracts/holder.sol#68-85):\n\tExternal calls:\n\t- _safeTransfer(_to,redeemableAddresses[i],redeemableAmount) (../../contracts/holder.sol#79)\n\tEvent emitted after the call(s):\n\t- CashAndBurned(_to,redeemableAddresses[i],redeemableAmount) (../../contracts/holder.sol#80)\n", "markdown": "Reentrancy in [Holder.burn(address,uint256)](../../contracts/holder.sol#L68-L85):\n\tExternal calls:\n\t- [_safeTransfer(_to,redeemableAddresses[i],redeemableAmount)](../../contracts/holder.sol#L79)\n\tEvent emitted after the call(s):\n\t- [CashAndBurned(_to,redeemableAddresses[i],redeemableAmount)](../../contracts/holder.sol#L80)\n", "id": "4883d8b5f0464e37fdee3911105f426388438b40a07ad77752f94dd83c9015d3", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "nonRedeemableTokenClaim", "source_mapping": {"start": 3964, "length": 667, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}}, "signature": "nonRedeemableTokenClaim(address,address[])"}}, {"type": "node", "name": "_safeTransfer(_to,_nonRedeemableAddresses[i],claimBalance)", "source_mapping": {"start": 4441, "length": 60, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [96], "starting_column": 17, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "nonRedeemableTokenClaim", "source_mapping": {"start": 3964, "length": 667, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1249, "length": 3565, "filename_used": "/contracts/tools/slither/../../contracts/holder.sol", "filename_relative": "../../contracts/holder.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/holder.sol", "filename_short": "../../contracts/holder.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 1, "ending_column": 2}}, "signature": "nonRedeemableTokenClaim(address,address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Holder.nonRedeemableTokenClaim(address,address[]) (../../contracts/holder.sol#90-102):\n\tExternal calls:\n\t- _safeTransfer(_to,_nonRedeemableAddresses[i],claimBalance) (../../contracts/holder.sol#96)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_nonRedeemableAddresses[i],claimBalance) (../../contracts/holder.sol#97)\n", "markdown": "Reentrancy in [Holder.nonRedeemableTokenClaim(address,address[])](../../contracts/holder.sol#L90-L102):\n\tExternal calls:\n\t- [_safeTransfer(_to,_nonRedeemableAddresses[i],claimBalance)](../../contracts/holder.sol#L96)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_nonRedeemableAddresses[i],claimBalance)](../../contracts/holder.sol#L97)\n", "id": "57c506c68402acae21cf8e3fa44add5ed8951c98dbce2513119f4f104634637a", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 34426, "length": 1540, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}, {"type": "node", "name": "amountToSend = _amount.mul(rate).div(magnitude)", "source_mapping": {"start": 35317, "length": 47, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [768], "starting_column": 13, "ending_column": 60}, "type_specific_fields": {"parent": {"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 34426, "length": 1540, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}}}, {"type": "node", "name": "amountToSend.mul(stablecoinMagnitude).div(stablecoinRate)", "source_mapping": {"start": 35895, "length": 64, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [777], "starting_column": 9, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 34426, "length": 1540, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}}}], "description": "Wallet.convertToStablecoin(address,uint256) (../../contracts/wallet.sol#752-778) performs a multiplication on the result of a division:\n\t-amountToSend = _amount.mul(rate).div(magnitude) (../../contracts/wallet.sol#768)\n\t-amountToSend.mul(stablecoinMagnitude).div(stablecoinRate) (../../contracts/wallet.sol#777)\n", "markdown": "[Wallet.convertToStablecoin(address,uint256)](../../contracts/wallet.sol#L752-L778) performs a multiplication on the result of a division:\n\t-[amountToSend = _amount.mul(rate).div(magnitude)](../../contracts/wallet.sol#L768)\n\t-[amountToSend.mul(stablecoinMagnitude).div(stablecoinRate)](../../contracts/wallet.sol#L777)\n", "id": "9427e4fd8ac32b25bff5654b20554c8b328211491d3e5cc716ff823d44447352", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_tokenWhitelistNode", "source_mapping": {"start": 21797, "length": 27, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [503], "starting_column": 35, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "_initializeLoadLimit", "source_mapping": {"start": 21767, "length": 464, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [503, 504, 505, 506, 507, 508, 509], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "LoadLimit", "source_mapping": {"start": 19681, "length": 2552, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510], "starting_column": 1, "ending_column": 2}}, "signature": "_initializeLoadLimit(bytes32)"}}}}, {"type": "variable", "name": "_tokenWhitelistNode", "source_mapping": {"start": 1132, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/internals/tokenWhitelistable.sol", "filename_relative": "../../contracts/internals/tokenWhitelistable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/tokenWhitelistable.sol", "filename_short": "../../contracts/internals/tokenWhitelistable.sol", "is_dependency": false, "lines": [29], "starting_column": 5, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelistable", "source_mapping": {"start": 998, "length": 4648, "filename_used": "/contracts/tools/slither/../../contracts/internals/tokenWhitelistable.sol", "filename_relative": "../../contracts/internals/tokenWhitelistable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/tokenWhitelistable.sol", "filename_short": "../../contracts/internals/tokenWhitelistable.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}}}], "description": "LoadLimit._initializeLoadLimit(bytes32)._tokenWhitelistNode (../../contracts/wallet.sol#503) shadows:\n\t- TokenWhitelistable._tokenWhitelistNode (../../contracts/internals/tokenWhitelistable.sol#29) (state variable)\n", "markdown": "[LoadLimit._initializeLoadLimit(bytes32)._tokenWhitelistNode](../../contracts/wallet.sol#L503) shadows:\n\t- [TokenWhitelistable._tokenWhitelistNode](../../contracts/internals/tokenWhitelistable.sol#L29) (state variable)\n", "id": "8f15cbf6d24a4b17962fde5591cd20736fc2ed8d234ab44f7ef3eab547790f4e", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 13279, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [277, 278, 279, 280], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelist", "source_mapping": {"start": 1938, "length": 15854, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,_asset,_amount)", "source_mapping": {"start": 13377, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [278], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 13279, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [277, 278, 279, 280], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelist", "source_mapping": {"start": 1938, "length": 15854, "filename_used": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_relative": "../../contracts/tokenWhitelist.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/tokenWhitelist.sol", "filename_short": "../../contracts/tokenWhitelist.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in TokenWhitelist.claim(address,address,uint256) (../../contracts/tokenWhitelist.sol#277-280):\n\tExternal calls:\n\t- _safeTransfer(_to,_asset,_amount) (../../contracts/tokenWhitelist.sol#278)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_asset,_amount) (../../contracts/tokenWhitelist.sol#279)\n", "markdown": "Reentrancy in [TokenWhitelist.claim(address,address,uint256)](../../contracts/tokenWhitelist.sol#L277-L280):\n\tExternal calls:\n\t- [_safeTransfer(_to,_asset,_amount)](../../contracts/tokenWhitelist.sol#L278)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_asset,_amount)](../../contracts/tokenWhitelist.sol#L279)\n", "id": "2ca6fdd6302454fdf9a41e8c3cc4452a5a1dbee301b2675f010d9d2966e80e75", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeRelayedTransaction", "source_mapping": {"start": 26519, "length": 1111, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeRelayedTransaction(uint256,bytes,bytes)"}}, {"type": "node", "name": "(success,returndata) = address(this).call(_data)", "source_mapping": {"start": 27449, "length": 67, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [614], "starting_column": 9, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "executeRelayedTransaction", "source_mapping": {"start": 26519, "length": 1111, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeRelayedTransaction(uint256,bytes,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Wallet.executeRelayedTransaction(uint256,bytes,bytes) (../../contracts/wallet.sol#599-618):\n\tExternal calls:\n\t- (success,returndata) = address(this).call(_data) (../../contracts/wallet.sol#614)\n\tEvent emitted after the call(s):\n\t- ExecutedRelayedTransaction(_data,returndata) (../../contracts/wallet.sol#617)\n", "markdown": "Reentrancy in [Wallet.executeRelayedTransaction(uint256,bytes,bytes)](../../contracts/wallet.sol#L599-L618):\n\tExternal calls:\n\t- [(success,returndata) = address(this).call(_data)](../../contracts/wallet.sol#L614)\n\tEvent emitted after the call(s):\n\t- [ExecutedRelayedTransaction(_data,returndata)](../../contracts/wallet.sol#L617)\n", "id": "112c5438d3b21ae470128028e431b55e0dc8b1fe0ce27241678cf1122edc4e27", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeTransaction", "source_mapping": {"start": 36226, "length": 1934, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}, {"type": "node", "name": "ERC20(_destination).callOptionalReturn(_data)", "source_mapping": {"start": 37535, "length": 45, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [804], "starting_column": 13, "ending_column": 58}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 36226, "length": 1934, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Wallet.executeTransaction(address,uint256,bytes) (../../contracts/wallet.sol#784-820):\n\tExternal calls:\n\t- ERC20(_destination).callOptionalReturn(_data) (../../contracts/wallet.sol#804)\n\tEvent emitted after the call(s):\n\t- ExecutedTransaction(_destination,_value,_data,b) (../../contracts/wallet.sol#810)\n", "markdown": "Reentrancy in [Wallet.executeTransaction(address,uint256,bytes)](../../contracts/wallet.sol#L784-L820):\n\tExternal calls:\n\t- [ERC20(_destination).callOptionalReturn(_data)](../../contracts/wallet.sol#L804)\n\tEvent emitted after the call(s):\n\t- [ExecutedTransaction(_destination,_value,_data,b)](../../contracts/wallet.sol#L810)\n", "id": "90922d797d564ffa148dd8a01afcc923d8a2f2c9f27b82661bb31094cb90a9fe", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeTransaction", "source_mapping": {"start": 36226, "length": 1934, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}, {"type": "node", "name": "(success,returndata) = _destination.call.value(_value)(_data)", "source_mapping": {"start": 37854, "length": 80, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [814], "starting_column": 9, "ending_column": 89}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 36226, "length": 1934, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Wallet.executeTransaction(address,uint256,bytes) (../../contracts/wallet.sol#784-820):\n\tExternal calls:\n\t- (success,returndata) = _destination.call.value(_value)(_data) (../../contracts/wallet.sol#814)\n\tEvent emitted after the call(s):\n\t- ExecutedTransaction(_destination,_value,_data,returndata) (../../contracts/wallet.sol#817)\n", "markdown": "Reentrancy in [Wallet.executeTransaction(address,uint256,bytes)](../../contracts/wallet.sol#L784-L820):\n\tExternal calls:\n\t- [(success,returndata) = _destination.call.value(_value)(_data)](../../contracts/wallet.sol#L814)\n\tEvent emitted after the call(s):\n\t- [ExecutedTransaction(_destination,_value,_data,returndata)](../../contracts/wallet.sol#L817)\n", "id": "1ae3f304d8052577f82d9d3898acef327ffddc3b8b02c5cc38f30bc9a52d0377", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 29390, "length": 943, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}, {"type": "node", "name": "ERC20(_asset).safeApprove(licenceAddress,_amount)", "source_mapping": {"start": 30066, "length": 50, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [668], "starting_column": 13, "ending_column": 63}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 29390, "length": 943, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ILicence(licenceAddress).load(_asset,_amount)", "source_mapping": {"start": 30130, "length": 46, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [669], "starting_column": 13, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 29390, "length": 943, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ILicence(licenceAddress).load.value(_amount)(_asset,_amount)", "source_mapping": {"start": 30207, "length": 61, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [671], "starting_column": 13, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 29390, "length": 943, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ILicence(licenceAddress).load.value(_amount)(_asset,_amount)", "source_mapping": {"start": 30207, "length": 61, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [671], "starting_column": 13, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 29390, "length": 943, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}], "description": "Reentrancy in Wallet.loadTokenCard(address,uint256) (../../contracts/wallet.sol#658-675):\n\tExternal calls:\n\t- ERC20(_asset).safeApprove(licenceAddress,_amount) (../../contracts/wallet.sol#668)\n\t- ILicence(licenceAddress).load(_asset,_amount) (../../contracts/wallet.sol#669)\n\t- ILicence(licenceAddress).load.value(_amount)(_asset,_amount) (../../contracts/wallet.sol#671)\n\tExternal calls sending eth:\n\t- ILicence(licenceAddress).load.value(_amount)(_asset,_amount) (../../contracts/wallet.sol#671)\n\tEvent emitted after the call(s):\n\t- LoadedTokenCard(_asset,_amount) (../../contracts/wallet.sol#674)\n", "markdown": "Reentrancy in [Wallet.loadTokenCard(address,uint256)](../../contracts/wallet.sol#L658-L675):\n\tExternal calls:\n\t- [ERC20(_asset).safeApprove(licenceAddress,_amount)](../../contracts/wallet.sol#L668)\n\t- [ILicence(licenceAddress).load(_asset,_amount)](../../contracts/wallet.sol#L669)\n\t- [ILicence(licenceAddress).load.value(_amount)(_asset,_amount)](../../contracts/wallet.sol#L671)\n\tExternal calls sending eth:\n\t- [ILicence(licenceAddress).load.value(_amount)(_asset,_amount)](../../contracts/wallet.sol#L671)\n\tEvent emitted after the call(s):\n\t- [LoadedTokenCard(_asset,_amount)](../../contracts/wallet.sol#L674)\n", "id": "32a5001c60ea652a4680686ea61a7e6e110e48a9a1e1faba88e96733c4931e27", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "transfer", "source_mapping": {"start": 38964, "length": 1097, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "transfer(address,address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,_asset,_amount)", "source_mapping": {"start": 39935, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [853], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "transfer", "source_mapping": {"start": 38964, "length": 1097, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "transfer(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Wallet.transfer(address,address,uint256) (../../contracts/wallet.sol#836-856):\n\tExternal calls:\n\t- _safeTransfer(_to,_asset,_amount) (../../contracts/wallet.sol#853)\n\tEvent emitted after the call(s):\n\t- Transferred(_to,_asset,_amount) (../../contracts/wallet.sol#855)\n", "markdown": "Reentrancy in [Wallet.transfer(address,address,uint256)](../../contracts/wallet.sol#L836-L856):\n\tExternal calls:\n\t- [_safeTransfer(_to,_asset,_amount)](../../contracts/wallet.sol#L853)\n\tEvent emitted after the call(s):\n\t- [Transferred(_to,_asset,_amount)](../../contracts/wallet.sol#L855)\n", "id": "aac85d47c8d408d9a538125346dbc9950619776bd96e62f1f93385989c8b065b", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "topUpGas", "source_mapping": {"start": 30715, "length": 425, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [684, 685, 686, 687, 688, 689, 690, 691], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "topUpGas(uint256)"}}, {"type": "node", "name": "owner().transfer(_amount)", "source_mapping": {"start": 31014, "length": 25, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [688], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "topUpGas", "source_mapping": {"start": 30715, "length": 425, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [684, 685, 686, 687, 688, 689, 690, 691], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "topUpGas(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Wallet.topUpGas(uint256) (../../contracts/wallet.sol#684-691):\n\tExternal calls:\n\t- owner().transfer(_amount) (../../contracts/wallet.sol#688)\n\tEvent emitted after the call(s):\n\t- ToppedUpGas(msg.sender,owner(),_amount) (../../contracts/wallet.sol#690)\n", "markdown": "Reentrancy in [Wallet.topUpGas(uint256)](../../contracts/wallet.sol#L684-L691):\n\tExternal calls:\n\t- [owner().transfer(_amount)](../../contracts/wallet.sol#L688)\n\tEvent emitted after the call(s):\n\t- [ToppedUpGas(msg.sender,owner(),_amount)](../../contracts/wallet.sol#L690)\n", "id": "136c6d6739199960ae0bf308fce78ecb212a08fa6e6c014bcbd923c4f0015046", "check": "reentrancy-unlimited-gas", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "batchExecuteTransaction", "source_mapping": {"start": 31472, "length": 2016, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22334, "length": 17729, "filename_used": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_relative": "../../contracts/wallet.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/wallet.sol", "filename_short": "../../contracts/wallet.sol", "is_dependency": false, "lines": [514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857], "starting_column": 1, "ending_column": 2}}, "signature": "batchExecuteTransaction(bytes)"}}], "description": "batchExecuteTransaction(bytes) should be declared external:\n\t- Wallet.batchExecuteTransaction(bytes) (../../contracts/wallet.sol#697-732)\n", "markdown": "batchExecuteTransaction(bytes) should be declared external:\n\t- [Wallet.batchExecuteTransaction(bytes)](../../contracts/wallet.sol#L697-L732)\n", "id": "25be393b22a852005aebc844d44187435f0cfff81e7632ced668dd912f0e2261", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 9073, "length": 36, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [215], "starting_column": 17, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}}, {"type": "node", "name": "_cryptoFloat.transfer(loadAmount)", "source_mapping": {"start": 9127, "length": 33, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [216], "starting_column": 17, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}}], "description": "Licence.load(address,uint256) (../../contracts/licence.sol#201-223) sends eth to arbitrary user\n\tDangerous calls:\n\t- _tokenHolder.transfer(licenceAmount) (../../contracts/licence.sol#215)\n\t- _cryptoFloat.transfer(loadAmount) (../../contracts/licence.sol#216)\n", "markdown": "[Licence.load(address,uint256)](../../contracts/licence.sol#L201-L223) sends eth to arbitrary user\n\tDangerous calls:\n\t- [_tokenHolder.transfer(licenceAmount)](../../contracts/licence.sol#L215)\n\t- [_cryptoFloat.transfer(loadAmount)](../../contracts/licence.sol#L216)\n", "id": "77a1d9fb3657ae0373a1ee2191c5fba1c04170d16f4a8c073a174eedb2b6bc4b", "check": "arbitrary-send", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 7038, "length": 195, "filename_used": "/contracts/tools/slither/../../contracts/controller.sol", "filename_relative": "../../contracts/controller.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/controller.sol", "filename_short": "../../contracts/controller.sol", "is_dependency": false, "lines": [186, 187, 188, 189], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Controller", "source_mapping": {"start": 1459, "length": 5776, "filename_used": "/contracts/tools/slither/../../contracts/controller.sol", "filename_relative": "../../contracts/controller.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/controller.sol", "filename_short": "../../contracts/controller.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,_asset,_amount)", "source_mapping": {"start": 7147, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/controller.sol", "filename_relative": "../../contracts/controller.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/controller.sol", "filename_short": "../../contracts/controller.sol", "is_dependency": false, "lines": [187], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 7038, "length": 195, "filename_used": "/contracts/tools/slither/../../contracts/controller.sol", "filename_relative": "../../contracts/controller.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/controller.sol", "filename_short": "../../contracts/controller.sol", "is_dependency": false, "lines": [186, 187, 188, 189], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Controller", "source_mapping": {"start": 1459, "length": 5776, "filename_used": "/contracts/tools/slither/../../contracts/controller.sol", "filename_relative": "../../contracts/controller.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/controller.sol", "filename_short": "../../contracts/controller.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Controller.claim(address,address,uint256) (../../contracts/controller.sol#186-189):\n\tExternal calls:\n\t- _safeTransfer(_to,_asset,_amount) (../../contracts/controller.sol#187)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_asset,_amount) (../../contracts/controller.sol#188)\n", "markdown": "Reentrancy in [Controller.claim(address,address,uint256)](../../contracts/controller.sol#L186-L189):\n\tExternal calls:\n\t- [_safeTransfer(_to,_asset,_amount)](../../contracts/controller.sol#L187)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_asset,_amount)](../../contracts/controller.sol#L188)\n", "id": "ce3e7f890cf7bca36bbe00a4feab6c3793439951e10b882b9c576ec85c6b47d8", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 9459, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [226, 227, 228, 229], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}, {"type": "node", "name": "_safeTransfer(_to,_asset,_amount)", "source_mapping": {"start": 9557, "length": 35, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [227], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 9459, "length": 184, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [226, 227, 228, 229], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Licence.claim(address,address,uint256) (../../contracts/licence.sol#226-229):\n\tExternal calls:\n\t- _safeTransfer(_to,_asset,_amount) (../../contracts/licence.sol#227)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_asset,_amount) (../../contracts/licence.sol#228)\n", "markdown": "Reentrancy in [Licence.claim(address,address,uint256)](../../contracts/licence.sol#L226-L229):\n\tExternal calls:\n\t- [_safeTransfer(_to,_asset,_amount)](../../contracts/licence.sol#L227)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_asset,_amount)](../../contracts/licence.sol#L228)\n", "id": "fdf2fa6addf7bef04edc254acc324db73f2332629d733ef61923875a75322877", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)", "source_mapping": {"start": 8795, "length": 71, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [211], "starting_column": 17, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8884, "length": 68, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [212], "starting_column": 17, "ending_column": 85}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 9073, "length": 36, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [215], "starting_column": 17, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_cryptoFloat.transfer(loadAmount)", "source_mapping": {"start": 9127, "length": 33, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [216], "starting_column": 17, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}], "description": "Reentrancy in Licence.load(address,uint256) (../../contracts/licence.sol#201-223):\n\tExternal calls:\n\t- ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount) (../../contracts/licence.sol#211)\n\t- ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount) (../../contracts/licence.sol#212)\n\tExternal calls sending eth:\n\t- _tokenHolder.transfer(licenceAmount) (../../contracts/licence.sol#215)\n\t- _cryptoFloat.transfer(loadAmount) (../../contracts/licence.sol#216)\n\tEvent emitted after the call(s):\n\t- TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount) (../../contracts/licence.sol#219)\n", "markdown": "Reentrancy in [Licence.load(address,uint256)](../../contracts/licence.sol#L201-L223):\n\tExternal calls:\n\t- [ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)](../../contracts/licence.sol#L211)\n\t- [ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)](../../contracts/licence.sol#L212)\n\tExternal calls sending eth:\n\t- [_tokenHolder.transfer(licenceAmount)](../../contracts/licence.sol#L215)\n\t- [_cryptoFloat.transfer(loadAmount)](../../contracts/licence.sol#L216)\n\tEvent emitted after the call(s):\n\t- [TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount)](../../contracts/licence.sol#L219)\n", "id": "28ebff565ba397e67049a43ee60fda046211b31c5ab61b7ccbe89ddf6bbc5224", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8489, "length": 68, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [205], "starting_column": 13, "ending_column": 81}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)", "source_mapping": {"start": 8795, "length": 71, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [211], "starting_column": 17, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8884, "length": 68, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [212], "starting_column": 17, "ending_column": 85}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 9073, "length": 36, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [215], "starting_column": 17, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_cryptoFloat.transfer(loadAmount)", "source_mapping": {"start": 9127, "length": 33, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [216], "starting_column": 17, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}], "description": "Reentrancy in Licence.load(address,uint256) (../../contracts/licence.sol#201-223):\n\tExternal calls:\n\t- ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount) (../../contracts/licence.sol#205)\n\t- ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount) (../../contracts/licence.sol#211)\n\t- ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount) (../../contracts/licence.sol#212)\n\tExternal calls sending eth:\n\t- _tokenHolder.transfer(licenceAmount) (../../contracts/licence.sol#215)\n\t- _cryptoFloat.transfer(loadAmount) (../../contracts/licence.sol#216)\n\tEvent emitted after the call(s):\n\t- TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount) (../../contracts/licence.sol#222)\n", "markdown": "Reentrancy in [Licence.load(address,uint256)](../../contracts/licence.sol#L201-L223):\n\tExternal calls:\n\t- [ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)](../../contracts/licence.sol#L205)\n\t- [ERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)](../../contracts/licence.sol#L211)\n\t- [ERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)](../../contracts/licence.sol#L212)\n\tExternal calls sending eth:\n\t- [_tokenHolder.transfer(licenceAmount)](../../contracts/licence.sol#L215)\n\t- [_cryptoFloat.transfer(loadAmount)](../../contracts/licence.sol#L216)\n\tEvent emitted after the call(s):\n\t- [TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount)](../../contracts/licence.sol#L222)\n", "id": "8e611627c7652f109a6f7e6ff68b283f6b4f2cc70302d7daadca9664108f8cef", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 9073, "length": 36, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [215], "starting_column": 17, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_cryptoFloat.transfer(loadAmount)", "source_mapping": {"start": 9127, "length": 33, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [216], "starting_column": 17, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8283, "length": 1087, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1380, "length": 8966, "filename_used": "/contracts/tools/slither/../../contracts/licence.sol", "filename_relative": "../../contracts/licence.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/licence.sol", "filename_short": "../../contracts/licence.sol", "is_dependency": false, "lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}], "description": "Reentrancy in Licence.load(address,uint256) (../../contracts/licence.sol#201-223):\n\tExternal calls:\n\t- _tokenHolder.transfer(licenceAmount) (../../contracts/licence.sol#215)\n\t- _cryptoFloat.transfer(loadAmount) (../../contracts/licence.sol#216)\n\tEvent emitted after the call(s):\n\t- TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount) (../../contracts/licence.sol#219)\n\t- TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount) (../../contracts/licence.sol#222)\n", "markdown": "Reentrancy in [Licence.load(address,uint256)](../../contracts/licence.sol#L201-L223):\n\tExternal calls:\n\t- [_tokenHolder.transfer(licenceAmount)](../../contracts/licence.sol#L215)\n\t- [_cryptoFloat.transfer(loadAmount)](../../contracts/licence.sol#L216)\n\tEvent emitted after the call(s):\n\t- [TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount)](../../contracts/licence.sol#L219)\n\t- [TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount)](../../contracts/licence.sol#L222)\n", "id": "a30148aae0f13c5bced5d249c6284bb19c3ef27d698547440c3a3058773e258b", "check": "reentrancy-unlimited-gas", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "controllerNode", "source_mapping": {"start": 1778, "length": 95, "filename_used": "/contracts/tools/slither/../../contracts/internals/controllable.sol", "filename_relative": "../../contracts/internals/controllable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/controllable.sol", "filename_short": "../../contracts/internals/controllable.sol", "is_dependency": false, "lines": [48, 49, 50], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Controllable", "source_mapping": {"start": 995, "length": 1770, "filename_used": "/contracts/tools/slither/../../contracts/internals/controllable.sol", "filename_relative": "../../contracts/internals/controllable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/controllable.sol", "filename_short": "../../contracts/internals/controllable.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71], "starting_column": 1, "ending_column": 2}}, "signature": "controllerNode()"}}], "description": "controllerNode() should be declared external:\n\t- Controllable.controllerNode() (../../contracts/internals/controllable.sol#48-50)\n", "markdown": "controllerNode() should be declared external:\n\t- [Controllable.controllerNode()](../../contracts/internals/controllable.sol#L48-L50)\n", "id": "d13a5d67fbaa6821edc17da5f446b38ce126b2b8abcbc3c21b79428186db1d29", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "owner", "source_mapping": {"start": 3508, "length": 85, "filename_used": "/contracts/tools/slither/../../contracts/internals/ownable.sol", "filename_relative": "../../contracts/internals/ownable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/ownable.sol", "filename_short": "../../contracts/internals/ownable.sol", "is_dependency": false, "lines": [81, 82, 83], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ownable", "source_mapping": {"start": 1190, "length": 3110, "filename_used": "/contracts/tools/slither/../../contracts/internals/ownable.sol", "filename_relative": "../../contracts/internals/ownable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/ownable.sol", "filename_short": "../../contracts/internals/ownable.sol", "is_dependency": false, "lines": [28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101], "starting_column": 1, "ending_column": 2}}, "signature": "owner()"}}], "description": "owner() should be declared external:\n\t- Ownable.owner() (../../contracts/internals/ownable.sol#81-83)\n", "markdown": "owner() should be declared external:\n\t- [Ownable.owner()](../../contracts/internals/ownable.sol#L81-L83)\n", "id": "698811821ed34357d834c197b976565a1354eaff150bcbc8a352f2d8c7df57f3", "check": "external-function", "impact": "Optimization", "confidence": "High"}] \ No newline at end of file