From 055aa60f4016a538d9a9f4c9548bb020f9cdeabe Mon Sep 17 00:00:00 2001 From: Riccardo Persiani Date: Mon, 7 Sep 2020 21:55:15 +0200 Subject: [PATCH 1/3] Add balance check for gas top up --- contracts/wallet.sol | 2 + .../mocks/isValidSignatureExporter.go | 2 +- pkg/bindings/wallet.go | 2 +- pkg/bindings/walletDeployer.go | 2 +- test/wallet/top_up_gas_test.go | 42 +++++++++++++++++++ 5 files changed, 47 insertions(+), 3 deletions(-) diff --git a/contracts/wallet.sol b/contracts/wallet.sol index 9c9ac2a5..73e73ee1 100644 --- a/contracts/wallet.sol +++ b/contracts/wallet.sol @@ -662,6 +662,8 @@ contract Wallet is ENSResolvable, AddressWhitelist, SpendLimit, GasTopUpLimit, L /// @dev Refill owner's gas balance, revert if the transaction amount is too large /// @param _amount is the amount of ether to transfer to the owner account in wei. function topUpGas(uint256 _amount) external isNotZero(_amount) onlyOwnerOrController { + // Check contract balance is sufficient for the operation + require(address(this).balance > _amount, "balance not sufficient"); // Check against the daily spent limit and update accordingly, require that the value is under remaining limit. _gasTopUpLimit._enforceLimit(_amount); // Then perform the transfer diff --git a/pkg/bindings/mocks/isValidSignatureExporter.go b/pkg/bindings/mocks/isValidSignatureExporter.go index bd11a0c9..3de7e857 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\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]" // IsValidSignatureExporterBin is the compiled bytecode used for deploying new contracts. -var IsValidSignatureExporterBin = "0x608060405234801561001057600080fd5b506040516102843803806102848339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561021f806100656000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806320c13b0b14610030575b600080fd5b6100f26004803603604081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9193909290916020810190356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460018302840111640100000000831117156100e757600080fd5b50909250905061010f565b604080516001600160e01b03199092168252519081900360200190f35b60008054604080516320c13b0b60e01b815260048101918252604481018790526001600160a01b03909216916320c13b0b9188918891889188919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f820116905080830192505050965050505050505060206040518083038186803b1580156101b457600080fd5b505afa1580156101c8573d6000803e3d6000fd5b505050506040513d60208110156101de57600080fd5b50519594505050505056fea26469706673582212204f9b44c63ccb4604230e8685c42eca94a9b4cb70cd336ee439f1669c9350e3d464736f6c634300060c0033" +var IsValidSignatureExporterBin = "0x608060405234801561001057600080fd5b506040516102843803806102848339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561021f806100656000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806320c13b0b14610030575b600080fd5b6100f26004803603604081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9193909290916020810190356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460018302840111640100000000831117156100e757600080fd5b50909250905061010f565b604080516001600160e01b03199092168252519081900360200190f35b60008054604080516320c13b0b60e01b815260048101918252604481018790526001600160a01b03909216916320c13b0b9188918891889188919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f820116905080830192505050965050505050505060206040518083038186803b1580156101b457600080fd5b505afa1580156101c8573d6000803e3d6000fd5b505050506040513d60208110156101de57600080fd5b50519594505050505056fea26469706673582212206e19f853f4d2b5df7659558782b485c19ef0ab1fa13a3ee6abcf36eb8f920b2664736f6c634300060c0033" // 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/wallet.go b/pkg/bindings/wallet.go index d369af5f..84cd5ef6 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\":\"_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\"},{\"inputs\":[],\"name\":\"WALLET_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_transactionBatch\",\"type\":\"bytes\"}],\"name\":\"batchExecuteTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"calculateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"cancelWhitelistAddition\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"cancelWhitelistRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmGasTopUpLimitUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmLoadLimitUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmSpendLimitUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"confirmWhitelistAddition\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"confirmWhitelistRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"convertToEther\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"convertToStablecoin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"executeRelayedTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"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\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasTopUpLimitAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasTopUpLimitControllerConfirmationRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasTopUpLimitPending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasTopUpLimitValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"increaseRelayNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"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\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSetWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isTransferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hashedData\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"licenceNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loadLimitAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loadLimitControllerConfirmationRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loadLimitPending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loadLimitValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"loadTokenCard\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingWhitelistAddition\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingWhitelistRemoval\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"relayNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setGasTopUpLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setLoadLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setSpendLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"setWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"spendLimitAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"spendLimitControllerConfirmationRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"spendLimitPending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"spendLimitValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitGasTopUpLimitUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitLoadLimitUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitSpendLimitUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"submitWhitelistAddition\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"submitWhitelistRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submittedWhitelistAddition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submittedWhitelistRemoval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"topUpGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_transferable\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"whitelistArray\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelistMap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]" // WalletBin is the compiled bytecode used for deploying new contracts. -var WalletBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d39660455534801561007957600080fd5b50615d75806200008a6000396000f3fe6080604052600436106103975760003560e01c8063877337b0116101dc578063cccdc55611610102578063e61c51ca116100a0578063f41c43191161006f578063f41c43191461107e578063f4217648146110a8578063f776f51814611123578063f8b2cb4f1461113857610397565b8063e61c51ca14610fc7578063eadd3cea14610ff1578063f36febda1461101b578063f40b51f81461105457610397565b8063d251fefc116100dc578063d251fefc14610f5e578063da84b1ed14610f88578063de212bf314610f9d578063e2b4ce9714610fb257610397565b8063cccdc55614610e71578063cd7958dd14610e86578063ce0b5bd514610f3457610397565b8063b242e5341161017a578063beabacc811610149578063beabacc814610dda578063c4856cd914610e1d578063cbd2ac6814610e32578063cc0e7e5614610e5c57610397565b8063b242e53414610d3c578063b87e21ef14610d77578063bcb8b74a14610db0578063be40ba7914610dc557610397565b80639b0dfd27116101b65780639b0dfd2714610c37578063aaf1fc6214610c4c578063ab20599314610cfd578063b221f31614610d1257610397565b8063877337b014610bf85780638da5cb5b14610c0d57806390e690c714610c2257610397565b80633bfec254116102c15780636137d6701161025f578063747c31d61161022e578063747c31d614610b225780637d73b23114610b375780637d7d004614610b685780637fd004fa14610b7d57610397565b80636137d67014610a0d57806369efdfc014610a88578063715018a614610ae357806374624c5514610af857610397565b806346efe0ed1161029b57806346efe0ed146108e757806347b55a9d146109b95780635adc02ab146109ce5780635d2362a8146109f857610397565b80633bfec254146107cd5780633c672eb7146107f75780633f579f421461082157610397565b806320c13b0b1161033957806326d05ab21161030857806326d05ab2146106f4578063294f40251461070957806332531c3c1461076e5780633a43199f146107a157610397565b806320c13b0b146105d55780632121dc75146106a057806321ce918d146106b55780632587a6a2146106df57610397565b8063100f23fd11610375578063100f23fd146104375780631127b57e146104615780631626ba7e146104eb5780631efd0299146105c057610397565b806301ffc9a71461039c578063027ef3eb146103e45780630f3a85d81461040b575b600080fd5b3480156103a857600080fd5b506103d0600480360360208110156103bf57600080fd5b50356001600160e01b03191661116b565b604080519115158252519081900360200190f35b3480156103f057600080fd5b506103f9611185565b60408051918252519081900360200190f35b34801561041757600080fd5b506104356004803603602081101561042e57600080fd5b503561118b565b005b34801561044357600080fd5b506104356004803603602081101561045a57600080fd5b5035611291565b34801561046d57600080fd5b50610476611436565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104b0578181015183820152602001610498565b50505050905090810190601f1680156104dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104f757600080fd5b506105a36004803603604081101561050e57600080fd5b81359190810190604081016020820135600160201b81111561052f57600080fd5b82018360208201111561054157600080fd5b803590602001918460018302840111600160201b8311171561056257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611457945050505050565b604080516001600160e01b03199092168252519081900360200190f35b3480156105cc57600080fd5b506103f96114c6565b3480156105e157600080fd5b506105a3600480360360408110156105f857600080fd5b810190602081018135600160201b81111561061257600080fd5b82018360208201111561062457600080fd5b803590602001918460018302840111600160201b8311171561064557600080fd5b919390929091602081019035600160201b81111561066257600080fd5b82018360208201111561067457600080fd5b803590602001918460018302840111600160201b8311171561069557600080fd5b5090925090506114d7565b3480156106ac57600080fd5b506103d06115ae565b3480156106c157600080fd5b50610435600480360360208110156106d857600080fd5b50356115be565b3480156106eb57600080fd5b506103f9611656565b34801561070057600080fd5b506103d061165c565b34801561071557600080fd5b5061071e611665565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561075a578181015183820152602001610742565b505050509050019250505060405180910390f35b34801561077a57600080fd5b506103d06004803603602081101561079157600080fd5b50356001600160a01b03166116c7565b610435600480360360408110156107b757600080fd5b506001600160a01b0381351690602001356116dc565b3480156107d957600080fd5b50610435600480360360208110156107f057600080fd5b50356118fc565b34801561080357600080fd5b506104356004803603602081101561081a57600080fd5b50356119ee565b34801561082d57600080fd5b506104766004803603606081101561084457600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561087357600080fd5b82018360208201111561088557600080fd5b803590602001918460018302840111600160201b831117156108a657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a8e945050505050565b3480156108f357600080fd5b506104356004803603606081101561090a57600080fd5b81359190810190604081016020820135600160201b81111561092b57600080fd5b82018360208201111561093d57600080fd5b803590602001918460018302840111600160201b8311171561095e57600080fd5b919390929091602081019035600160201b81111561097b57600080fd5b82018360208201111561098d57600080fd5b803590602001918460018302840111600160201b831117156109ae57600080fd5b509092509050611f61565b3480156109c557600080fd5b5061071e612299565b3480156109da57600080fd5b50610435600480360360208110156109f157600080fd5b50356122f9565b348015610a0457600080fd5b506103f96125c0565b348015610a1957600080fd5b5061043560048036036020811015610a3057600080fd5b810190602081018135600160201b811115610a4a57600080fd5b820183602082011115610a5c57600080fd5b803590602001918460208302840111600160201b83111715610a7d57600080fd5b5090925090506125cc565b348015610a9457600080fd5b50610435600480360360e0811015610aab57600080fd5b506001600160a01b03813581169160208101351515916040820135169060608101359060808101359060a08101359060c001356127f2565b348015610aef57600080fd5b506104356128d6565b348015610b0457600080fd5b5061043560048036036020811015610b1b57600080fd5b50356129d4565b348015610b2e57600080fd5b506103f9612ad2565b348015610b4357600080fd5b50610b4c612ad8565b604080516001600160a01b039092168252519081900360200190f35b348015610b7457600080fd5b506103f9612ae7565b348015610b8957600080fd5b5061043560048036036020811015610ba057600080fd5b810190602081018135600160201b811115610bba57600080fd5b820183602082011115610bcc57600080fd5b803590602001918460208302840111600160201b83111715610bed57600080fd5b509092509050612af3565b348015610c0457600080fd5b506103f9612e35565b348015610c1957600080fd5b50610b4c612e3b565b348015610c2e57600080fd5b50610435612e4a565b348015610c4357600080fd5b506103f9612ea7565b348015610c5857600080fd5b5061043560048036036020811015610c6f57600080fd5b810190602081018135600160201b811115610c8957600080fd5b820183602082011115610c9b57600080fd5b803590602001918460018302840111600160201b83111715610cbc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612ead945050505050565b348015610d0957600080fd5b506103d0612fce565b348015610d1e57600080fd5b5061043560048036036020811015610d3557600080fd5b5035612fd7565b348015610d4857600080fd5b5061043560048036036040811015610d5f57600080fd5b506001600160a01b03813516906020013515156130c1565b348015610d8357600080fd5b506103f960048036036040811015610d9a57600080fd5b506001600160a01b03813516906020013561327b565b348015610dbc57600080fd5b506103d06132ff565b348015610dd157600080fd5b506103d0613308565b348015610de657600080fd5b5061043560048036036060811015610dfd57600080fd5b506001600160a01b03813581169160208101359091169060400135613317565b348015610e2957600080fd5b506103f961349b565b348015610e3e57600080fd5b5061043560048036036020811015610e5557600080fd5b50356134a1565b348015610e6857600080fd5b506103f9613828565b348015610e7d57600080fd5b506103f961382e565b348015610e9257600080fd5b506103f960048036036020811015610ea957600080fd5b810190602081018135600160201b811115610ec357600080fd5b820183602082011115610ed557600080fd5b803590602001918460208302840111600160201b83111715610ef657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613834945050505050565b348015610f4057600080fd5b5061043560048036036020811015610f5757600080fd5b503561388e565b348015610f6a57600080fd5b50610b4c60048036036020811015610f8157600080fd5b5035613a37565b348015610f9457600080fd5b506103f9613a5e565b348015610fa957600080fd5b506103d0613a64565b348015610fbe57600080fd5b506103f9613a72565b348015610fd357600080fd5b5061043560048036036020811015610fea57600080fd5b5035613a78565b348015610ffd57600080fd5b506104356004803603602081101561101457600080fd5b5035613bbc565b34801561102757600080fd5b506103f96004803603604081101561103e57600080fd5b506001600160a01b038135169060200135613c0f565b34801561106057600080fd5b506104356004803603602081101561107757600080fd5b5035613db6565b34801561108a57600080fd5b50610435600480360360208110156110a157600080fd5b5035613e09565b3480156110b457600080fd5b50610435600480360360208110156110cb57600080fd5b810190602081018135600160201b8111156110e557600080fd5b8201836020820111156110f757600080fd5b803590602001918460208302840111600160201b8311171561111857600080fd5b509092509050613e5c565b34801561112f57600080fd5b506103d06141ae565b34801561114457600080fd5b506103f96004803603602081101561115b57600080fd5b50356001600160a01b03166141b7565b6001600160e01b031981166301ffc9a760e01b145b919050565b603e5490565b611194336141c2565b8061119e57503330145b6111e2576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c680001115801561120157506706f05b59d3b200008111155b611248576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b6112536040826141d6565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b61129a336141c2565b806112a957506112a93361423f565b6112f3576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a5460ff16611342576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b6113a5603880548060200260200160405190810160405280929190818152602001828054801561139b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161137d575b5050505050613834565b81146113e25760405162461bcd60e51b8152600401808060200182810382526023815260200180615ce76023913960400191505060405180910390fd5b6113ee60386000615ad5565b603a805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b60405180604001604052806005815260200164332e342e3160d81b81525081565b60008061146484846142ca565b905061146f816141c2565b6114b4576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b50630b135d3f60e11b90505b92915050565b60006114d260476144b5565b905090565b6000808585604051602001808383808284376040805191909301818103601f190182528084528151602092830120601f8b01839004830282018301909452898152929650630b135d3f60e11b955061154e945086935089915088908190840183828082843760009201919091525061145792505050565b6001600160e01b0319161461159a576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b506320c13b0b60e01b90505b949350505050565b603554600160a01b900460ff1690565b6115c7336141c2565b806115d157503330145b611615576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611620603b826144e4565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b60405490565b603a5460ff1681565b606060398054806020026020016040519081016040528092919081815260200182805480156116bd57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161169f575b5050505050905090565b60366020526000908152604090205460ff1681565b6116e5336141c2565b806116ef57503330145b611733576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b61173c82614545565b611782576040805162461bcd60e51b8152602060048201526012602482015271746f6b656e206e6f74206c6f616461626c6560701b604482015290519081900360640190fd5b600061178e8383613c0f565b905061179b60478261455f565b60006117a8604d546145cf565b90506001600160a01b03841615611841576117cd6001600160a01b03851682856146f0565b806001600160a01b0316631b3c96b485856040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561182457600080fd5b505af1158015611838573d6000803e3d6000fd5b505050506118b2565b806001600160a01b0316631b3c96b48486866040518463ffffffff1660e01b815260040180836001600160a01b03168152602001828152602001925050506000604051808303818588803b15801561189857600080fd5b505af11580156118ac573d6000803e3d6000fd5b50505050505b604080516001600160a01b03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b611905336141c2565b8061190f57503330145b611953576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b6046548111156119a5576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b6119b06047826141d6565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b6119f7336141c2565b80611a0157503330145b611a45576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611a50603b826141d6565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6060611a99336141c2565b80611aa357503330145b611ae7576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff16611b1257611b12603b8461455f565b611b24846001600160a01b0316614808565b8015611b345750611b348461480e565b15611d0657600080611b468685614828565b6001600160a01b038216600090815260366020526040902054919350915060ff16611b86576000611b77878361327b565b9050611b84603b8261455f565b505b611b996001600160a01b03871685614929565b604080516020808252818301909252606091602082018180368337019050509050600160f81b81601f81518110611bcc57fe5b60200101906001600160f81b031916908160001a9053507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138787878460405180856001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611c5e578181015183820152602001611c46565b50505050905090810190601f168015611c8b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611cbe578181015183820152602001611ca6565b50505050905090810190601f168015611ceb5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a19250611f5a915050565b60006060856001600160a01b031685856040518082805190602001908083835b60208310611d455780518252601f199092019160209182019101611d26565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611da7576040519150601f19603f3d011682016040523d82523d6000602084013e611dac565b606091505b5091509150818190611e3c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e01578181015183820152602001611de9565b50505050905090810190601f168015611e2e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138686868460405180856001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611eb8578181015183820152602001611ea0565b50505050905090810190601f168015611ee55780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611f18578181015183820152602001611f00565b50505050905090810190601f168015611f455780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a19150505b9392505050565b611f6a3361423f565b611fa9576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c09833981519152604482015290519081900360640190fd5b60004690506000612020823089898960405160200180806836b7b737b634ba341d60b91b815250600901868152602001856001600160a01b031660601b81526014018481526020018383808284378083019250505095505050505050604051602081830303815290604052805190602001206149da565b9050631626ba7e60e01b6001600160e01b0319166120748286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061145792505050565b6001600160e01b031916146120c0576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b604c548714612102576040805162461bcd60e51b81526020600482015260096024820152687478207265706c617960b81b604482015290519081900360640190fd5b61210a614a2b565b60006060306001600160a01b03168888604051808383808284376040519201945060009350909150508083038183865af19150503d806000811461216a576040519150601f19603f3d011682016040523d82523d6000602084013e61216f565b606091505b50915091508181906121c25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e01578181015183820152602001611de9565b507f823dbcf2b7b0f265871963ca65ac033f6b4c71e0d82cd123d2ff23d752dc21c188888360405180806020018060200183810383528686828181526020019250808284376000838201819052601f909101601f191690920185810384528651815286516020918201939188019250908190849084905b83811015612251578181015183820152602001612239565b50505050905090810190601f16801561227e5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050505050505050565b606060388054806020026020016040519081016040528092919081815260200182805480156116bd576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161169f575050505050905090565b6123023361423f565b612341576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c09833981519152604482015290519081900360640190fd5b603a5460ff16612390576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b6123f1603880548060200260200160405190810160405280929190818152602001828054801561139b576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161137d575050505050613834565b811461242e5760405162461bcd60e51b8152600401808060200182810382526023815260200180615ce76023913960400191505060405180910390fd5b60005b60385481101561251557603660006038838154811061244c57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1661250d576001603660006038848154811061248b57fe5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790556038805460379190839081106124d157fe5b60009182526020808320909101548354600181018555938352912090910180546001600160a01b0319166001600160a01b039092169190911790555b600101612431565b507fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a33603860405180836001600160a01b0316815260200180602001828103825283818154815260200191508054801561259857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161257a575b5050935050505060405180910390a16125b360386000615ad5565b50603a805460ff19169055565b60006114d2603b6144b5565b6125d5336141c2565b806125df57503330145b612623576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff1615801561263e5750603a54610100900460ff16155b61268f576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b603a5462010000900460ff166126e8576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b8061272c576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b61273860398383615af3565b50603a805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d192859285926127a79285918591829185019084908082843760009201919091525061383492505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a15050565b600054610100900460ff168061280b575061280b614a73565b80612819575060005460ff16155b6128545760405162461bcd60e51b815260040180806020018281038252602e815260200180615c6c602e913960400191505060405180910390fd5b600054610100900460ff1615801561287f576000805460ff1961ff0019909116610100171660011790555b61288886614a79565b61289184614b47565b61289b8888614bf4565b6128a482614d53565b6128ac614e3e565b6128b585614f2f565b604d83905580156128cc576000805461ff00191690555b5050505050505050565b6128df336141c2565b612929576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff16612987576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b603580546001600160a01b0319169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b6129dd336141c2565b806129e757503330145b612a2b576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c6800011158015612a4a57506706f05b59d3b200008111155b612a91576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b612a9c6040826144e4565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b604d5490565b6033546001600160a01b031690565b60006114d260406144b5565b612afc336141c2565b80612b0657503330145b612b4a576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff16158015612b655750603a54610100900460ff16155b612bb6576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015612cd257612c0f828281518110612c0257fe5b60200260200101516141c2565b15612c5a576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b0316828281518110612c7157fe5b60200260200101516001600160a01b03161415612cca576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b600101612bea565b50603a5462010000900460ff16612d2c576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b81612d70576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b612d7c60388484615af3565b50603a805460ff1916600117905560408051602080850282810182019093528482527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c9286928692612de99285918591829185019084908082843760009201919091525061383492505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60455490565b6035546001600160a01b031690565b612e53336141c2565b612e9d576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b612ea5614a2b565b565b603b5490565b612eb6336141c2565b80612ec057503330145b612f04576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8051602080820191906000808060605b868510156128cc57612f27866054615081565b888601805160148201516034909201805193995060609190911c96509094509092509050612f606054612f5a87856150c3565b906150c3565b945086851115612fa7576040805162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015290519081900360640190fd5b81612fbd57506040805160208101909152600081525b612fc8848483611a8e565b50612f14565b604b5460ff1690565b612fe0336141c2565b80612fea57503330145b61302e576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b604654811115613080576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b61308b6047826144e4565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b6130ca336141c2565b613114576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff16613172576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6001600160a01b0382166131b75760405162461bcd60e51b8152600401808060200182810382526023815260200180615c9a6023913960400191505060405180910390fd5b6035805460ff60a01b1916600160a01b831515021790558061321057604080516001600160a01b038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b603554604080516001600160a01b039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a150603580546001600160a01b0319166001600160a01b0392909216919091179055565b60008060008061328a8661511d565b5050509350935093505080156132f357816132d5576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b6132e9836132e387856152a6565b906152ff565b93505050506114c0565b50600095945050505050565b603f5460ff1690565b603a5462010000900460ff1681565b613320336141c2565b8061332a57503330145b61336e576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b80806133ab576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b6001600160a01b0384166133f6576040805162461bcd60e51b815260206004820152600d60248201526c064657374696e6174696f6e3d3609c1b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff1661344057816001600160a01b0384161561343357613430848461327b565b90505b61343e603b8261455f565b505b61344b848484615341565b604080516001600160a01b0380871682528516602082015280820184905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a150505050565b604a5490565b6134aa3361423f565b6134e9576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c09833981519152604482015290519081900360640190fd5b603a54610100900460ff1661353d576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b61359e603980548060200260200160405190810160405280929190818152602001828054801561139b576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161137d575050505050613834565b81146135db5760405162461bcd60e51b8152600401808060200182810382526023815260200180615ce76023913960400191505060405180910390fd5b60005b60395481101561377c5760366000603983815481106135f957fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615613774576000603660006039848154811061363957fe5b6000918252602080832091909101546001600160a01b031683528201929092526040018120805460ff1916921515929092179091555b60375461367d906001615081565b811015613745576039828154811061369157fe5b600091825260209091200154603780546001600160a01b0390921691839081106136b757fe5b6000918252602090912001546001600160a01b0316141561373d576037805460001981019081106136e457fe5b600091825260209091200154603780546001600160a01b03909216918390811061370a57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613745565b60010161366f565b50603780548061375157fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b6001016135de565b507fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b33603960405180836001600160a01b031681526020018060200182810382528381815481526020019150805480156137ff57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116137e1575b5050935050505060405180910390a161381a60396000615ad5565b50603a805461ff0019169055565b60435490565b604c5481565b60008160405160200180828051906020019060200280838360005b8381101561386757818101518382015260200161384f565b50505050905001915050604051602081830303815290604052805190602001209050919050565b613897336141c2565b806138a657506138a63361423f565b6138f0576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a54610100900460ff16613944576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b6139a5603980548060200260200160405190810160405280929190818152602001828054801561139b576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161137d575050505050613834565b81146139e25760405162461bcd60e51b8152600401808060200182810382526023815260200180615ce76023913960400191505060405180910390fd5b6139ee60396000615ad5565b603a805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b60378181548110613a4457fe5b6000918252602090912001546001600160a01b0316905081565b60475490565b603a54610100900460ff1681565b60345490565b8080613ab5576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b613abe336141c2565b80613acd5750613acd3361423f565b613b17576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b613b2260408361455f565b613b2a612e3b565b6001600160a01b03166108fc839081150290604051600060405180830381858888f19350505050158015613b62573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e33613b8d612e3b565b604080516001600160a01b03938416815291909216602082015280820185905290519081900360600190a15050565b613bc53361423f565b613c04576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c09833981519152604482015290519081900360640190fd5b611a50603b8261537b565b6000613c196153cb565b6001600160a01b0316836001600160a01b03161415613c395750806114c0565b816001600160a01b03841615613cf8576000806000613c578761511d565b5050509350935093505080613ca9576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81613ce4576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b613cf2836132e388856152a6565b93505050505b6000806000613d05615441565b5050509350935093505080613d57576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81613d9d576040805162461bcd60e51b81526020600482015260116024820152700737461626c65636f696e20726174653d3607c1b604482015290519081900360640190fd5b613dab826132e386866152a6565b979650505050505050565b613dbf3361423f565b613dfe576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c09833981519152604482015290519081900360640190fd5b6119b060478261537b565b613e123361423f565b613e51576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c09833981519152604482015290519081900360640190fd5b61125360408261537b565b613e65336141c2565b80613e6f57503330145b613eb3576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015613fc257613eff828281518110612c0257fe5b15613f4a576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b0316828281518110613f6157fe5b60200260200101516001600160a01b03161415613fba576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b600101613ee7565b50603a5462010000900460ff1615614019576040805162461bcd60e51b81526020600482015260156024820152741dda1a5d195b1a5cdd081a5b9a5d1a585b1a5e9959605a1b604482015290519081900360640190fd5b60005b8281101561410a576036600085858481811061403457fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff166141025760016036600086868581811061407057fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555060378484838181106140c557fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b0395909202939093013593909316929092179055505b60010161401c565b50603a805462ff0000191662010000179055604080513380825260208201838152603780549484018590527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a949293909290919060608301908490801561419a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161417c575b5050935050505060405180910390a1505050565b60445460ff1690565b60006114c0826155b0565b6035546001600160a01b0390811691161490565b600482015460ff1615614224576040805162461bcd60e51b81526020600482015260116024820152701b1a5b5a5d08185b1c9958591e481cd95d607a1b604482015290519081900360640190fd5b61422e8282615641565b50600401805460ff19166001179055565b600061424c6034546145cf565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561429857600080fd5b505afa1580156142ac573d6000803e3d6000fd5b505050506040513d60208110156142c257600080fd5b505192915050565b60008151604114614322576040805162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156143935760405162461bcd60e51b8152600401808060200182810382526022815260200180615be76022913960400191505060405180910390fd5b8060ff16601b141580156143ab57508060ff16601c14155b156143e75760405162461bcd60e51b8152600401808060200182810382526022815260200180615c296022913960400191505060405180910390fd5b600060018783868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015614443573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166144ab576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9695505050505050565b60028101546000906144ca90620151806150c3565b4211156144d957508054611180565b506001810154611180565b600482015460ff1661453d576040805162461bcd60e51b815260206004820152601960248201527f6c696d6974206861736e2774206265656e207365742079657400000000000000604482015290519081900360640190fd5b600390910155565b6000806145518361511d565b509098975050505050505050565b61456882615664565b80826001015410156145b4576040805162461bcd60e51b815260206004820152601060248201526f185d985a5b18589b194f185b5bdd5b9d60821b604482015290519081900360640190fd5b60018201546145c39082615081565b82600101819055505050565b6033546000906001600160a01b031661462f576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b15801561467b57600080fd5b505afa15801561468f573d6000803e3d6000fd5b505050506040513d60208110156146a557600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561429857600080fd5b801580614776575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561474857600080fd5b505afa15801561475c573d6000803e3d6000fd5b505050506040513d602081101561477257600080fd5b5051155b6147b15760405162461bcd60e51b8152600401808060200182810382526036815260200180615d0a6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052614803908490614929565b505050565b3b151590565b60008061481a8361511d565b509198975050505050505050565b6000806148366045546145cf565b6001600160a01b031663afc72e9385856040518363ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156148a1578181015183820152602001614889565b50505050905090810190601f1680156148ce5780820380516001836020036101000a031916815260200191505b509350505050604080518083038186803b1580156148eb57600080fd5b505afa1580156148ff573d6000803e3d6000fd5b505050506040513d604081101561491557600080fd5b508051602090910151909590945092505050565b606061497e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166156b69092919063ffffffff16565b8051909150156148035780806020019051602081101561499d57600080fd5b50516148035760405162461bcd60e51b815260040180806020018281038252602a815260200180615cbd602a913960400191505060405180910390fd5b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b604c80546001019081905560408051338152602081019290925280517fab0423a75986556234aecd171c46ce7f5e45607d8070bf5230f2735b50322bff9281900390910190a1565b303b1590565b600054610100900460ff1680614a925750614a92614a73565b80614aa0575060005460ff16155b614adb5760405162461bcd60e51b815260040180806020018281038252602e815260200180615c6c602e913960400191505060405180910390fd5b600054610100900460ff16158015614b06576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821615614b3157603380546001600160a01b0319166001600160a01b0384161790555b8015614b43576000805461ff00191690555b5050565b600054610100900460ff1680614b605750614b60614a73565b80614b6e575060005460ff16155b614ba95760405162461bcd60e51b815260040180806020018281038252602e815260200180615c6c602e913960400191505060405180910390fd5b600054610100900460ff16158015614bd4576000805460ff1961ff0019909116610100171660011790555b8115614b315760348290558015614b43576000805461ff00191690555050565b600054610100900460ff1680614c0d5750614c0d614a73565b80614c1b575060005460ff16155b614c565760405162461bcd60e51b815260040180806020018281038252602e815260200180615c6c602e913960400191505060405180910390fd5b600054610100900460ff16158015614c81576000805460ff1961ff0019909116610100171660011790555b603580546001600160a01b0319166001600160a01b0385161760ff60a01b1916600160a01b8415158102919091179182905560ff910416614cf957604080516001600160a01b038516815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60408051600081526001600160a01b038516602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a18015614803576000805461ff0019169055505050565b600054610100900460ff1680614d6c5750614d6c614a73565b80614d7a575060005460ff16155b614db55760405162461bcd60e51b815260040180806020018281038252602e815260200180615c6c602e913960400191505060405180910390fd5b600054610100900460ff16158015614de0576000805460ff1961ff0019909116610100171660011790555b6040805160a08101825283815260208101849052429181018290526000606082018190526080909101819052603b849055603c849055603d91909155603e55603f805460ff191690558015614b43576000805461ff00191690555050565b600054610100900460ff1680614e575750614e57614a73565b80614e65575060005460ff16155b614ea05760405162461bcd60e51b815260040180806020018281038252602e815260200180615c6c602e913960400191505060405180910390fd5b600054610100900460ff16158015614ecb576000805460ff1961ff0019909116610100171660011790555b6040805160a0810182526706f05b59d3b2000080825260208201819052428284018190526000606084018190526080909301839052928190556041556042919091556043556044805460ff191690558015614f2c576000805461ff00191690555b50565b600054610100900460ff1680614f485750614f48614a73565b80614f56575060005460ff16155b614f915760405162461bcd60e51b815260040180806020018281038252602e815260200180615c6c602e913960400191505060405180910390fd5b600054610100900460ff16158015614fbc576000805460ff1961ff0019909116610100171660011790555b614fc5826156c5565b6000614fcf615441565b50505050509150506000811161501c576040805162461bcd60e51b815260206004820152600d60248201526c37379039ba30b13632b1b7b4b760991b604482015290519081900360640190fd5b6127100260468190556040805160a081018252828152602081018390524291810182905260006060820181905260809091018190526047839055604892909255604955604a55604b805460ff191690558015614b43576000805461ff00191690555050565b6000611f5a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615772565b600082820183811015611f5a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60606000806000806000806151336045546145cf565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060006040518083038186803b15801561517f57600080fd5b505afa158015615193573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156151bc57600080fd5b8101908080516040519392919084600160201b8211156151db57600080fd5b9083019060208201858111156151f057600080fd5b8251600160201b81118282018810171561520957600080fd5b82525081516020918201929091019080838360005b8381101561523657818101518382015260200161521e565b50505050905090810190601f1680156152635780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b6000826152b5575060006114c0565b828202828482816152c257fe5b0414611f5a5760405162461bcd60e51b8152600401808060200182810382526021815260200180615c4b6021913960400191505060405180910390fd5b6000611f5a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506157cc565b6001600160a01b038216615367576153626001600160a01b03841682615831565b614803565b6148036001600160a01b0383168483615916565b808260030154146153bd5760405162461bcd60e51b8152600401808060200182810382526022815260200180615b8b6022913960400191505060405180910390fd5b614b43828360030154615641565b60006153d86045546145cf565b6001600160a01b031663e9cbd8226040518163ffffffff1660e01b815260040160206040518083038186803b15801561541057600080fd5b505afa158015615424573d6000803e3d6000fd5b505050506040513d602081101561543a57600080fd5b5051905090565b60606000806000806000806154576045546145cf565b6001600160a01b0316633efec5e96040518163ffffffff1660e01b815260040160006040518083038186803b15801561548f57600080fd5b505afa1580156154a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156154cc57600080fd5b8101908080516040519392919084600160201b8211156154eb57600080fd5b90830190602082018581111561550057600080fd5b8251600160201b81118282018810171561551957600080fd5b82525081516020918201929091019080838360005b8381101561554657818101518382015260200161552e565b50505050905090810190601f1680156155735780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979f939e50919c509a5098509096509294509192505050565b60006001600160a01b0382161561563a57604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561560757600080fd5b505afa15801561561b573d6000803e3d6000fd5b505050506040513d602081101561563157600080fd5b50519050611180565b5047611180565b61564a82615664565b8082556001820154811015614b4357815460018301555050565b600281015461567690620151806150c3565b421115614f2c57426002820155805460018201556040517fe93bc25276d408d390778e7a8b926f2f67209c43ed540081b951fe128f0d3cd290600090a150565b60606115a68484600085615968565b600054610100900460ff16806156de57506156de614a73565b806156ec575060005460ff16155b6157275760405162461bcd60e51b815260040180806020018281038252602e815260200180615c6c602e913960400191505060405180910390fd5b600054610100900460ff16158015615752576000805460ff1961ff0019909116610100171660011790555b8115614b315760458290558015614b43576000805461ff00191690555050565b600081848411156157c45760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e01578181015183820152602001611de9565b505050900390565b6000818361581b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e01578181015183820152602001611de9565b50600083858161582757fe5b0495945050505050565b80471015615886576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d80600081146158d1576040519150601f19603f3d011682016040523d82523d6000602084013e6158d6565b606091505b50509050806148035760405162461bcd60e51b815260040180806020018281038252603a815260200180615bad603a913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052614803908490614929565b606061597385614808565b6159c4576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310615a035780518252601f1990920191602091820191016159e4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114615a65576040519150601f19603f3d011682016040523d82523d6000602084013e615a6a565b606091505b50915091508115615a7e5791506115a69050565b805115615a8e5780518082602001fd5b60405162461bcd60e51b8152602060048201818152865160248401528651879391928392604401919085019080838360008315611e01578181015183820152602001611de9565b5080546000825590600052602060002090810190614f2c9190615b56565b828054828255906000526020600020908101928215615b46579160200282015b82811115615b465781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190615b13565b50615b52929150615b6b565b5090565b5b80821115615b525760008155600101615b57565b5b80821115615b525780546001600160a01b0319168155600101615b6c56fe636f6e6669726d65642f7375626d6974746564206c696d6974206d69736d61746368416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d6179206861766520726576657274656445434453413a20696e76616c6964207369676e6174757265202773272076616c756573656e646572206973206e6f74206120636f6e74726f6c6c657200000000000045434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646f776e65722063616e6e6f742062652073657420746f207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646e6f6e2d6d61746368696e672070656e64696e672077686974656c69737420686173685361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a264697066735822122081cd35d1f26513deb7f298c0e994d2746b48e3aeb8847448e04047deb89efeec64736f6c634300060c0033" +var WalletBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557fe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d39660455534801561007957600080fd5b50615dc2806200008a6000396000f3fe6080604052600436106103975760003560e01c8063877337b0116101dc578063cccdc55611610102578063e61c51ca116100a0578063f41c43191161006f578063f41c43191461107e578063f4217648146110a8578063f776f51814611123578063f8b2cb4f1461113857610397565b8063e61c51ca14610fc7578063eadd3cea14610ff1578063f36febda1461101b578063f40b51f81461105457610397565b8063d251fefc116100dc578063d251fefc14610f5e578063da84b1ed14610f88578063de212bf314610f9d578063e2b4ce9714610fb257610397565b8063cccdc55614610e71578063cd7958dd14610e86578063ce0b5bd514610f3457610397565b8063b242e5341161017a578063beabacc811610149578063beabacc814610dda578063c4856cd914610e1d578063cbd2ac6814610e32578063cc0e7e5614610e5c57610397565b8063b242e53414610d3c578063b87e21ef14610d77578063bcb8b74a14610db0578063be40ba7914610dc557610397565b80639b0dfd27116101b65780639b0dfd2714610c37578063aaf1fc6214610c4c578063ab20599314610cfd578063b221f31614610d1257610397565b8063877337b014610bf85780638da5cb5b14610c0d57806390e690c714610c2257610397565b80633bfec254116102c15780636137d6701161025f578063747c31d61161022e578063747c31d614610b225780637d73b23114610b375780637d7d004614610b685780637fd004fa14610b7d57610397565b80636137d67014610a0d57806369efdfc014610a88578063715018a614610ae357806374624c5514610af857610397565b806346efe0ed1161029b57806346efe0ed146108e757806347b55a9d146109b95780635adc02ab146109ce5780635d2362a8146109f857610397565b80633bfec254146107cd5780633c672eb7146107f75780633f579f421461082157610397565b806320c13b0b1161033957806326d05ab21161030857806326d05ab2146106f4578063294f40251461070957806332531c3c1461076e5780633a43199f146107a157610397565b806320c13b0b146105d55780632121dc75146106a057806321ce918d146106b55780632587a6a2146106df57610397565b8063100f23fd11610375578063100f23fd146104375780631127b57e146104615780631626ba7e146104eb5780631efd0299146105c057610397565b806301ffc9a71461039c578063027ef3eb146103e45780630f3a85d81461040b575b600080fd5b3480156103a857600080fd5b506103d0600480360360208110156103bf57600080fd5b50356001600160e01b03191661116b565b604080519115158252519081900360200190f35b3480156103f057600080fd5b506103f9611185565b60408051918252519081900360200190f35b34801561041757600080fd5b506104356004803603602081101561042e57600080fd5b503561118b565b005b34801561044357600080fd5b506104356004803603602081101561045a57600080fd5b5035611291565b34801561046d57600080fd5b50610476611436565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104b0578181015183820152602001610498565b50505050905090810190601f1680156104dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104f757600080fd5b506105a36004803603604081101561050e57600080fd5b81359190810190604081016020820135600160201b81111561052f57600080fd5b82018360208201111561054157600080fd5b803590602001918460018302840111600160201b8311171561056257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611457945050505050565b604080516001600160e01b03199092168252519081900360200190f35b3480156105cc57600080fd5b506103f96114c6565b3480156105e157600080fd5b506105a3600480360360408110156105f857600080fd5b810190602081018135600160201b81111561061257600080fd5b82018360208201111561062457600080fd5b803590602001918460018302840111600160201b8311171561064557600080fd5b919390929091602081019035600160201b81111561066257600080fd5b82018360208201111561067457600080fd5b803590602001918460018302840111600160201b8311171561069557600080fd5b5090925090506114d7565b3480156106ac57600080fd5b506103d06115ae565b3480156106c157600080fd5b50610435600480360360208110156106d857600080fd5b50356115be565b3480156106eb57600080fd5b506103f9611656565b34801561070057600080fd5b506103d061165c565b34801561071557600080fd5b5061071e611665565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561075a578181015183820152602001610742565b505050509050019250505060405180910390f35b34801561077a57600080fd5b506103d06004803603602081101561079157600080fd5b50356001600160a01b03166116c7565b610435600480360360408110156107b757600080fd5b506001600160a01b0381351690602001356116dc565b3480156107d957600080fd5b50610435600480360360208110156107f057600080fd5b50356118fc565b34801561080357600080fd5b506104356004803603602081101561081a57600080fd5b50356119ee565b34801561082d57600080fd5b506104766004803603606081101561084457600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561087357600080fd5b82018360208201111561088557600080fd5b803590602001918460018302840111600160201b831117156108a657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a8e945050505050565b3480156108f357600080fd5b506104356004803603606081101561090a57600080fd5b81359190810190604081016020820135600160201b81111561092b57600080fd5b82018360208201111561093d57600080fd5b803590602001918460018302840111600160201b8311171561095e57600080fd5b919390929091602081019035600160201b81111561097b57600080fd5b82018360208201111561098d57600080fd5b803590602001918460018302840111600160201b831117156109ae57600080fd5b509092509050611f61565b3480156109c557600080fd5b5061071e612299565b3480156109da57600080fd5b50610435600480360360208110156109f157600080fd5b50356122f9565b348015610a0457600080fd5b506103f96125c0565b348015610a1957600080fd5b5061043560048036036020811015610a3057600080fd5b810190602081018135600160201b811115610a4a57600080fd5b820183602082011115610a5c57600080fd5b803590602001918460208302840111600160201b83111715610a7d57600080fd5b5090925090506125cc565b348015610a9457600080fd5b50610435600480360360e0811015610aab57600080fd5b506001600160a01b03813581169160208101351515916040820135169060608101359060808101359060a08101359060c001356127f2565b348015610aef57600080fd5b506104356128d6565b348015610b0457600080fd5b5061043560048036036020811015610b1b57600080fd5b50356129d4565b348015610b2e57600080fd5b506103f9612ad2565b348015610b4357600080fd5b50610b4c612ad8565b604080516001600160a01b039092168252519081900360200190f35b348015610b7457600080fd5b506103f9612ae7565b348015610b8957600080fd5b5061043560048036036020811015610ba057600080fd5b810190602081018135600160201b811115610bba57600080fd5b820183602082011115610bcc57600080fd5b803590602001918460208302840111600160201b83111715610bed57600080fd5b509092509050612af3565b348015610c0457600080fd5b506103f9612e35565b348015610c1957600080fd5b50610b4c612e3b565b348015610c2e57600080fd5b50610435612e4a565b348015610c4357600080fd5b506103f9612ea7565b348015610c5857600080fd5b5061043560048036036020811015610c6f57600080fd5b810190602081018135600160201b811115610c8957600080fd5b820183602082011115610c9b57600080fd5b803590602001918460018302840111600160201b83111715610cbc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612ead945050505050565b348015610d0957600080fd5b506103d0612fce565b348015610d1e57600080fd5b5061043560048036036020811015610d3557600080fd5b5035612fd7565b348015610d4857600080fd5b5061043560048036036040811015610d5f57600080fd5b506001600160a01b03813516906020013515156130c1565b348015610d8357600080fd5b506103f960048036036040811015610d9a57600080fd5b506001600160a01b03813516906020013561327b565b348015610dbc57600080fd5b506103d06132ff565b348015610dd157600080fd5b506103d0613308565b348015610de657600080fd5b5061043560048036036060811015610dfd57600080fd5b506001600160a01b03813581169160208101359091169060400135613317565b348015610e2957600080fd5b506103f961349b565b348015610e3e57600080fd5b5061043560048036036020811015610e5557600080fd5b50356134a1565b348015610e6857600080fd5b506103f9613828565b348015610e7d57600080fd5b506103f961382e565b348015610e9257600080fd5b506103f960048036036020811015610ea957600080fd5b810190602081018135600160201b811115610ec357600080fd5b820183602082011115610ed557600080fd5b803590602001918460208302840111600160201b83111715610ef657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613834945050505050565b348015610f4057600080fd5b5061043560048036036020811015610f5757600080fd5b503561388e565b348015610f6a57600080fd5b50610b4c60048036036020811015610f8157600080fd5b5035613a37565b348015610f9457600080fd5b506103f9613a5e565b348015610fa957600080fd5b506103d0613a64565b348015610fbe57600080fd5b506103f9613a72565b348015610fd357600080fd5b5061043560048036036020811015610fea57600080fd5b5035613a78565b348015610ffd57600080fd5b506104356004803603602081101561101457600080fd5b5035613c09565b34801561102757600080fd5b506103f96004803603604081101561103e57600080fd5b506001600160a01b038135169060200135613c5c565b34801561106057600080fd5b506104356004803603602081101561107757600080fd5b5035613e03565b34801561108a57600080fd5b50610435600480360360208110156110a157600080fd5b5035613e56565b3480156110b457600080fd5b50610435600480360360208110156110cb57600080fd5b810190602081018135600160201b8111156110e557600080fd5b8201836020820111156110f757600080fd5b803590602001918460208302840111600160201b8311171561111857600080fd5b509092509050613ea9565b34801561112f57600080fd5b506103d06141fb565b34801561114457600080fd5b506103f96004803603602081101561115b57600080fd5b50356001600160a01b0316614204565b6001600160e01b031981166301ffc9a760e01b145b919050565b603e5490565b6111943361420f565b8061119e57503330145b6111e2576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c680001115801561120157506706f05b59d3b200008111155b611248576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b611253604082614223565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b61129a3361420f565b806112a957506112a93361428c565b6112f3576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a5460ff16611342576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b6113a5603880548060200260200160405190810160405280929190818152602001828054801561139b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161137d575b5050505050613834565b81146113e25760405162461bcd60e51b8152600401808060200182810382526023815260200180615d346023913960400191505060405180910390fd5b6113ee60386000615b22565b603a805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b60405180604001604052806005815260200164332e342e3160d81b81525081565b6000806114648484614317565b905061146f8161420f565b6114b4576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b50630b135d3f60e11b90505b92915050565b60006114d26047614502565b905090565b6000808585604051602001808383808284376040805191909301818103601f190182528084528151602092830120601f8b01839004830282018301909452898152929650630b135d3f60e11b955061154e945086935089915088908190840183828082843760009201919091525061145792505050565b6001600160e01b0319161461159a576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b506320c13b0b60e01b90505b949350505050565b603554600160a01b900460ff1690565b6115c73361420f565b806115d157503330145b611615576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611620603b82614531565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b60405490565b603a5460ff1681565b606060398054806020026020016040519081016040528092919081815260200182805480156116bd57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161169f575b5050505050905090565b60366020526000908152604090205460ff1681565b6116e53361420f565b806116ef57503330145b611733576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b61173c82614592565b611782576040805162461bcd60e51b8152602060048201526012602482015271746f6b656e206e6f74206c6f616461626c6560701b604482015290519081900360640190fd5b600061178e8383613c5c565b905061179b6047826145ac565b60006117a8604d5461461c565b90506001600160a01b03841615611841576117cd6001600160a01b038516828561473d565b806001600160a01b0316631b3c96b485856040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561182457600080fd5b505af1158015611838573d6000803e3d6000fd5b505050506118b2565b806001600160a01b0316631b3c96b48486866040518463ffffffff1660e01b815260040180836001600160a01b03168152602001828152602001925050506000604051808303818588803b15801561189857600080fd5b505af11580156118ac573d6000803e3d6000fd5b50505050505b604080516001600160a01b03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b6119053361420f565b8061190f57503330145b611953576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b6046548111156119a5576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b6119b0604782614223565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b6119f73361420f565b80611a0157503330145b611a45576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b611a50603b82614223565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6060611a993361420f565b80611aa357503330145b611ae7576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff16611b1257611b12603b846145ac565b611b24846001600160a01b0316614855565b8015611b345750611b348461485b565b15611d0657600080611b468685614875565b6001600160a01b038216600090815260366020526040902054919350915060ff16611b86576000611b77878361327b565b9050611b84603b826145ac565b505b611b996001600160a01b03871685614976565b604080516020808252818301909252606091602082018180368337019050509050600160f81b81601f81518110611bcc57fe5b60200101906001600160f81b031916908160001a9053507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138787878460405180856001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611c5e578181015183820152602001611c46565b50505050905090810190601f168015611c8b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611cbe578181015183820152602001611ca6565b50505050905090810190601f168015611ceb5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a19250611f5a915050565b60006060856001600160a01b031685856040518082805190602001908083835b60208310611d455780518252601f199092019160209182019101611d26565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611da7576040519150601f19603f3d011682016040523d82523d6000602084013e611dac565b606091505b5091509150818190611e3c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e01578181015183820152602001611de9565b50505050905090810190601f168015611e2e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b507ff77753fab406ecfff96d6ff2476c64a838fa9f6d37b1bf190f8546e395e3b6138686868460405180856001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611eb8578181015183820152602001611ea0565b50505050905090810190601f168015611ee55780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611f18578181015183820152602001611f00565b50505050905090810190601f168015611f455780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a19150505b9392505050565b611f6a3361428c565b611fa9576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c56833981519152604482015290519081900360640190fd5b60004690506000612020823089898960405160200180806836b7b737b634ba341d60b91b815250600901868152602001856001600160a01b031660601b8152601401848152602001838380828437808301925050509550505050505060405160208183030381529060405280519060200120614a27565b9050631626ba7e60e01b6001600160e01b0319166120748286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061145792505050565b6001600160e01b031916146120c0576040805162461bcd60e51b815260206004820152600d60248201526c1cda59c81b9bdd081d985b1a59609a1b604482015290519081900360640190fd5b604c548714612102576040805162461bcd60e51b81526020600482015260096024820152687478207265706c617960b81b604482015290519081900360640190fd5b61210a614a78565b60006060306001600160a01b03168888604051808383808284376040519201945060009350909150508083038183865af19150503d806000811461216a576040519150601f19603f3d011682016040523d82523d6000602084013e61216f565b606091505b50915091508181906121c25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e01578181015183820152602001611de9565b507f823dbcf2b7b0f265871963ca65ac033f6b4c71e0d82cd123d2ff23d752dc21c188888360405180806020018060200183810383528686828181526020019250808284376000838201819052601f909101601f191690920185810384528651815286516020918201939188019250908190849084905b83811015612251578181015183820152602001612239565b50505050905090810190601f16801561227e5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050505050505050565b606060388054806020026020016040519081016040528092919081815260200182805480156116bd576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161169f575050505050905090565b6123023361428c565b612341576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c56833981519152604482015290519081900360640190fd5b603a5460ff16612390576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b6123f1603880548060200260200160405190810160405280929190818152602001828054801561139b576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161137d575050505050613834565b811461242e5760405162461bcd60e51b8152600401808060200182810382526023815260200180615d346023913960400191505060405180910390fd5b60005b60385481101561251557603660006038838154811061244c57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1661250d576001603660006038848154811061248b57fe5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790556038805460379190839081106124d157fe5b60009182526020808320909101548354600181018555938352912090910180546001600160a01b0319166001600160a01b039092169190911790555b600101612431565b507fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a33603860405180836001600160a01b0316815260200180602001828103825283818154815260200191508054801561259857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161257a575b5050935050505060405180910390a16125b360386000615b22565b50603a805460ff19169055565b60006114d2603b614502565b6125d53361420f565b806125df57503330145b612623576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff1615801561263e5750603a54610100900460ff16155b61268f576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b603a5462010000900460ff166126e8576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b8061272c576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b61273860398383615b40565b50603a805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d192859285926127a79285918591829185019084908082843760009201919091525061383492505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a15050565b600054610100900460ff168061280b575061280b614ac0565b80612819575060005460ff16155b6128545760405162461bcd60e51b815260040180806020018281038252602e815260200180615cb9602e913960400191505060405180910390fd5b600054610100900460ff1615801561287f576000805460ff1961ff0019909116610100171660011790555b61288886614ac6565b61289184614b94565b61289b8888614c41565b6128a482614da0565b6128ac614e8b565b6128b585614f7c565b604d83905580156128cc576000805461ff00191690555b5050505050505050565b6128df3361420f565b612929576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff16612987576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b603580546001600160a01b0319169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b6129dd3361420f565b806129e757503330145b612a2b576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8066038d7ea4c6800011158015612a4a57506706f05b59d3b200008111155b612a91576040805162461bcd60e51b815260206004820152601360248201527206f7574206f662072616e676520746f702d757606c1b604482015290519081900360640190fd5b612a9c604082614531565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b604d5490565b6033546001600160a01b031690565b60006114d26040614502565b612afc3361420f565b80612b0657503330145b612b4a576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b603a5460ff16158015612b655750603a54610100900460ff16155b612bb6576040805162461bcd60e51b815260206004820152601c60248201527f77686974656c6973742073756d62697373696f6e2070656e64696e6700000000604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015612cd257612c0f828281518110612c0257fe5b602002602001015161420f565b15612c5a576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b0316828281518110612c7157fe5b60200260200101516001600160a01b03161415612cca576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b600101612bea565b50603a5462010000900460ff16612d2c576040805162461bcd60e51b81526020600482015260196024820152781dda1a5d195b1a5cdd081b9bdd081a5b9a5d1a585b1a5e9959603a1b604482015290519081900360640190fd5b81612d70576040805162461bcd60e51b815260206004820152600f60248201526e195b5c1d1e481dda1a5d195b1a5cdd608a1b604482015290519081900360640190fd5b612d7c60388484615b40565b50603a805460ff1916600117905560408051602080850282810182019093528482527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c9286928692612de99285918591829185019084908082843760009201919091525061383492505050565b60405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60455490565b6035546001600160a01b031690565b612e533361420f565b612e9d576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b612ea5614a78565b565b603b5490565b612eb63361420f565b80612ec057503330145b612f04576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8051602080820191906000808060605b868510156128cc57612f278660546150ce565b888601805160148201516034909201805193995060609190911c96509094509092509050612f606054612f5a8785615110565b90615110565b945086851115612fa7576040805162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015290519081900360640190fd5b81612fbd57506040805160208101909152600081525b612fc8848483611a8e565b50612f14565b604b5460ff1690565b612fe03361420f565b80612fea57503330145b61302e576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b604654811115613080576040805162461bcd60e51b81526020600482015260186024820152771bdd5d081bd9881c985b99d9481b1bd85908185b5bdd5b9d60421b604482015290519081900360640190fd5b61308b604782614531565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b6130ca3361420f565b613114576040805162461bcd60e51b815260206004820152601660248201527539b2b73232b91034b9903737ba1030b71037bbb732b960511b604482015290519081900360640190fd5b603554600160a01b900460ff16613172576040805162461bcd60e51b815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6001600160a01b0382166131b75760405162461bcd60e51b8152600401808060200182810382526023815260200180615ce76023913960400191505060405180910390fd5b6035805460ff60a01b1916600160a01b831515021790558061321057604080516001600160a01b038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b603554604080516001600160a01b039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a150603580546001600160a01b0319166001600160a01b0392909216919091179055565b60008060008061328a8661516a565b5050509350935093505080156132f357816132d5576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b6132e9836132e387856152f3565b9061534c565b93505050506114c0565b50600095945050505050565b603f5460ff1690565b603a5462010000900460ff1681565b6133203361420f565b8061332a57503330145b61336e576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b80806133ab576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b6001600160a01b0384166133f6576040805162461bcd60e51b815260206004820152600d60248201526c064657374696e6174696f6e3d3609c1b604482015290519081900360640190fd5b6001600160a01b03841660009081526036602052604090205460ff1661344057816001600160a01b0384161561343357613430848461327b565b90505b61343e603b826145ac565b505b61344b84848461538e565b604080516001600160a01b0380871682528516602082015280820184905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a150505050565b604a5490565b6134aa3361428c565b6134e9576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c56833981519152604482015290519081900360640190fd5b603a54610100900460ff1661353d576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b61359e603980548060200260200160405190810160405280929190818152602001828054801561139b576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161137d575050505050613834565b81146135db5760405162461bcd60e51b8152600401808060200182810382526023815260200180615d346023913960400191505060405180910390fd5b60005b60395481101561377c5760366000603983815481106135f957fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615613774576000603660006039848154811061363957fe5b6000918252602080832091909101546001600160a01b031683528201929092526040018120805460ff1916921515929092179091555b60375461367d9060016150ce565b811015613745576039828154811061369157fe5b600091825260209091200154603780546001600160a01b0390921691839081106136b757fe5b6000918252602090912001546001600160a01b0316141561373d576037805460001981019081106136e457fe5b600091825260209091200154603780546001600160a01b03909216918390811061370a57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613745565b60010161366f565b50603780548061375157fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b6001016135de565b507fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b33603960405180836001600160a01b031681526020018060200182810382528381815481526020019150805480156137ff57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116137e1575b5050935050505060405180910390a161381a60396000615b22565b50603a805461ff0019169055565b60435490565b604c5481565b60008160405160200180828051906020019060200280838360005b8381101561386757818101518382015260200161384f565b50505050905001915050604051602081830303815290604052805190602001209050919050565b6138973361420f565b806138a657506138a63361428c565b6138f0576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b603a54610100900460ff16613944576040805162461bcd60e51b81526020600482015260156024820152743737903832b73234b7339039bab136b4b9b9b4b7b760591b604482015290519081900360640190fd5b6139a5603980548060200260200160405190810160405280929190818152602001828054801561139b576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161137d575050505050613834565b81146139e25760405162461bcd60e51b8152600401808060200182810382526023815260200180615d346023913960400191505060405180910390fd5b6139ee60396000615b22565b603a805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b60378181548110613a4457fe5b6000918252602090912001546001600160a01b0316905081565b60475490565b603a54610100900460ff1681565b60345490565b8080613ab5576040805162461bcd60e51b8152602060048201526007602482015266076616c75653d360cc1b604482015290519081900360640190fd5b613abe3361420f565b80613acd5750613acd3361428c565b613b17576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b93e3e31b7b73a3937b63632b960511b604482015290519081900360640190fd5b814711613b64576040805162461bcd60e51b815260206004820152601660248201527518985b185b98d9481b9bdd081cdd59999a58da595b9d60521b604482015290519081900360640190fd5b613b6f6040836145ac565b613b77612e3b565b6001600160a01b03166108fc839081150290604051600060405180830381858888f19350505050158015613baf573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e33613bda612e3b565b604080516001600160a01b03938416815291909216602082015280820185905290519081900360600190a15050565b613c123361428c565b613c51576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c56833981519152604482015290519081900360640190fd5b611a50603b826153c8565b6000613c66615418565b6001600160a01b0316836001600160a01b03161415613c865750806114c0565b816001600160a01b03841615613d45576000806000613ca48761516a565b5050509350935093505080613cf6576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81613d31576040805162461bcd60e51b81526020600482015260066024820152650726174653d360d41b604482015290519081900360640190fd5b613d3f836132e388856152f3565b93505050505b6000806000613d5261548e565b5050509350935093505080613da4576040805162461bcd60e51b8152602060048201526013602482015272746f6b656e206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b81613dea576040805162461bcd60e51b81526020600482015260116024820152700737461626c65636f696e20726174653d3607c1b604482015290519081900360640190fd5b613df8826132e386866152f3565b979650505050505050565b613e0c3361428c565b613e4b576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c56833981519152604482015290519081900360640190fd5b6119b06047826153c8565b613e5f3361428c565b613e9e576040805162461bcd60e51b815260206004820152601a6024820152600080516020615c56833981519152604482015290519081900360640190fd5b6112536040826153c8565b613eb23361420f565b80613ebc57503330145b613f00576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b93e3e39b2b63360811b604482015290519081900360640190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b815181101561400f57613f4c828281518110612c0257fe5b15613f97576040805162461bcd60e51b8152602060048201526016602482015275636f6e7461696e73206f776e6572206164647265737360501b604482015290519081900360640190fd5b60006001600160a01b0316828281518110613fae57fe5b60200260200101516001600160a01b03161415614007576040805162461bcd60e51b8152602060048201526012602482015271636f6e7461696e732030206164647265737360701b604482015290519081900360640190fd5b600101613f34565b50603a5462010000900460ff1615614066576040805162461bcd60e51b81526020600482015260156024820152741dda1a5d195b1a5cdd081a5b9a5d1a585b1a5e9959605a1b604482015290519081900360640190fd5b60005b82811015614157576036600085858481811061408157fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff1661414f576001603660008686858181106140bd57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550603784848381811061411257fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b0395909202939093013593909316929092179055505b600101614069565b50603a805462ff0000191662010000179055604080513380825260208201838152603780549484018590527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a94929390929091906060830190849080156141e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116141c9575b5050935050505060405180910390a1505050565b60445460ff1690565b60006114c0826155fd565b6035546001600160a01b0390811691161490565b600482015460ff1615614271576040805162461bcd60e51b81526020600482015260116024820152701b1a5b5a5d08185b1c9958591e481cd95d607a1b604482015290519081900360640190fd5b61427b828261568e565b50600401805460ff19166001179055565b600061429960345461461c565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156142e557600080fd5b505afa1580156142f9573d6000803e3d6000fd5b505050506040513d602081101561430f57600080fd5b505192915050565b6000815160411461436f576040805162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156143e05760405162461bcd60e51b8152600401808060200182810382526022815260200180615c346022913960400191505060405180910390fd5b8060ff16601b141580156143f857508060ff16601c14155b156144345760405162461bcd60e51b8152600401808060200182810382526022815260200180615c766022913960400191505060405180910390fd5b600060018783868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015614490573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166144f8576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9695505050505050565b60028101546000906145179062015180615110565b42111561452657508054611180565b506001810154611180565b600482015460ff1661458a576040805162461bcd60e51b815260206004820152601960248201527f6c696d6974206861736e2774206265656e207365742079657400000000000000604482015290519081900360640190fd5b600390910155565b60008061459e8361516a565b509098975050505050505050565b6145b5826156b1565b8082600101541015614601576040805162461bcd60e51b815260206004820152601060248201526f185d985a5b18589b194f185b5bdd5b9d60821b604482015290519081900360640190fd5b600182015461461090826150ce565b82600101819055505050565b6033546000906001600160a01b031661467c576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156146c857600080fd5b505afa1580156146dc573d6000803e3d6000fd5b505050506040513d60208110156146f257600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b1580156142e557600080fd5b8015806147c3575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561479557600080fd5b505afa1580156147a9573d6000803e3d6000fd5b505050506040513d60208110156147bf57600080fd5b5051155b6147fe5760405162461bcd60e51b8152600401808060200182810382526036815260200180615d576036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052614850908490614976565b505050565b3b151590565b6000806148678361516a565b509198975050505050505050565b60008061488360455461461c565b6001600160a01b031663afc72e9385856040518363ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156148ee5781810151838201526020016148d6565b50505050905090810190601f16801561491b5780820380516001836020036101000a031916815260200191505b509350505050604080518083038186803b15801561493857600080fd5b505afa15801561494c573d6000803e3d6000fd5b505050506040513d604081101561496257600080fd5b508051602090910151909590945092505050565b60606149cb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166157039092919063ffffffff16565b805190915015614850578080602001905160208110156149ea57600080fd5b50516148505760405162461bcd60e51b815260040180806020018281038252602a815260200180615d0a602a913960400191505060405180910390fd5b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b604c80546001019081905560408051338152602081019290925280517fab0423a75986556234aecd171c46ce7f5e45607d8070bf5230f2735b50322bff9281900390910190a1565b303b1590565b600054610100900460ff1680614adf5750614adf614ac0565b80614aed575060005460ff16155b614b285760405162461bcd60e51b815260040180806020018281038252602e815260200180615cb9602e913960400191505060405180910390fd5b600054610100900460ff16158015614b53576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821615614b7e57603380546001600160a01b0319166001600160a01b0384161790555b8015614b90576000805461ff00191690555b5050565b600054610100900460ff1680614bad5750614bad614ac0565b80614bbb575060005460ff16155b614bf65760405162461bcd60e51b815260040180806020018281038252602e815260200180615cb9602e913960400191505060405180910390fd5b600054610100900460ff16158015614c21576000805460ff1961ff0019909116610100171660011790555b8115614b7e5760348290558015614b90576000805461ff00191690555050565b600054610100900460ff1680614c5a5750614c5a614ac0565b80614c68575060005460ff16155b614ca35760405162461bcd60e51b815260040180806020018281038252602e815260200180615cb9602e913960400191505060405180910390fd5b600054610100900460ff16158015614cce576000805460ff1961ff0019909116610100171660011790555b603580546001600160a01b0319166001600160a01b0385161760ff60a01b1916600160a01b8415158102919091179182905560ff910416614d4657604080516001600160a01b038516815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60408051600081526001600160a01b038516602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a18015614850576000805461ff0019169055505050565b600054610100900460ff1680614db95750614db9614ac0565b80614dc7575060005460ff16155b614e025760405162461bcd60e51b815260040180806020018281038252602e815260200180615cb9602e913960400191505060405180910390fd5b600054610100900460ff16158015614e2d576000805460ff1961ff0019909116610100171660011790555b6040805160a08101825283815260208101849052429181018290526000606082018190526080909101819052603b849055603c849055603d91909155603e55603f805460ff191690558015614b90576000805461ff00191690555050565b600054610100900460ff1680614ea45750614ea4614ac0565b80614eb2575060005460ff16155b614eed5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cb9602e913960400191505060405180910390fd5b600054610100900460ff16158015614f18576000805460ff1961ff0019909116610100171660011790555b6040805160a0810182526706f05b59d3b2000080825260208201819052428284018190526000606084018190526080909301839052928190556041556042919091556043556044805460ff191690558015614f79576000805461ff00191690555b50565b600054610100900460ff1680614f955750614f95614ac0565b80614fa3575060005460ff16155b614fde5760405162461bcd60e51b815260040180806020018281038252602e815260200180615cb9602e913960400191505060405180910390fd5b600054610100900460ff16158015615009576000805460ff1961ff0019909116610100171660011790555b61501282615712565b600061501c61548e565b505050505091505060008111615069576040805162461bcd60e51b815260206004820152600d60248201526c37379039ba30b13632b1b7b4b760991b604482015290519081900360640190fd5b6127100260468190556040805160a081018252828152602081018390524291810182905260006060820181905260809091018190526047839055604892909255604955604a55604b805460ff191690558015614b90576000805461ff00191690555050565b6000611f5a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506157bf565b600082820183811015611f5a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b606060008060008060008061518060455461461c565b6001600160a01b0316631f69565f896040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060006040518083038186803b1580156151cc57600080fd5b505afa1580156151e0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561520957600080fd5b8101908080516040519392919084600160201b82111561522857600080fd5b90830190602082018581111561523d57600080fd5b8251600160201b81118282018810171561525657600080fd5b82525081516020918201929091019080838360005b8381101561528357818101518382015260200161526b565b50505050905090810190601f1680156152b05780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979e50929c50909a509850965094509192505050919395979092949650565b600082615302575060006114c0565b8282028284828161530f57fe5b0414611f5a5760405162461bcd60e51b8152600401808060200182810382526021815260200180615c986021913960400191505060405180910390fd5b6000611f5a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615819565b6001600160a01b0382166153b4576153af6001600160a01b0384168261587e565b614850565b6148506001600160a01b0383168483615963565b8082600301541461540a5760405162461bcd60e51b8152600401808060200182810382526022815260200180615bd86022913960400191505060405180910390fd5b614b9082836003015461568e565b600061542560455461461c565b6001600160a01b031663e9cbd8226040518163ffffffff1660e01b815260040160206040518083038186803b15801561545d57600080fd5b505afa158015615471573d6000803e3d6000fd5b505050506040513d602081101561548757600080fd5b5051905090565b60606000806000806000806154a460455461461c565b6001600160a01b0316633efec5e96040518163ffffffff1660e01b815260040160006040518083038186803b1580156154dc57600080fd5b505afa1580156154f0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561551957600080fd5b8101908080516040519392919084600160201b82111561553857600080fd5b90830190602082018581111561554d57600080fd5b8251600160201b81118282018810171561556657600080fd5b82525081516020918201929091019080838360005b8381101561559357818101518382015260200161557b565b50505050905090810190601f1680156155c05780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c090950151979f939e50919c509a5098509096509294509192505050565b60006001600160a01b0382161561568757604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561565457600080fd5b505afa158015615668573d6000803e3d6000fd5b505050506040513d602081101561567e57600080fd5b50519050611180565b5047611180565b615697826156b1565b8082556001820154811015614b9057815460018301555050565b60028101546156c39062015180615110565b421115614f7957426002820155805460018201556040517fe93bc25276d408d390778e7a8b926f2f67209c43ed540081b951fe128f0d3cd290600090a150565b60606115a684846000856159b5565b600054610100900460ff168061572b575061572b614ac0565b80615739575060005460ff16155b6157745760405162461bcd60e51b815260040180806020018281038252602e815260200180615cb9602e913960400191505060405180910390fd5b600054610100900460ff1615801561579f576000805460ff1961ff0019909116610100171660011790555b8115614b7e5760458290558015614b90576000805461ff00191690555050565b600081848411156158115760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e01578181015183820152602001611de9565b505050900390565b600081836158685760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e01578181015183820152602001611de9565b50600083858161587457fe5b0495945050505050565b804710156158d3576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d806000811461591e576040519150601f19603f3d011682016040523d82523d6000602084013e615923565b606091505b50509050806148505760405162461bcd60e51b815260040180806020018281038252603a815260200180615bfa603a913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052614850908490614976565b60606159c085614855565b615a11576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310615a505780518252601f199092019160209182019101615a31565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114615ab2576040519150601f19603f3d011682016040523d82523d6000602084013e615ab7565b606091505b50915091508115615acb5791506115a69050565b805115615adb5780518082602001fd5b60405162461bcd60e51b8152602060048201818152865160248401528651879391928392604401919085019080838360008315611e01578181015183820152602001611de9565b5080546000825590600052602060002090810190614f799190615ba3565b828054828255906000526020600020908101928215615b93579160200282015b82811115615b935781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190615b60565b50615b9f929150615bb8565b5090565b5b80821115615b9f5760008155600101615ba4565b5b80821115615b9f5780546001600160a01b0319168155600101615bb956fe636f6e6669726d65642f7375626d6974746564206c696d6974206d69736d61746368416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d6179206861766520726576657274656445434453413a20696e76616c6964207369676e6174757265202773272076616c756573656e646572206973206e6f74206120636f6e74726f6c6c657200000000000045434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646f776e65722063616e6e6f742062652073657420746f207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646e6f6e2d6d61746368696e672070656e64696e672077686974656c69737420686173685361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220cd34186453acac978f0828bff119ff5fd479d00c4f76950fa843e140410693ef64736f6c634300060c0033" // 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/walletDeployer.go b/pkg/bindings/walletDeployer.go index 9f36bd52..fa3a3ccc 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\"}],\"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\"},{\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"deployWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deployedWallets\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"walletCacheNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]" // WalletDeployerBin is the compiled bytecode used for deploying new contracts. -var WalletDeployerBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557faf553cb0d77690819f9d6fbaa04416e1fdcfa01b2a9a833c7a11e6ae0bc1be886035553480156200007a57600080fd5b5060405162000d4e38038062000d4e83398181016040526060811015620000a057600080fd5b5080516020820151604090920151909190620000bc83620000dd565b620000c782620001b4565b8015620000d45760358190555b50505062000270565b600054610100900460ff1680620000f95750620000f96200026a565b8062000108575060005460ff16155b620001455760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d20602e913960400191505060405180910390fd5b600054610100900460ff1615801562000171576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200019d57603380546001600160a01b0319166001600160a01b0384161790555b8015620001b0576000805461ff00191690555b5050565b600054610100900460ff1680620001d05750620001d06200026a565b80620001df575060005460ff16155b6200021c5760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d20602e913960400191505060405180910390fd5b600054610100900460ff1615801562000248576000805460ff1961ff0019909116610100171660011790555b81156200019d5760348290558015620001b0576000805461ff00191690555050565b303b1590565b610aa080620002806000396000f3fe6080604052600436106100555760003560e01c80637d73b2311461005a57806380a12c0e1461008b5780638d682ef7146100be578063a6ede3d414610180578063c8cc2fc2146101a7578063e2b4ce97146101da575b600080fd5b34801561006657600080fd5b5061006f6101ef565b604080516001600160a01b039092168252519081900360200190f35b34801561009757600080fd5b5061006f600480360360208110156100ae57600080fd5b50356001600160a01b03166101fe565b61017e60048036036101408110156100d557600080fd5b6001600160a01b03823581169260208101359091169160408201351515916060810135151591608082013515159160a081013515159160c08201359160e0810135916101008201359190810190610140810161012082013564010000000081111561013f57600080fd5b82018360208201111561015157600080fd5b8035906020019184602083028401116401000000008311171561017357600080fd5b509092509050610219565b005b34801561018c57600080fd5b506101956106f3565b60408051918252519081900360200190f35b3480156101b357600080fd5b5061017e600480360360208110156101ca57600080fd5b50356001600160a01b03166106f9565b3480156101e657600080fd5b50610195610897565b6033546001600160a01b031690565b6036602052600090815260409020546001600160a01b031681565b6102223361089d565b610273576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6001600160a01b038b811660009081526036602052604090205416156102ca5760405162461bcd60e51b8152600401808060200182810382526021815260200180610a4a6021913960400191505060405180910390fd5b8a6001600160a01b03168a6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561030d57600080fd5b505afa158015610321573d6000803e3d6000fd5b505050506040513d602081101561033757600080fd5b50516001600160a01b031614610385576040805162461bcd60e51b815260206004820152600e60248201526d0deeedccae440dad2e6dac2e8c6d60931b604482015290519081900360640190fd5b6000610392603554610928565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156103cc57600080fd5b505af11580156103e0573d6000803e3d6000fd5b505050506040513d60208110156103f657600080fd5b5051604080516001600160a01b038084168252808f1660208301528f168183015234606082015290519192507fc65d6ee9571556236e352151c95c79b6589474ad814195aaac7d5ab8d88ba2dd919081900360800190a16001600160a01b038c8116600090815260366020526040902080546001600160a01b03191691831691909117905589156104e057806001600160a01b0316633c672eb7876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156104c757600080fd5b505af11580156104db573d6000803e3d6000fd5b505050505b881561054557806001600160a01b0316630f3a85d8866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561052c57600080fd5b505af1158015610540573d6000803e3d6000fd5b505050505b87156105aa57806001600160a01b0316633bfec254856040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561059157600080fd5b505af11580156105a5573d6000803e3d6000fd5b505050505b861561063e57806001600160a01b031663f421764884846040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561062557600080fd5b505af1158015610639573d6000803e3d6000fd5b505050505b60408051632c90b94d60e21b81526001600160a01b038e8116600483015260006024830181905292519084169263b242e534926044808201939182900301818387803b15801561068d57600080fd5b505af11580156106a1573d6000803e3d6000fd5b5050505060003411156106e5576040516001600160a01b038d16903480156108fc02916000818181858888f193505050501580156106e3573d6000803e3d6000fd5b505b505050505050505050505050565b60355481565b6107023361089d565b610753576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6000610760603554610928565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b505050506040513d60208110156107c457600080fd5b5051604080516001600160a01b0380841682528516602082015281519293507fc02db5f4164f89d90905928336769906e16d79c4a77342126eb647ca9440d078929081900390910190a16001600160a01b0382811660008181526036602052604080822080546001600160a01b03191694861694851790558051632c90b94d60e21b81526004810193909352602483018290525163b242e53492604480820193929182900301818387803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050505050565b60345490565b60006108aa603454610928565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156108f657600080fd5b505afa15801561090a573d6000803e3d6000fd5b505050506040513d602081101561092057600080fd5b505192915050565b6033546000906001600160a01b0316610988576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d60208110156109fe57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b1580156108f657600080fdfe77616c6c657420616c7265616479206465706c6f79656420666f72206f776e6572a2646970667358221220b06b770616d93f6b71cb611584985e5a387782a26d5f96315ba86b18a0b3965964736f6c634300060c0033436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" +var WalletDeployerBin = "0x6080604052603380546001600160a01b0319166e0c2e074ec69a0dfb2997ba6c7d2e1e1790557f7f2ce995617d2816b426c5c8698c5ec2952f7a34bb10f38326f74933d58936976034557faf553cb0d77690819f9d6fbaa04416e1fdcfa01b2a9a833c7a11e6ae0bc1be886035553480156200007a57600080fd5b5060405162000d4e38038062000d4e83398181016040526060811015620000a057600080fd5b5080516020820151604090920151909190620000bc83620000dd565b620000c782620001b4565b8015620000d45760358190555b50505062000270565b600054610100900460ff1680620000f95750620000f96200026a565b8062000108575060005460ff16155b620001455760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d20602e913960400191505060405180910390fd5b600054610100900460ff1615801562000171576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216156200019d57603380546001600160a01b0319166001600160a01b0384161790555b8015620001b0576000805461ff00191690555b5050565b600054610100900460ff1680620001d05750620001d06200026a565b80620001df575060005460ff16155b6200021c5760405162461bcd60e51b815260040180806020018281038252602e81526020018062000d20602e913960400191505060405180910390fd5b600054610100900460ff1615801562000248576000805460ff1961ff0019909116610100171660011790555b81156200019d5760348290558015620001b0576000805461ff00191690555050565b303b1590565b610aa080620002806000396000f3fe6080604052600436106100555760003560e01c80637d73b2311461005a57806380a12c0e1461008b5780638d682ef7146100be578063a6ede3d414610180578063c8cc2fc2146101a7578063e2b4ce97146101da575b600080fd5b34801561006657600080fd5b5061006f6101ef565b604080516001600160a01b039092168252519081900360200190f35b34801561009757600080fd5b5061006f600480360360208110156100ae57600080fd5b50356001600160a01b03166101fe565b61017e60048036036101408110156100d557600080fd5b6001600160a01b03823581169260208101359091169160408201351515916060810135151591608082013515159160a081013515159160c08201359160e0810135916101008201359190810190610140810161012082013564010000000081111561013f57600080fd5b82018360208201111561015157600080fd5b8035906020019184602083028401116401000000008311171561017357600080fd5b509092509050610219565b005b34801561018c57600080fd5b506101956106f3565b60408051918252519081900360200190f35b3480156101b357600080fd5b5061017e600480360360208110156101ca57600080fd5b50356001600160a01b03166106f9565b3480156101e657600080fd5b50610195610897565b6033546001600160a01b031690565b6036602052600090815260409020546001600160a01b031681565b6102223361089d565b610273576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6001600160a01b038b811660009081526036602052604090205416156102ca5760405162461bcd60e51b8152600401808060200182810382526021815260200180610a4a6021913960400191505060405180910390fd5b8a6001600160a01b03168a6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561030d57600080fd5b505afa158015610321573d6000803e3d6000fd5b505050506040513d602081101561033757600080fd5b50516001600160a01b031614610385576040805162461bcd60e51b815260206004820152600e60248201526d0deeedccae440dad2e6dac2e8c6d60931b604482015290519081900360640190fd5b6000610392603554610928565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156103cc57600080fd5b505af11580156103e0573d6000803e3d6000fd5b505050506040513d60208110156103f657600080fd5b5051604080516001600160a01b038084168252808f1660208301528f168183015234606082015290519192507fc65d6ee9571556236e352151c95c79b6589474ad814195aaac7d5ab8d88ba2dd919081900360800190a16001600160a01b038c8116600090815260366020526040902080546001600160a01b03191691831691909117905589156104e057806001600160a01b0316633c672eb7876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156104c757600080fd5b505af11580156104db573d6000803e3d6000fd5b505050505b881561054557806001600160a01b0316630f3a85d8866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561052c57600080fd5b505af1158015610540573d6000803e3d6000fd5b505050505b87156105aa57806001600160a01b0316633bfec254856040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561059157600080fd5b505af11580156105a5573d6000803e3d6000fd5b505050505b861561063e57806001600160a01b031663f421764884846040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561062557600080fd5b505af1158015610639573d6000803e3d6000fd5b505050505b60408051632c90b94d60e21b81526001600160a01b038e8116600483015260006024830181905292519084169263b242e534926044808201939182900301818387803b15801561068d57600080fd5b505af11580156106a1573d6000803e3d6000fd5b5050505060003411156106e5576040516001600160a01b038d16903480156108fc02916000818181858888f193505050501580156106e3573d6000803e3d6000fd5b505b505050505050505050505050565b60355481565b6107023361089d565b610753576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6000610760603554610928565b6001600160a01b031663a4570e516040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b505050506040513d60208110156107c457600080fd5b5051604080516001600160a01b0380841682528516602082015281519293507fc02db5f4164f89d90905928336769906e16d79c4a77342126eb647ca9440d078929081900390910190a16001600160a01b0382811660008181526036602052604080822080546001600160a01b03191694861694851790558051632c90b94d60e21b81526004810193909352602483018290525163b242e53492604480820193929182900301818387803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050505050565b60345490565b60006108aa603454610928565b6001600160a01b031663b429afeb836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156108f657600080fd5b505afa15801561090a573d6000803e3d6000fd5b505050506040513d602081101561092057600080fd5b505192915050565b6033546000906001600160a01b0316610988576040805162461bcd60e51b815260206004820152601d60248201527f454e535265736f6c7661626c65206e6f7420696e697469616c697a6564000000604482015290519081900360640190fd5b60335460408051630178b8bf60e01b81526004810185905290516001600160a01b0390921691630178b8bf91602480820192602092909190829003018186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d60208110156109fe57600080fd5b505160408051631d9dabef60e11b81526004810185905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b1580156108f657600080fdfe77616c6c657420616c7265616479206465706c6f79656420666f72206f776e6572a2646970667358221220d3b603c025674e11b442953c5e63ada8c7429a23932e6557550aafc132e761b664736f6c634300060c0033436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564" // 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/test/wallet/top_up_gas_test.go b/test/wallet/top_up_gas_test.go index f8ae0f59..f86dce5c 100644 --- a/test/wallet/top_up_gas_test.go +++ b/test/wallet/top_up_gas_test.go @@ -272,4 +272,46 @@ var _ = Describe("topUpGas", func() { }) + Context("when the wallet has not enough ETH", func() { + BeforeEach(func() { + BankAccount.MustTransfer(Backend, WalletProxyAddress, GweiToWei(1)) + }) + + var tx *types.Transaction + var err error + var caller *ethertest.Account + var ownerBalance *big.Int + + BeforeEach(func() { + caller = Controller + BankAccount.MustTransfer(Backend, Controller.Address(), GweiToWei(20)) + ownerBalance, err = Backend.BalanceAt(context.Background(), Owner.Address(), nil) + Expect(err).ToNot(HaveOccurred()) + }) + + Context("When called by the wallet controller and is lower than top up limit", func() { + + BeforeEach(func() { + tx, err = WalletProxy.TopUpGas(caller.TransactOpts(ethertest.WithGasLimit(81000)), FinneyToWei(1)) + Backend.Commit() + Expect(isSuccessful(tx)).To(BeFalse()) + }) + + It("Should not return error", func() { + Expect(err).ToNot(HaveOccurred()) + }) + + It("should fail", func() { + Expect(isSuccessful(tx)).To(BeFalse()) + }) + + It("should NOT top up the gas", func() { + b, e := Backend.BalanceAt(context.Background(), WalletProxyAddress, nil) + Expect(e).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal(GweiToWei(1).String())) // Wallet address has initially 1 Gwei + Expect(Owner.Balance(Backend).String()).To(Equal(ownerBalance.String())) + }) + }) + }) + }) From 5d2fa442eafa1aa27044368f2de054bcf8c5fc58 Mon Sep 17 00:00:00 2001 From: nostdm Date: Wed, 16 Sep 2020 12:41:06 +0100 Subject: [PATCH 2/3] Fix slither --- tools/slither/slither.db.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/slither/slither.db.json b/tools/slither/slither.db.json index e4887602..45bd52ba 100644 --- a/tools/slither/slither.db.json +++ b/tools/slither/slither.db.json @@ -1 +1 @@ -[{"elements": [{"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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": 3570, "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": [87], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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": 3733, "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": [90], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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#72-112):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#87)\n\tState variables written after the call(s):\n\t- deployedWallets[_owner] = wallet (../../contracts/walletDeployer.sol#90)\n", "markdown": "Reentrancy in [WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])](../../contracts/walletDeployer.sol#L72-L112):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L87)\n\tState variables written after the call(s):\n\t- [deployedWallets[_owner] = wallet](../../contracts/walletDeployer.sol#L90)\n", "id": "08c17d72e3fea63da74bc79489b737cb23dc6017f94d4adaf52125d413e35151", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 2239, "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": [58], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 2239, "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": [58], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "deployedWallets[_owner] = wallet", "source_mapping": {"start": 2379, "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": [61], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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#57-65):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#58)\n\tState variables written after the call(s):\n\t- deployedWallets[_owner] = wallet (../../contracts/walletDeployer.sol#61)\n", "markdown": "Reentrancy in [WalletDeployer.deployWallet(address)](../../contracts/walletDeployer.sol#L57-L65):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L58)\n\tState variables written after the call(s):\n\t- [deployedWallets[_owner] = wallet](../../contracts/walletDeployer.sol#L61)\n", "id": "f0b7aad2205303350c897f944ae44b598d3483a6c19a4266efe45905252cf95e", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 2239, "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": [58], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "DeployedWallet(wallet,_owner)", "source_mapping": {"start": 2333, "length": 35, "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": [59], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in WalletDeployer.deployWallet(address) (../../contracts/walletDeployer.sol#57-65):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#58)\n\tEvent emitted after the call(s):\n\t- DeployedWallet(wallet,_owner) (../../contracts/walletDeployer.sol#59)\n", "markdown": "Reentrancy in [WalletDeployer.deployWallet(address)](../../contracts/walletDeployer.sol#L57-L65):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L58)\n\tEvent emitted after the call(s):\n\t- [DeployedWallet(wallet,_owner)](../../contracts/walletDeployer.sol#L59)\n", "id": "402373ea64c629a1e6a8492e757dbb4c9ae11b7e4687b3a69769d611ce299adb", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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": 3570, "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": [87], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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": "MigratedWallet(wallet,_oldWallet,_owner,msg.value)", "source_mapping": {"start": 3664, "length": 58, "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": [88], "starting_column": 9, "ending_column": 67}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[]) (../../contracts/walletDeployer.sol#72-112):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#87)\n\tEvent emitted after the call(s):\n\t- MigratedWallet(wallet,_oldWallet,_owner,msg.value) (../../contracts/walletDeployer.sol#88)\n", "markdown": "Reentrancy in [WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])](../../contracts/walletDeployer.sol#L72-L112):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L87)\n\tEvent emitted after the call(s):\n\t- [MigratedWallet(wallet,_oldWallet,_owner,msg.value)](../../contracts/walletDeployer.sol#L88)\n", "id": "4a7fb4ad6d950016772175c04421bfb2683ec214fce6efed77598fd2843feae3", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "WalletDeployer.slitherConstructorVariables() (../../contracts/walletDeployer.sol#28-113) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[WalletDeployer.slitherConstructorVariables()](../../contracts/walletDeployer.sol#L28-L113) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "f6fb64f21a2684f963798ca8643ba32f8b907a86dae7800a6403eaced385dbf2", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1165, "length": 16184, "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": [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, 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, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelist", "source_mapping": {"start": 1165, "length": 16184, "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": [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, 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, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1165, "length": 16184, "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": [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, 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, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelist", "source_mapping": {"start": 1165, "length": 16184, "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": [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, 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, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "TokenWhitelist.slitherConstructorVariables() (../../contracts/tokenWhitelist.sol#30-389) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[TokenWhitelist.slitherConstructorVariables()](../../contracts/tokenWhitelist.sol#L30-L389) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "3ba51ca2fd1cb5bc5e3b3f4e806726b88ab00ee0c96ae77cea1fa201fbd9e8e1", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3839, "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": [96, 97, 98, 99, 100, 101, 102, 103, 104, 105], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}, {"type": "node", "name": "cacheWallet()", "source_mapping": {"start": 3973, "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": [98], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3839, "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": [96, 97, 98, 99, 100, 101, 102, 103, 104, 105], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4320, "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": [110], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4413, "length": 352, "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": [111, 112, 113, 114, 115, 116, 117, 118, 119], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "cachedWallets.pop()", "source_mapping": {"start": 4081, "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": [102], "starting_column": 9, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3839, "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": [96, 97, 98, 99, 100, 101, 102, 103, 104, 105], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "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#96-105):\n\tExternal calls:\n\t- cacheWallet() (../../contracts/walletCache.sol#98)\n\t\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#110)\n\t\t- IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#111-119)\n\tState variables written after the call(s):\n\t- cachedWallets.pop() (../../contracts/walletCache.sol#102)\n", "markdown": "Reentrancy in [WalletCache.walletCachePop()](../../contracts/walletCache.sol#L96-L105):\n\tExternal calls:\n\t- [cacheWallet()](../../contracts/walletCache.sol#L98)\n\t\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L110)\n\t\t- [IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L111-L119)\n\tState variables written after the call(s):\n\t- [cachedWallets.pop()](../../contracts/walletCache.sol#L102)\n", "id": "3ffb1bc3f21fab1b8590a3173be21b2f5cfb5d6d8265dc6d255832ee024c369a", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4320, "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": [110], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4413, "length": 352, "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": [111, 112, 113, 114, 115, 116, 117, 118, 119], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4320, "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": [110], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4413, "length": 352, "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": [111, 112, 113, 114, 115, 116, 117, 118, 119], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "cachedWallets.push(wallet)", "source_mapping": {"start": 4775, "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": [120], "starting_column": 9, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "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#108-123):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#110)\n\t- IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#111-119)\n\tState variables written after the call(s):\n\t- cachedWallets.push(wallet) (../../contracts/walletCache.sol#120)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L108-L123):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L110)\n\t- [IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L111-L119)\n\tState variables written after the call(s):\n\t- [cachedWallets.push(wallet)](../../contracts/walletCache.sol#L120)\n", "id": "d3dd739fcff6db5a38dc65bdeeb41732a4c3a44a5d8ea06d002d7969c0ed43d6", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4320, "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": [110], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4413, "length": 352, "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": [111, 112, 113, 114, 115, 116, 117, 118, 119], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "CachedWallet(wallet)", "source_mapping": {"start": 4812, "length": 25, "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": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in WalletCache.cacheWallet() (../../contracts/walletCache.sol#108-123):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#110)\n\t- IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#111-119)\n\tEvent emitted after the call(s):\n\t- CachedWallet(wallet) (../../contracts/walletCache.sol#122)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L108-L123):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L110)\n\t- [IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L111-L119)\n\tEvent emitted after the call(s):\n\t- [CachedWallet(wallet)](../../contracts/walletCache.sol#L122)\n", "id": "729f5a28e0bc8fd5a3ece7be02c86d5276e49a7e38cee307d7a8f28d47e624ad", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "WalletCache.slitherConstructorVariables() (../../contracts/walletCache.sol#34-124) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[WalletCache.slitherConstructorVariables()](../../contracts/walletCache.sol#L34-L124) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "6ec589a43a86c3ef63ba62623f4aedb63ecec23673914983fe9fe63d9eaf71fc", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6770, "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": [129], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (decMinted))", "source_mapping": {"start": 7657, "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": [147], "starting_column": 13, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#50-164) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#129)\n\t-mint = mint.mul(10 ** (decMinted)) (../../contracts/internals/parseIntScientific.sol#147)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L50-L164) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L129)\n\t-[mint = mint.mul(10 ** (decMinted))](../../contracts/internals/parseIntScientific.sol#L147)\n", "id": "a00cbae754b82e0580bb91c49d84e3f84757fe6b95d296e7f5362f4c52732bc2", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6770, "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": [129], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (_magnitudeMult - decMinted))", "source_mapping": {"start": 7901, "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": [151], "starting_column": 13, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#50-164) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#129)\n\t-mint = mint.mul(10 ** (_magnitudeMult - decMinted)) (../../contracts/internals/parseIntScientific.sol#151)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L50-L164) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L129)\n\t-[mint = mint.mul(10 ** (_magnitudeMult - decMinted))](../../contracts/internals/parseIntScientific.sol#L151)\n", "id": "1d12d010b1dcecf3c2d9a7a85a0ed58b1deeaa0b934e4c4434affedabaac2cba", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6770, "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": [129], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (_magnitudeMult))", "source_mapping": {"start": 8410, "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": [160], "starting_column": 13, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#50-164) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#129)\n\t-mint = mint.mul(10 ** (_magnitudeMult)) (../../contracts/internals/parseIntScientific.sol#160)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L50-L164) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L129)\n\t-[mint = mint.mul(10 ** (_magnitudeMult))](../../contracts/internals/parseIntScientific.sol#L160)\n", "id": "e91e10a4132eaefdd900d02403aa4e7f44e4a4f6cd387cba17518f54a90bc2ab", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mintDec /= 10 ** (decMinted)", "source_mapping": {"start": 8227, "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": [157], "starting_column": 13, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mintDec = mintDec.mul(10)", "source_mapping": {"start": 3724, "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": [69], "starting_column": 21, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#50-164) performs a multiplication on the result of a division:\n\t-mintDec /= 10 ** (decMinted) (../../contracts/internals/parseIntScientific.sol#157)\n\t-mintDec = mintDec.mul(10) (../../contracts/internals/parseIntScientific.sol#69)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L50-L164) performs a multiplication on the result of a division:\n\t-[mintDec /= 10 ** (decMinted)](../../contracts/internals/parseIntScientific.sol#L157)\n\t-[mintDec = mintDec.mul(10)](../../contracts/internals/parseIntScientific.sol#L69)\n", "id": "b07f9d14a8de905177c26444d3943a865a87c6f31f38a7867352b2ad2bbfcd1b", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6770, "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": [129], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10)", "source_mapping": {"start": 4094, "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": [76], "starting_column": 21, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#50-164) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#129)\n\t-mint = mint.mul(10) (../../contracts/internals/parseIntScientific.sol#76)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L50-L164) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L129)\n\t-[mint = mint.mul(10)](../../contracts/internals/parseIntScientific.sol#L76)\n", "id": "0e970ab548d58d51263afb00b0f30a0d9498eb69cd76f96228dfaabb8a30df4b", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "parseRate", "source_mapping": {"start": 4890, "length": 874, "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": [116, 117, 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": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "parseRate(string)"}}, {"type": "node", "name": "body.split(:.toSlice())", "source_mapping": {"start": 5420, "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": [126], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "parseRate", "source_mapping": {"start": 4890, "length": 874, "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": [116, 117, 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": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "parseRate(string)"}}}}], "description": "Oracle.parseRate(string) (../../contracts/oracle.sol#116-133) ignores return value by body.split(:.toSlice()) (../../contracts/oracle.sol#126)\n", "markdown": "[Oracle.parseRate(string)](../../contracts/oracle.sol#L116-L133) ignores return value by [body.split(:.toSlice())](../../contracts/oracle.sol#L126)\n", "id": "21f8486b9622b298d2d789c38e02589e0f8f285ae2afcf1c5e8d557d2ed414d8", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "parseRate", "source_mapping": {"start": 4890, "length": 874, "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": [116, 117, 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": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "parseRate(string)"}}, {"type": "node", "name": "body.until(}.toSlice())", "source_mapping": {"start": 5573, "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": [129], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "parseRate", "source_mapping": {"start": 4890, "length": 874, "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": [116, 117, 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": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "parseRate(string)"}}}}], "description": "Oracle.parseRate(string) (../../contracts/oracle.sol#116-133) ignores return value by body.until(}.toSlice()) (../../contracts/oracle.sol#129)\n", "markdown": "[Oracle.parseRate(string)](../../contracts/oracle.sol#L116-L133) ignores return value by [body.until(}.toSlice())](../../contracts/oracle.sol#L129)\n", "id": "30217163eae600a9621a0d1eddc7e5fe773b534668ab60f48a814761acaa25c8", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Oracle.slitherConstructorVariables() (../../contracts/oracle.sol#34-271) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[Oracle.slitherConstructorVariables()](../../contracts/oracle.sol#L34-L271) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "1ccc8623a1b94671b5a93fca4cd2c83f1a9019002669cd6f59043b11a6ad200a", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1288, "length": 3602, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1288, "length": 3602, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1288, "length": 3602, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1288, "length": 3602, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Holder.slitherConstructorVariables() (../../contracts/holder.sol#33-115) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[Holder.slitherConstructorVariables()](../../contracts/holder.sol#L33-L115) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "ab16c2a943e01c8201ac13da06217a3749fd06371ab968890b731a984fcdee99", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 33555, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}, {"type": "node", "name": "amountToSend = _amount.mul(rate).div(magnitude)", "source_mapping": {"start": 34446, "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": [748], "starting_column": 13, "ending_column": 60}, "type_specific_fields": {"parent": {"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 33555, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}}}, {"type": "node", "name": "amountToSend.mul(stablecoinMagnitude).div(stablecoinRate)", "source_mapping": {"start": 35024, "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": [757], "starting_column": 9, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 33555, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}}}], "description": "Wallet.convertToStablecoin(address,uint256) (../../contracts/wallet.sol#732-758) performs a multiplication on the result of a division:\n\t-amountToSend = _amount.mul(rate).div(magnitude) (../../contracts/wallet.sol#748)\n\t-amountToSend.mul(stablecoinMagnitude).div(stablecoinRate) (../../contracts/wallet.sol#757)\n", "markdown": "[Wallet.convertToStablecoin(address,uint256)](../../contracts/wallet.sol#L732-L758) performs a multiplication on the result of a division:\n\t-[amountToSend = _amount.mul(rate).div(magnitude)](../../contracts/wallet.sol#L748)\n\t-[amountToSend.mul(stablecoinMagnitude).div(stablecoinRate)](../../contracts/wallet.sol#L757)\n", "id": "bb60e06ae3f0c10646e504af1b64466ebd427b0dbfcfddab90cc87100c5f5086", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_tokenWhitelistNode", "source_mapping": {"start": 21839, "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": [498], "starting_column": 35, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "_initializeLoadLimit", "source_mapping": {"start": 21809, "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": [498, 499, 500, 501, 502, 503, 504], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "LoadLimit", "source_mapping": {"start": 19723, "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": [445, 446, 447, 448, 449, 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], "starting_column": 1, "ending_column": 2}}, "signature": "_initializeLoadLimit(bytes32)"}}}}, {"type": "variable", "name": "_tokenWhitelistNode", "source_mapping": {"start": 1348, "length": 67, "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": [33], "starting_column": 5, "ending_column": 72}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelistable", "source_mapping": {"start": 1045, "length": 5236, "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": [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], "starting_column": 1, "ending_column": 2}}}}], "description": "LoadLimit._initializeLoadLimit(bytes32)._tokenWhitelistNode (../../contracts/wallet.sol#498) shadows:\n\t- TokenWhitelistable._tokenWhitelistNode (../../contracts/internals/tokenWhitelistable.sol#33) (state variable)\n", "markdown": "[LoadLimit._initializeLoadLimit(bytes32)._tokenWhitelistNode](../../contracts/wallet.sol#L498) shadows:\n\t- [TokenWhitelistable._tokenWhitelistNode](../../contracts/internals/tokenWhitelistable.sol#L33) (state variable)\n", "id": "8f15cbf6d24a4b17962fde5591cd20736fc2ed8d234ab44f7ef3eab547790f4e", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "function", "name": "executeRelayedTransaction", "source_mapping": {"start": 25611, "length": 1141, "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": [575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeRelayedTransaction(uint256,bytes,bytes)"}}, {"type": "node", "name": "(success,returnData) = address(this).call(_data)", "source_mapping": {"start": 26571, "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": [594], "starting_column": 9, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "executeRelayedTransaction", "source_mapping": {"start": 25611, "length": 1141, "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": [575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeRelayedTransaction(uint256,bytes,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ExecutedRelayedTransaction(_data,returnData)", "source_mapping": {"start": 26695, "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": [597], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "executeRelayedTransaction", "source_mapping": {"start": 25611, "length": 1141, "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": [575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeRelayedTransaction(uint256,bytes,bytes)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Wallet.executeRelayedTransaction(uint256,bytes,bytes) (../../contracts/wallet.sol#575-598):\n\tExternal calls:\n\t- (success,returnData) = address(this).call(_data) (../../contracts/wallet.sol#594)\n\tEvent emitted after the call(s):\n\t- ExecutedRelayedTransaction(_data,returnData) (../../contracts/wallet.sol#597)\n", "markdown": "Reentrancy in [Wallet.executeRelayedTransaction(uint256,bytes,bytes)](../../contracts/wallet.sol#L575-L598):\n\tExternal calls:\n\t- [(success,returnData) = address(this).call(_data)](../../contracts/wallet.sol#L594)\n\tEvent emitted after the call(s):\n\t- [ExecutedRelayedTransaction(_data,returnData)](../../contracts/wallet.sol#L597)\n", "id": "fd7a2414668142cb7d8c6e926deb48e7d79b488892a1c4124a90ee572a54f66b", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35355, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}, {"type": "node", "name": "IERC20(_destination)._callOptionalReturn(_data)", "source_mapping": {"start": 36694, "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": [788], "starting_column": 13, "ending_column": 60}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35355, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ExecutedTransaction(_destination,_value,_data,b)", "source_mapping": {"start": 36916, "length": 56, "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": [794], "starting_column": 13, "ending_column": 69}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35355, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Wallet.executeTransaction(address,uint256,bytes) (../../contracts/wallet.sol#764-804):\n\tExternal calls:\n\t- IERC20(_destination)._callOptionalReturn(_data) (../../contracts/wallet.sol#788)\n\tEvent emitted after the call(s):\n\t- ExecutedTransaction(_destination,_value,_data,b) (../../contracts/wallet.sol#794)\n", "markdown": "Reentrancy in [Wallet.executeTransaction(address,uint256,bytes)](../../contracts/wallet.sol#L764-L804):\n\tExternal calls:\n\t- [IERC20(_destination)._callOptionalReturn(_data)](../../contracts/wallet.sol#L788)\n\tEvent emitted after the call(s):\n\t- [ExecutedTransaction(_destination,_value,_data,b)](../../contracts/wallet.sol#L794)\n", "id": "50dc37afd0f6bda58f0730d738c2b02a44767db1ec08babac886fe27ae31774c", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35355, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}, {"type": "node", "name": "(success,returnData) = _destination.call{value: _value}(_data)", "source_mapping": {"start": 37015, "length": 81, "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": [798], "starting_column": 9, "ending_column": 90}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35355, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ExecutedTransaction(_destination,_value,_data,returnData)", "source_mapping": {"start": 37153, "length": 65, "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": [801], "starting_column": 9, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35355, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Wallet.executeTransaction(address,uint256,bytes) (../../contracts/wallet.sol#764-804):\n\tExternal calls:\n\t- (success,returnData) = _destination.call{value: _value}(_data) (../../contracts/wallet.sol#798)\n\tEvent emitted after the call(s):\n\t- ExecutedTransaction(_destination,_value,_data,returnData) (../../contracts/wallet.sol#801)\n", "markdown": "Reentrancy in [Wallet.executeTransaction(address,uint256,bytes)](../../contracts/wallet.sol#L764-L804):\n\tExternal calls:\n\t- [(success,returnData) = _destination.call{value: _value}(_data)](../../contracts/wallet.sol#L798)\n\tEvent emitted after the call(s):\n\t- [ExecutedTransaction(_destination,_value,_data,returnData)](../../contracts/wallet.sol#L801)\n", "id": "7fbface38b54240c355e1fdaadfbe89242011b7de3af87359badfd57978a97da", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}, {"type": "node", "name": "IERC20(_asset).safeApprove(licenceAddress,_amount)", "source_mapping": {"start": 29184, "length": 51, "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": [648], "starting_column": 13, "ending_column": 64}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "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": 29249, "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": [649], "starting_column": 13, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "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": 29326, "length": 62, "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": [651], "starting_column": 13, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "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": 29326, "length": 62, "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": [651], "starting_column": 13, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "LoadedTokenCard(_asset,_amount)", "source_mapping": {"start": 29409, "length": 37, "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": [654], "starting_column": 9, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Wallet.loadTokenCard(address,uint256) (../../contracts/wallet.sol#638-655):\n\tExternal calls:\n\t- IERC20(_asset).safeApprove(licenceAddress,_amount) (../../contracts/wallet.sol#648)\n\t- ILicence(licenceAddress).load(_asset,_amount) (../../contracts/wallet.sol#649)\n\t- ILicence(licenceAddress).load{value: _amount}(_asset,_amount) (../../contracts/wallet.sol#651)\n\tExternal calls sending eth:\n\t- ILicence(licenceAddress).load{value: _amount}(_asset,_amount) (../../contracts/wallet.sol#651)\n\tEvent emitted after the call(s):\n\t- LoadedTokenCard(_asset,_amount) (../../contracts/wallet.sol#654)\n", "markdown": "Reentrancy in [Wallet.loadTokenCard(address,uint256)](../../contracts/wallet.sol#L638-L655):\n\tExternal calls:\n\t- [IERC20(_asset).safeApprove(licenceAddress,_amount)](../../contracts/wallet.sol#L648)\n\t- [ILicence(licenceAddress).load(_asset,_amount)](../../contracts/wallet.sol#L649)\n\t- [ILicence(licenceAddress).load{value: _amount}(_asset,_amount)](../../contracts/wallet.sol#L651)\n\tExternal calls sending eth:\n\t- [ILicence(licenceAddress).load{value: _amount}(_asset,_amount)](../../contracts/wallet.sol#L651)\n\tEvent emitted after the call(s):\n\t- [LoadedTokenCard(_asset,_amount)](../../contracts/wallet.sol#L654)\n", "id": "6d9ec72b6be638f2f6ce2dc892658392de55592a20b6c03e6b8cb771c5881a97", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_getAvailableLimit", "source_mapping": {"start": 12736, "length": 240, "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": [276, 277, 278, 279, 280, 281, 282], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DailyLimitTrait", "source_mapping": {"start": 11495, "length": 3455, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_getAvailableLimit(DailyLimitTrait.DailyLimit)"}}, {"type": "node", "name": "now > self.limitTimestamp.add(86400)", "source_mapping": {"start": 12835, "length": 39, "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": [277], "starting_column": 13, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "_getAvailableLimit", "source_mapping": {"start": 12736, "length": 240, "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": [276, 277, 278, 279, 280, 281, 282], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DailyLimitTrait", "source_mapping": {"start": 11495, "length": 3455, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_getAvailableLimit(DailyLimitTrait.DailyLimit)"}}}}], "description": "DailyLimitTrait._getAvailableLimit(DailyLimitTrait.DailyLimit) (../../contracts/wallet.sol#276-282) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- now > self.limitTimestamp.add(86400) (../../contracts/wallet.sol#277)\n", "markdown": "[DailyLimitTrait._getAvailableLimit(DailyLimitTrait.DailyLimit)](../../contracts/wallet.sol#L276-L282) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [now > self.limitTimestamp.add(86400)](../../contracts/wallet.sol#L277)\n", "id": "a88a1183e45466591a276356c926ebf70a5ac492c7271546b57f1909cf4fb60d", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateAvailableLimit", "source_mapping": {"start": 14578, "length": 370, "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": [318, 319, 320, 321, 322, 323, 324, 325, 326], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DailyLimitTrait", "source_mapping": {"start": 11495, "length": 3455, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_updateAvailableLimit(DailyLimitTrait.DailyLimit)"}}, {"type": "node", "name": "now > self.limitTimestamp.add(86400)", "source_mapping": {"start": 14656, "length": 39, "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": [319], "starting_column": 13, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateAvailableLimit", "source_mapping": {"start": 14578, "length": 370, "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": [318, 319, 320, 321, 322, 323, 324, 325, 326], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DailyLimitTrait", "source_mapping": {"start": 11495, "length": 3455, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_updateAvailableLimit(DailyLimitTrait.DailyLimit)"}}}}], "description": "DailyLimitTrait._updateAvailableLimit(DailyLimitTrait.DailyLimit) (../../contracts/wallet.sol#318-326) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- now > self.limitTimestamp.add(86400) (../../contracts/wallet.sol#319)\n", "markdown": "[DailyLimitTrait._updateAvailableLimit(DailyLimitTrait.DailyLimit)](../../contracts/wallet.sol#L318-L326) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [now > self.limitTimestamp.add(86400)](../../contracts/wallet.sol#L319)\n", "id": "79967c539447e17dc6ee9c3ea09ef3fb94efe619db1c107e91000247e937d1b9", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "topUpGas", "source_mapping": {"start": 29844, "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": [664, 665, 666, 667, 668, 669, 670, 671], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "topUpGas(uint256)"}}, {"type": "node", "name": "owner().transfer(_amount)", "source_mapping": {"start": 30143, "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": [668], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "topUpGas", "source_mapping": {"start": 29844, "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": [664, 665, 666, 667, 668, 669, 670, 671], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "topUpGas(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ToppedUpGas(msg.sender,owner(),_amount)", "source_mapping": {"start": 30216, "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": [670], "starting_column": 9, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "topUpGas", "source_mapping": {"start": 29844, "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": [664, 665, 666, 667, 668, 669, 670, 671], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "topUpGas(uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Wallet.topUpGas(uint256) (../../contracts/wallet.sol#664-671):\n\tExternal calls:\n\t- owner().transfer(_amount) (../../contracts/wallet.sol#668)\n\tEvent emitted after the call(s):\n\t- ToppedUpGas(msg.sender,owner(),_amount) (../../contracts/wallet.sol#670)\n", "markdown": "Reentrancy in [Wallet.topUpGas(uint256)](../../contracts/wallet.sol#L664-L671):\n\tExternal calls:\n\t- [owner().transfer(_amount)](../../contracts/wallet.sol#L668)\n\tEvent emitted after the call(s):\n\t- [ToppedUpGas(msg.sender,owner(),_amount)](../../contracts/wallet.sol#L670)\n", "id": "ef2b5d76a00a5f785e34d6f252eb3c3dc5d278312a567d817fda4349b417f491", "check": "reentrancy-unlimited-gas", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Wallet.slitherConstructorVariables() (../../contracts/wallet.sol#508-845) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[Wallet.slitherConstructorVariables()](../../contracts/wallet.sol#L508-L845) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "2fe37a4cad071bfa6d82a1450bfeecafbc3e29abd64963b028105a4d9582ef0a", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "batchExecuteTransaction", "source_mapping": {"start": 30601, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "batchExecuteTransaction(bytes)"}}], "description": "batchExecuteTransaction(bytes) should be declared external:\n\t- Wallet.batchExecuteTransaction(bytes) (../../contracts/wallet.sol#677-712)\n", "markdown": "batchExecuteTransaction(bytes) should be declared external:\n\t- [Wallet.batchExecuteTransaction(bytes)](../../contracts/wallet.sol#L677-L712)\n", "id": "25be393b22a852005aebc844d44187435f0cfff81e7632ced668dd912f0e2261", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "transfer", "source_mapping": {"start": 38126, "length": 1127, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 16880, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "transfer(address,address,uint256)"}}], "description": "transfer(address,address,uint256) should be declared external:\n\t- Wallet.transfer(address,address,uint256) (../../contracts/wallet.sol#820-844)\n", "markdown": "transfer(address,address,uint256) should be declared external:\n\t- [Wallet.transfer(address,address,uint256)](../../contracts/wallet.sol#L820-L844)\n", "id": "b19b3dda14789ad85379258374bd5193fe48580bb2ea18c14a6866357ec7209b", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 8869, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}}, {"type": "node", "name": "_cryptoFloat.transfer(loadAmount)", "source_mapping": {"start": 8923, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)", "source_mapping": {"start": 8589, "length": 72, "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": 89}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8679, "length": 69, "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": 86}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": 8869, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": 8923, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount)", "source_mapping": {"start": 8985, "length": 78, "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": [219], "starting_column": 13, "ending_column": 91}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Licence.load(address,uint256) (../../contracts/licence.sol#201-223):\n\tExternal calls:\n\t- IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount) (../../contracts/licence.sol#211)\n\t- IERC20(_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- [IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)](../../contracts/licence.sol#L211)\n\t- [IERC20(_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": "ab8f3835605e2d6159e5db4f37dce11ccdcd6f5bd12fff12d51622a9cb8e5453", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "IERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8282, "length": 69, "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": 82}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)", "source_mapping": {"start": 8589, "length": 72, "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": 89}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8679, "length": 69, "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": 86}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": 8869, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": 8923, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount)", "source_mapping": {"start": 9084, "length": 75, "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": [222], "starting_column": 9, "ending_column": 84}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Licence.load(address,uint256) (../../contracts/licence.sol#201-223):\n\tExternal calls:\n\t- IERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount) (../../contracts/licence.sol#205)\n\t- IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount) (../../contracts/licence.sol#211)\n\t- IERC20(_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- [IERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)](../../contracts/licence.sol#L205)\n\t- [IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)](../../contracts/licence.sol#L211)\n\t- [IERC20(_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": "0b66bfae7ffcf90f00f0a76079b285289d517503f7c8d1dd100edcc09956113e", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 8869, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": 8923, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount)", "source_mapping": {"start": 9084, "length": 75, "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": [222], "starting_column": 9, "ending_column": 84}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount)", "source_mapping": {"start": 8985, "length": 78, "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": [219], "starting_column": 13, "ending_column": 91}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "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- TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount) (../../contracts/licence.sol#222)\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- [_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\t- [TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount)](../../contracts/licence.sol#L219)\n", "id": "bbb126fc2fc1618ff0d13105f131a70023ab7963d1556c263706b87552939c1c", "check": "reentrancy-unlimited-gas", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Licence.slitherConstructorVariables() (../../contracts/licence.sol#31-254) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[Licence.slitherConstructorVariables()](../../contracts/licence.sol#L31-L254) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "ddd5fb5c3b142504e4277598a2547e1741a8d933f34e84e86b548befebf2252b", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "refundGas", "source_mapping": {"start": 1687, "length": 274, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefundable", "source_mapping": {"start": 901, "length": 2256, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.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], "starting_column": 1, "ending_column": 2}}, "signature": "refundGas()"}}, {"type": "node", "name": "_gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit)", "source_mapping": {"start": 1847, "length": 107, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [44], "starting_column": 9, "ending_column": 116}, "type_specific_fields": {"parent": {"type": "function", "name": "refundGas", "source_mapping": {"start": 1687, "length": 274, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefundable", "source_mapping": {"start": 901, "length": 2256, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.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], "starting_column": 1, "ending_column": 2}}, "signature": "refundGas()"}}}}], "description": "GasRefundable.refundGas() (../../contracts/internals/gasRefundable.sol#40-45) ignores return value by _gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit) (../../contracts/internals/gasRefundable.sol#44)\n", "markdown": "[GasRefundable.refundGas()](../../contracts/internals/gasRefundable.sol#L40-L45) ignores return value by [_gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit)](../../contracts/internals/gasRefundable.sol#L44)\n", "id": "b75743d2bf9fc11b85a8d9fdebf99c34d10435409f23409fa2d0973b85c8c081", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "owner", "source_mapping": {"start": 641, "length": 13, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [20], "starting_column": 59, "ending_column": 72}, "type_specific_fields": {"parent": {"type": "function", "name": "setSubnodeOwner", "source_mapping": {"start": 587, "length": 78, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [20], "starting_column": 5, "ending_column": 83}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "setSubnodeOwner(bytes32,bytes32,address)"}}}}, {"type": "function", "name": "owner", "source_mapping": {"start": 854, "length": 61, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [24], "starting_column": 5, "ending_column": 66}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "owner(bytes32)"}}], "description": "IENS.setSubnodeOwner(bytes32,bytes32,address).owner (../../contracts/interfaces/IENS.sol#20) shadows:\n\t- IENS.owner(bytes32) (../../contracts/interfaces/IENS.sol#24) (function)\n", "markdown": "[IENS.setSubnodeOwner(bytes32,bytes32,address).owner](../../contracts/interfaces/IENS.sol#L20) shadows:\n\t- [IENS.owner(bytes32)](../../contracts/interfaces/IENS.sol#L24) (function)\n", "id": "b8efeadf77d41b1a7d348368cca9449309ebb832456da6bf37c0342bf862a499", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "variable", "name": "resolver", "source_mapping": {"start": 705, "length": 16, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [21], "starting_column": 40, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "function", "name": "setResolver", "source_mapping": {"start": 670, "length": 62, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [21], "starting_column": 5, "ending_column": 67}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "setResolver(bytes32,address)"}}}}, {"type": "function", "name": "resolver", "source_mapping": {"start": 920, "length": 64, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [25], "starting_column": 5, "ending_column": 69}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "resolver(bytes32)"}}], "description": "IENS.setResolver(bytes32,address).resolver (../../contracts/interfaces/IENS.sol#21) shadows:\n\t- IENS.resolver(bytes32) (../../contracts/interfaces/IENS.sol#25) (function)\n", "markdown": "[IENS.setResolver(bytes32,address).resolver](../../contracts/interfaces/IENS.sol#L21) shadows:\n\t- [IENS.resolver(bytes32)](../../contracts/interfaces/IENS.sol#L25) (function)\n", "id": "130d460d673393efe8a8da0e46e6b069c8552de929f23a9872afa5af3064cfd3", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "variable", "name": "owner", "source_mapping": {"start": 769, "length": 13, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [22], "starting_column": 37, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "setOwner", "source_mapping": {"start": 737, "length": 56, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [22], "starting_column": 5, "ending_column": 61}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "setOwner(bytes32,address)"}}}}, {"type": "function", "name": "owner", "source_mapping": {"start": 854, "length": 61, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [24], "starting_column": 5, "ending_column": 66}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "owner(bytes32)"}}], "description": "IENS.setOwner(bytes32,address).owner (../../contracts/interfaces/IENS.sol#22) shadows:\n\t- IENS.owner(bytes32) (../../contracts/interfaces/IENS.sol#24) (function)\n", "markdown": "[IENS.setOwner(bytes32,address).owner](../../contracts/interfaces/IENS.sol#L22) shadows:\n\t- [IENS.owner(bytes32)](../../contracts/interfaces/IENS.sol#L24) (function)\n", "id": "68a9c62e14cf270cc78b15e4f6eff049bf028789e5364f716487844103314b09", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "variable", "name": "ttl", "source_mapping": {"start": 828, "length": 10, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [23], "starting_column": 35, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "setTTL", "source_mapping": {"start": 798, "length": 51, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [23], "starting_column": 5, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "setTTL(bytes32,uint64)"}}}}, {"type": "function", "name": "ttl", "source_mapping": {"start": 989, "length": 58, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [26], "starting_column": 5, "ending_column": 63}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "ttl(bytes32)"}}], "description": "IENS.setTTL(bytes32,uint64).ttl (../../contracts/interfaces/IENS.sol#23) shadows:\n\t- IENS.ttl(bytes32) (../../contracts/interfaces/IENS.sol#26) (function)\n", "markdown": "[IENS.setTTL(bytes32,uint64).ttl](../../contracts/interfaces/IENS.sol#L23) shadows:\n\t- [IENS.ttl(bytes32)](../../contracts/interfaces/IENS.sol#L26) (function)\n", "id": "a69f8ad16df8947c6709bf091d37a3ec734d1ab5151c7135b5df2cc84378909c", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "function", "name": "executeTransaction", "source_mapping": {"start": 2089, "length": 433, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}, {"type": "node", "name": "(success,returnData) = _destination.call{value: _value}(_data)", "source_mapping": {"start": 2282, "length": 81, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [50], "starting_column": 9, "ending_column": 90}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 2089, "length": 433, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "refundGas()", "source_mapping": {"start": 2239, "length": 9, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [49], "starting_column": 39, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 2089, "length": 433, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit)", "source_mapping": {"start": 1847, "length": 107, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [44], "starting_column": 9, "ending_column": 116}, "type_specific_fields": {"parent": {"type": "function", "name": "refundGas", "source_mapping": {"start": 1687, "length": 274, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefundable", "source_mapping": {"start": 901, "length": 2256, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.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], "starting_column": 1, "ending_column": 2}}, "signature": "refundGas()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "(success,returnData) = _destination.call{value: _value}(_data)", "source_mapping": {"start": 2282, "length": 81, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [50], "starting_column": 9, "ending_column": 90}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 2089, "length": 433, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "ExecutedTransaction(_destination,_value,_data,returnData)", "source_mapping": {"start": 2423, "length": 65, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [52], "starting_column": 9, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 2089, "length": 433, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in GasProxy.executeTransaction(address,uint256,bytes) (../../contracts/gasProxy.sol#45-54):\n\tExternal calls:\n\t- (success,returnData) = _destination.call{value: _value}(_data) (../../contracts/gasProxy.sol#50)\n\t- refundGas() (../../contracts/gasProxy.sol#49)\n\t\t- _gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit) (../../contracts/internals/gasRefundable.sol#44)\n\tExternal calls sending eth:\n\t- (success,returnData) = _destination.call{value: _value}(_data) (../../contracts/gasProxy.sol#50)\n\tEvent emitted after the call(s):\n\t- ExecutedTransaction(_destination,_value,_data,returnData) (../../contracts/gasProxy.sol#52)\n", "markdown": "Reentrancy in [GasProxy.executeTransaction(address,uint256,bytes)](../../contracts/gasProxy.sol#L45-L54):\n\tExternal calls:\n\t- [(success,returnData) = _destination.call{value: _value}(_data)](../../contracts/gasProxy.sol#L50)\n\t- [refundGas()](../../contracts/gasProxy.sol#L49)\n\t\t- [_gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit)](../../contracts/internals/gasRefundable.sol#L44)\n\tExternal calls sending eth:\n\t- [(success,returnData) = _destination.call{value: _value}(_data)](../../contracts/gasProxy.sol#L50)\n\tEvent emitted after the call(s):\n\t- [ExecutedTransaction(_destination,_value,_data,returnData)](../../contracts/gasProxy.sol#L52)\n", "id": "068c35828662fe2aa881b25e2c4d696b8f9ef37468232254c1c64db5f71f0109", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "GasProxy.slitherConstructorVariables() (../../contracts/gasProxy.sol#24-55) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[GasProxy.slitherConstructorVariables()](../../contracts/gasProxy.sol#L24-L55) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "8d59c600de2d2cc19c4bf271ece114c7e452982cd3d73eaec8ac52f4452c3633", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_gasToken = IGasToken(0x0000000000004946c0e9F43F4Dee607b0eF1fA1c)", "source_mapping": {"start": 1267, "length": 83, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [35], "starting_column": 5, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "GasProxy.slitherConstructorVariables() (../../contracts/gasProxy.sol#24-55) uses literals with too many digits:\n\t- _gasToken = IGasToken(0x0000000000004946c0e9F43F4Dee607b0eF1fA1c) (../../contracts/internals/gasRefundable.sol#35)\n", "markdown": "[GasProxy.slitherConstructorVariables()](../../contracts/gasProxy.sol#L24-L55) uses literals with too many digits:\n\t- [_gasToken = IGasToken(0x0000000000004946c0e9F43F4Dee607b0eF1fA1c)](../../contracts/internals/gasRefundable.sol#L35)\n", "id": "cc9926bb61499e4a85aaa6ca9e14c72e52ace88023d447419175ef3ba1f518d5", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "controllerNode", "source_mapping": {"start": 1813, "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": [49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Controllable", "source_mapping": {"start": 1030, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "controllerNode()"}}], "description": "controllerNode() should be declared external:\n\t- Controllable.controllerNode() (../../contracts/internals/controllable.sol#49-51)\n", "markdown": "controllerNode() should be declared external:\n\t- [Controllable.controllerNode()](../../contracts/internals/controllable.sol#L49-L51)\n", "id": "d13a5d67fbaa6821edc17da5f446b38ce126b2b8abcbc3c21b79428186db1d29", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "ensRegistry", "source_mapping": {"start": 1600, "length": 89, "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": [40, 41, 42], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ENSResolvable", "source_mapping": {"start": 1079, "length": 1226, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "ensRegistry()"}}], "description": "ensRegistry() should be declared external:\n\t- ENSResolvable.ensRegistry() (../../contracts/internals/ensResolvable.sol#40-42)\n", "markdown": "ensRegistry() should be declared external:\n\t- [ENSResolvable.ensRegistry()](../../contracts/internals/ensResolvable.sol#L40-L42)\n", "id": "1afd905300be9ef64532aa1b05a1cfa9a93096242283226925905e9b9034d0cc", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "owner", "source_mapping": {"start": 3543, "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": [82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ownable", "source_mapping": {"start": 1225, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "owner()"}}], "description": "owner() should be declared external:\n\t- Ownable.owner() (../../contracts/internals/ownable.sol#82-84)\n", "markdown": "owner() should be declared external:\n\t- [Ownable.owner()](../../contracts/internals/ownable.sol#L82-L84)\n", "id": "698811821ed34357d834c197b976565a1354eaff150bcbc8a352f2d8c7df57f3", "check": "external-function", "impact": "Optimization", "confidence": "High"}] \ No newline at end of file +[{"elements": [{"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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": 3570, "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": [87], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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": 3733, "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": [90], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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#72-112):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#87)\n\tState variables written after the call(s):\n\t- deployedWallets[_owner] = wallet (../../contracts/walletDeployer.sol#90)\n", "markdown": "Reentrancy in [WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])](../../contracts/walletDeployer.sol#L72-L112):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L87)\n\tState variables written after the call(s):\n\t- [deployedWallets[_owner] = wallet](../../contracts/walletDeployer.sol#L90)\n", "id": "08c17d72e3fea63da74bc79489b737cb23dc6017f94d4adaf52125d413e35151", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 2239, "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": [58], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 2239, "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": [58], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "deployedWallets[_owner] = wallet", "source_mapping": {"start": 2379, "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": [61], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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#57-65):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#58)\n\tState variables written after the call(s):\n\t- deployedWallets[_owner] = wallet (../../contracts/walletDeployer.sol#61)\n", "markdown": "Reentrancy in [WalletDeployer.deployWallet(address)](../../contracts/walletDeployer.sol#L57-L65):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L58)\n\tState variables written after the call(s):\n\t- [deployedWallets[_owner] = wallet](../../contracts/walletDeployer.sol#L61)\n", "id": "f0b7aad2205303350c897f944ae44b598d3483a6c19a4266efe45905252cf95e", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}, {"type": "node", "name": "wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()", "source_mapping": {"start": 2239, "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": [58], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "DeployedWallet(wallet,_owner)", "source_mapping": {"start": 2333, "length": 35, "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": [59], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "deployWallet", "source_mapping": {"start": 2159, "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": [57, 58, 59, 60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "deployWallet(address)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in WalletDeployer.deployWallet(address) (../../contracts/walletDeployer.sol#57-65):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#58)\n\tEvent emitted after the call(s):\n\t- DeployedWallet(wallet,_owner) (../../contracts/walletDeployer.sol#59)\n", "markdown": "Reentrancy in [WalletDeployer.deployWallet(address)](../../contracts/walletDeployer.sol#L57-L65):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L58)\n\tEvent emitted after the call(s):\n\t- [DeployedWallet(wallet,_owner)](../../contracts/walletDeployer.sol#L59)\n", "id": "402373ea64c629a1e6a8492e757dbb4c9ae11b7e4687b3a69769d611ce299adb", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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": 3570, "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": [87], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "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": "MigratedWallet(wallet,_oldWallet,_owner,msg.value)", "source_mapping": {"start": 3664, "length": 58, "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": [88], "starting_column": 9, "ending_column": 67}, "type_specific_fields": {"parent": {"type": "function", "name": "migrateWallet", "source_mapping": {"start": 2976, "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": [72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[]) (../../contracts/walletDeployer.sol#72-112):\n\tExternal calls:\n\t- wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop() (../../contracts/walletDeployer.sol#87)\n\tEvent emitted after the call(s):\n\t- MigratedWallet(wallet,_oldWallet,_owner,msg.value) (../../contracts/walletDeployer.sol#88)\n", "markdown": "Reentrancy in [WalletDeployer.migrateWallet(address,address,bool,bool,bool,bool,uint256,uint256,uint256,address[])](../../contracts/walletDeployer.sol#L72-L112):\n\tExternal calls:\n\t- [wallet = IWalletCache(_ensResolve(walletCacheNode)).walletCachePop()](../../contracts/walletDeployer.sol#L87)\n\tEvent emitted after the call(s):\n\t- [MigratedWallet(wallet,_oldWallet,_owner,msg.value)](../../contracts/walletDeployer.sol#L88)\n", "id": "4a7fb4ad6d950016772175c04421bfb2683ec214fce6efed77598fd2843feae3", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletDeployer", "source_mapping": {"start": 998, "length": 3504, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "WalletDeployer.slitherConstructorVariables() (../../contracts/walletDeployer.sol#28-113) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[WalletDeployer.slitherConstructorVariables()](../../contracts/walletDeployer.sol#L28-L113) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "f6fb64f21a2684f963798ca8643ba32f8b907a86dae7800a6403eaced385dbf2", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1165, "length": 16184, "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": [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, 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, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelist", "source_mapping": {"start": 1165, "length": 16184, "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": [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, 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, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1165, "length": 16184, "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": [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, 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, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelist", "source_mapping": {"start": 1165, "length": 16184, "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": [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, 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, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "TokenWhitelist.slitherConstructorVariables() (../../contracts/tokenWhitelist.sol#30-389) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[TokenWhitelist.slitherConstructorVariables()](../../contracts/tokenWhitelist.sol#L30-L389) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "3ba51ca2fd1cb5bc5e3b3f4e806726b88ab00ee0c96ae77cea1fa201fbd9e8e1", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3839, "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": [96, 97, 98, 99, 100, 101, 102, 103, 104, 105], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}, {"type": "node", "name": "cacheWallet()", "source_mapping": {"start": 3973, "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": [98], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3839, "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": [96, 97, 98, 99, 100, 101, 102, 103, 104, 105], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "walletCachePop()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4320, "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": [110], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4413, "length": 352, "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": [111, 112, 113, 114, 115, 116, 117, 118, 119], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "cachedWallets.pop()", "source_mapping": {"start": 4081, "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": [102], "starting_column": 9, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "walletCachePop", "source_mapping": {"start": 3839, "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": [96, 97, 98, 99, 100, 101, 102, 103, 104, 105], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "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#96-105):\n\tExternal calls:\n\t- cacheWallet() (../../contracts/walletCache.sol#98)\n\t\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#110)\n\t\t- IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#111-119)\n\tState variables written after the call(s):\n\t- cachedWallets.pop() (../../contracts/walletCache.sol#102)\n", "markdown": "Reentrancy in [WalletCache.walletCachePop()](../../contracts/walletCache.sol#L96-L105):\n\tExternal calls:\n\t- [cacheWallet()](../../contracts/walletCache.sol#L98)\n\t\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L110)\n\t\t- [IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L111-L119)\n\tState variables written after the call(s):\n\t- [cachedWallets.pop()](../../contracts/walletCache.sol#L102)\n", "id": "3ffb1bc3f21fab1b8590a3173be21b2f5cfb5d6d8265dc6d255832ee024c369a", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4320, "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": [110], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4413, "length": 352, "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": [111, 112, 113, 114, 115, 116, 117, 118, 119], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4320, "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": [110], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4413, "length": 352, "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": [111, 112, 113, 114, 115, 116, 117, 118, 119], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "cachedWallets.push(wallet)", "source_mapping": {"start": 4775, "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": [120], "starting_column": 9, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "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#108-123):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#110)\n\t- IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#111-119)\n\tState variables written after the call(s):\n\t- cachedWallets.push(wallet) (../../contracts/walletCache.sol#120)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L108-L123):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L110)\n\t- [IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L111-L119)\n\tState variables written after the call(s):\n\t- [cachedWallets.push(wallet)](../../contracts/walletCache.sol#L120)\n", "id": "d3dd739fcff6db5a38dc65bdeeb41732a4c3a44a5d8ea06d002d7969c0ed43d6", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}, {"type": "node", "name": "wallet = address(new UpgradeabilityProxy(walletImplementation,))", "source_mapping": {"start": 4320, "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": [110], "starting_column": 9, "ending_column": 92}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)", "source_mapping": {"start": 4413, "length": 352, "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": [111, 112, 113, 114, 115, 116, 117, 118, 119], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "CachedWallet(wallet)", "source_mapping": {"start": 4812, "length": 25, "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": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "cacheWallet", "source_mapping": {"start": 4207, "length": 637, "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, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "cacheWallet()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in WalletCache.cacheWallet() (../../contracts/walletCache.sol#108-123):\n\tExternal calls:\n\t- wallet = address(new UpgradeabilityProxy(walletImplementation,)) (../../contracts/walletCache.sol#110)\n\t- IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit) (../../contracts/walletCache.sol#111-119)\n\tEvent emitted after the call(s):\n\t- CachedWallet(wallet) (../../contracts/walletCache.sol#122)\n", "markdown": "Reentrancy in [WalletCache.cacheWallet()](../../contracts/walletCache.sol#L108-L123):\n\tExternal calls:\n\t- [wallet = address(new UpgradeabilityProxy(walletImplementation,))](../../contracts/walletCache.sol#L110)\n\t- [IWallet(wallet).initializeWallet(address(uint160(walletDeployerAddress)),true,ensRegistry(),tokenWhitelistNode,controllerNode(),licenceNode,defaultSpendLimit)](../../contracts/walletCache.sol#L111-L119)\n\tEvent emitted after the call(s):\n\t- [CachedWallet(wallet)](../../contracts/walletCache.sol#L122)\n", "id": "729f5a28e0bc8fd5a3ece7be02c86d5276e49a7e38cee307d7a8f28d47e624ad", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "WalletCache", "source_mapping": {"start": 1265, "length": 3581, "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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "WalletCache.slitherConstructorVariables() (../../contracts/walletCache.sol#34-124) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[WalletCache.slitherConstructorVariables()](../../contracts/walletCache.sol#L34-L124) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "6ec589a43a86c3ef63ba62623f4aedb63ecec23673914983fe9fe63d9eaf71fc", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6770, "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": [129], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (decMinted))", "source_mapping": {"start": 7657, "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": [147], "starting_column": 13, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#50-164) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#129)\n\t-mint = mint.mul(10 ** (decMinted)) (../../contracts/internals/parseIntScientific.sol#147)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L50-L164) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L129)\n\t-[mint = mint.mul(10 ** (decMinted))](../../contracts/internals/parseIntScientific.sol#L147)\n", "id": "a00cbae754b82e0580bb91c49d84e3f84757fe6b95d296e7f5362f4c52732bc2", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6770, "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": [129], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (_magnitudeMult - decMinted))", "source_mapping": {"start": 7901, "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": [151], "starting_column": 13, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#50-164) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#129)\n\t-mint = mint.mul(10 ** (_magnitudeMult - decMinted)) (../../contracts/internals/parseIntScientific.sol#151)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L50-L164) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L129)\n\t-[mint = mint.mul(10 ** (_magnitudeMult - decMinted))](../../contracts/internals/parseIntScientific.sol#L151)\n", "id": "1d12d010b1dcecf3c2d9a7a85a0ed58b1deeaa0b934e4c4434affedabaac2cba", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6770, "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": [129], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10 ** (_magnitudeMult))", "source_mapping": {"start": 8410, "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": [160], "starting_column": 13, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#50-164) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#129)\n\t-mint = mint.mul(10 ** (_magnitudeMult)) (../../contracts/internals/parseIntScientific.sol#160)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L50-L164) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L129)\n\t-[mint = mint.mul(10 ** (_magnitudeMult))](../../contracts/internals/parseIntScientific.sol#L160)\n", "id": "e91e10a4132eaefdd900d02403aa4e7f44e4a4f6cd387cba17518f54a90bc2ab", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mintDec /= 10 ** (decMinted)", "source_mapping": {"start": 8227, "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": [157], "starting_column": 13, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mintDec = mintDec.mul(10)", "source_mapping": {"start": 3724, "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": [69], "starting_column": 21, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#50-164) performs a multiplication on the result of a division:\n\t-mintDec /= 10 ** (decMinted) (../../contracts/internals/parseIntScientific.sol#157)\n\t-mintDec = mintDec.mul(10) (../../contracts/internals/parseIntScientific.sol#69)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L50-L164) performs a multiplication on the result of a division:\n\t-[mintDec /= 10 ** (decMinted)](../../contracts/internals/parseIntScientific.sol#L157)\n\t-[mintDec = mintDec.mul(10)](../../contracts/internals/parseIntScientific.sol#L69)\n", "id": "b07f9d14a8de905177c26444d3943a865a87c6f31f38a7867352b2ad2bbfcd1b", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}, {"type": "node", "name": "mint /= 10 ** (mintExp - _magnitudeMult)", "source_mapping": {"start": 6770, "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": [129], "starting_column": 17, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}, {"type": "node", "name": "mint = mint.mul(10)", "source_mapping": {"start": 4094, "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": [76], "starting_column": 21, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "function", "name": "_parseIntScientific", "source_mapping": {"start": 2373, "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": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 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": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ParseIntScientific", "source_mapping": {"start": 986, "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": [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, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_parseIntScientific(string,uint256)"}}}}], "description": "ParseIntScientific._parseIntScientific(string,uint256) (../../contracts/internals/parseIntScientific.sol#50-164) performs a multiplication on the result of a division:\n\t-mint /= 10 ** (mintExp - _magnitudeMult) (../../contracts/internals/parseIntScientific.sol#129)\n\t-mint = mint.mul(10) (../../contracts/internals/parseIntScientific.sol#76)\n", "markdown": "[ParseIntScientific._parseIntScientific(string,uint256)](../../contracts/internals/parseIntScientific.sol#L50-L164) performs a multiplication on the result of a division:\n\t-[mint /= 10 ** (mintExp - _magnitudeMult)](../../contracts/internals/parseIntScientific.sol#L129)\n\t-[mint = mint.mul(10)](../../contracts/internals/parseIntScientific.sol#L76)\n", "id": "0e970ab548d58d51263afb00b0f30a0d9498eb69cd76f96228dfaabb8a30df4b", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "parseRate", "source_mapping": {"start": 4890, "length": 874, "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": [116, 117, 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": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "parseRate(string)"}}, {"type": "node", "name": "body.split(:.toSlice())", "source_mapping": {"start": 5420, "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": [126], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "parseRate", "source_mapping": {"start": 4890, "length": 874, "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": [116, 117, 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": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "parseRate(string)"}}}}], "description": "Oracle.parseRate(string) (../../contracts/oracle.sol#116-133) ignores return value by body.split(:.toSlice()) (../../contracts/oracle.sol#126)\n", "markdown": "[Oracle.parseRate(string)](../../contracts/oracle.sol#L116-L133) ignores return value by [body.split(:.toSlice())](../../contracts/oracle.sol#L126)\n", "id": "21f8486b9622b298d2d789c38e02589e0f8f285ae2afcf1c5e8d557d2ed414d8", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "parseRate", "source_mapping": {"start": 4890, "length": 874, "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": [116, 117, 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": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "parseRate(string)"}}, {"type": "node", "name": "body.until(}.toSlice())", "source_mapping": {"start": 5573, "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": [129], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "parseRate", "source_mapping": {"start": 4890, "length": 874, "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": [116, 117, 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": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "parseRate(string)"}}}}], "description": "Oracle.parseRate(string) (../../contracts/oracle.sol#116-133) ignores return value by body.until(}.toSlice()) (../../contracts/oracle.sol#129)\n", "markdown": "[Oracle.parseRate(string)](../../contracts/oracle.sol#L116-L133) ignores return value by [body.until(}.toSlice())](../../contracts/oracle.sol#L129)\n", "id": "30217163eae600a9621a0d1eddc7e5fe773b534668ab60f48a814761acaa25c8", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Oracle", "source_mapping": {"start": 1244, "length": 10242, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Oracle.slitherConstructorVariables() (../../contracts/oracle.sol#34-271) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[Oracle.slitherConstructorVariables()](../../contracts/oracle.sol#L34-L271) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "1ccc8623a1b94671b5a93fca4cd2c83f1a9019002669cd6f59043b11a6ad200a", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1288, "length": 3602, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1288, "length": 3602, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1288, "length": 3602, "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": [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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Holder", "source_mapping": {"start": 1288, "length": 3602, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Holder.slitherConstructorVariables() (../../contracts/holder.sol#33-115) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[Holder.slitherConstructorVariables()](../../contracts/holder.sol#L33-L115) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "ab16c2a943e01c8201ac13da06217a3749fd06371ab968890b731a984fcdee99", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 33697, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}, {"type": "node", "name": "amountToSend = _amount.mul(rate).div(magnitude)", "source_mapping": {"start": 34588, "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": [750], "starting_column": 13, "ending_column": 60}, "type_specific_fields": {"parent": {"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 33697, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}}}, {"type": "node", "name": "amountToSend.mul(stablecoinMagnitude).div(stablecoinRate)", "source_mapping": {"start": 35166, "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": [759], "starting_column": 9, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "convertToStablecoin", "source_mapping": {"start": 33697, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "convertToStablecoin(address,uint256)"}}}}], "description": "Wallet.convertToStablecoin(address,uint256) (../../contracts/wallet.sol#734-760) performs a multiplication on the result of a division:\n\t-amountToSend = _amount.mul(rate).div(magnitude) (../../contracts/wallet.sol#750)\n\t-amountToSend.mul(stablecoinMagnitude).div(stablecoinRate) (../../contracts/wallet.sol#759)\n", "markdown": "[Wallet.convertToStablecoin(address,uint256)](../../contracts/wallet.sol#L734-L760) performs a multiplication on the result of a division:\n\t-[amountToSend = _amount.mul(rate).div(magnitude)](../../contracts/wallet.sol#L750)\n\t-[amountToSend.mul(stablecoinMagnitude).div(stablecoinRate)](../../contracts/wallet.sol#L759)\n", "id": "6445d302d697fb16f8a229d2e9573ca790c2c85a9aa543810c45b2944e1e6f31", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_tokenWhitelistNode", "source_mapping": {"start": 21839, "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": [498], "starting_column": 35, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "_initializeLoadLimit", "source_mapping": {"start": 21809, "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": [498, 499, 500, 501, 502, 503, 504], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "LoadLimit", "source_mapping": {"start": 19723, "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": [445, 446, 447, 448, 449, 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], "starting_column": 1, "ending_column": 2}}, "signature": "_initializeLoadLimit(bytes32)"}}}}, {"type": "variable", "name": "_tokenWhitelistNode", "source_mapping": {"start": 1348, "length": 67, "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": [33], "starting_column": 5, "ending_column": 72}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenWhitelistable", "source_mapping": {"start": 1045, "length": 5236, "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": [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], "starting_column": 1, "ending_column": 2}}}}], "description": "LoadLimit._initializeLoadLimit(bytes32)._tokenWhitelistNode (../../contracts/wallet.sol#498) shadows:\n\t- TokenWhitelistable._tokenWhitelistNode (../../contracts/internals/tokenWhitelistable.sol#33) (state variable)\n", "markdown": "[LoadLimit._initializeLoadLimit(bytes32)._tokenWhitelistNode](../../contracts/wallet.sol#L498) shadows:\n\t- [TokenWhitelistable._tokenWhitelistNode](../../contracts/internals/tokenWhitelistable.sol#L33) (state variable)\n", "id": "8f15cbf6d24a4b17962fde5591cd20736fc2ed8d234ab44f7ef3eab547790f4e", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "function", "name": "executeRelayedTransaction", "source_mapping": {"start": 25611, "length": 1141, "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": [575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeRelayedTransaction(uint256,bytes,bytes)"}}, {"type": "node", "name": "(success,returnData) = address(this).call(_data)", "source_mapping": {"start": 26571, "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": [594], "starting_column": 9, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "executeRelayedTransaction", "source_mapping": {"start": 25611, "length": 1141, "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": [575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeRelayedTransaction(uint256,bytes,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ExecutedRelayedTransaction(_data,returnData)", "source_mapping": {"start": 26695, "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": [597], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "executeRelayedTransaction", "source_mapping": {"start": 25611, "length": 1141, "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": [575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeRelayedTransaction(uint256,bytes,bytes)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Wallet.executeRelayedTransaction(uint256,bytes,bytes) (../../contracts/wallet.sol#575-598):\n\tExternal calls:\n\t- (success,returnData) = address(this).call(_data) (../../contracts/wallet.sol#594)\n\tEvent emitted after the call(s):\n\t- ExecutedRelayedTransaction(_data,returnData) (../../contracts/wallet.sol#597)\n", "markdown": "Reentrancy in [Wallet.executeRelayedTransaction(uint256,bytes,bytes)](../../contracts/wallet.sol#L575-L598):\n\tExternal calls:\n\t- [(success,returnData) = address(this).call(_data)](../../contracts/wallet.sol#L594)\n\tEvent emitted after the call(s):\n\t- [ExecutedRelayedTransaction(_data,returnData)](../../contracts/wallet.sol#L597)\n", "id": "fd7a2414668142cb7d8c6e926deb48e7d79b488892a1c4124a90ee572a54f66b", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35497, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}, {"type": "node", "name": "IERC20(_destination)._callOptionalReturn(_data)", "source_mapping": {"start": 36836, "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": [790], "starting_column": 13, "ending_column": 60}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35497, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ExecutedTransaction(_destination,_value,_data,b)", "source_mapping": {"start": 37058, "length": 56, "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": [796], "starting_column": 13, "ending_column": 69}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35497, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Wallet.executeTransaction(address,uint256,bytes) (../../contracts/wallet.sol#766-806):\n\tExternal calls:\n\t- IERC20(_destination)._callOptionalReturn(_data) (../../contracts/wallet.sol#790)\n\tEvent emitted after the call(s):\n\t- ExecutedTransaction(_destination,_value,_data,b) (../../contracts/wallet.sol#796)\n", "markdown": "Reentrancy in [Wallet.executeTransaction(address,uint256,bytes)](../../contracts/wallet.sol#L766-L806):\n\tExternal calls:\n\t- [IERC20(_destination)._callOptionalReturn(_data)](../../contracts/wallet.sol#L790)\n\tEvent emitted after the call(s):\n\t- [ExecutedTransaction(_destination,_value,_data,b)](../../contracts/wallet.sol#L796)\n", "id": "65cc0d4c07c009b76fbfb0b4d3e00279b26b42291be351fa85d02d52289ddb55", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35497, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}, {"type": "node", "name": "(success,returnData) = _destination.call{value: _value}(_data)", "source_mapping": {"start": 37157, "length": 81, "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": [800], "starting_column": 9, "ending_column": 90}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35497, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ExecutedTransaction(_destination,_value,_data,returnData)", "source_mapping": {"start": 37295, "length": 65, "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": [803], "starting_column": 9, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 35497, "length": 1967, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Wallet.executeTransaction(address,uint256,bytes) (../../contracts/wallet.sol#766-806):\n\tExternal calls:\n\t- (success,returnData) = _destination.call{value: _value}(_data) (../../contracts/wallet.sol#800)\n\tEvent emitted after the call(s):\n\t- ExecutedTransaction(_destination,_value,_data,returnData) (../../contracts/wallet.sol#803)\n", "markdown": "Reentrancy in [Wallet.executeTransaction(address,uint256,bytes)](../../contracts/wallet.sol#L766-L806):\n\tExternal calls:\n\t- [(success,returnData) = _destination.call{value: _value}(_data)](../../contracts/wallet.sol#L800)\n\tEvent emitted after the call(s):\n\t- [ExecutedTransaction(_destination,_value,_data,returnData)](../../contracts/wallet.sol#L803)\n", "id": "a7bcadd27f5cdccdaaa907a36b948f11ba25788811f5335bf5a24502fa4512dd", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}, {"type": "node", "name": "IERC20(_asset).safeApprove(licenceAddress,_amount)", "source_mapping": {"start": 29184, "length": 51, "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": [648], "starting_column": 13, "ending_column": 64}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "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": 29249, "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": [649], "starting_column": 13, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "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": 29326, "length": 62, "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": [651], "starting_column": 13, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "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": 29326, "length": 62, "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": [651], "starting_column": 13, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "LoadedTokenCard(_asset,_amount)", "source_mapping": {"start": 29409, "length": 37, "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": [654], "starting_column": 9, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "loadTokenCard", "source_mapping": {"start": 28508, "length": 945, "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": [638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "loadTokenCard(address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Wallet.loadTokenCard(address,uint256) (../../contracts/wallet.sol#638-655):\n\tExternal calls:\n\t- IERC20(_asset).safeApprove(licenceAddress,_amount) (../../contracts/wallet.sol#648)\n\t- ILicence(licenceAddress).load(_asset,_amount) (../../contracts/wallet.sol#649)\n\t- ILicence(licenceAddress).load{value: _amount}(_asset,_amount) (../../contracts/wallet.sol#651)\n\tExternal calls sending eth:\n\t- ILicence(licenceAddress).load{value: _amount}(_asset,_amount) (../../contracts/wallet.sol#651)\n\tEvent emitted after the call(s):\n\t- LoadedTokenCard(_asset,_amount) (../../contracts/wallet.sol#654)\n", "markdown": "Reentrancy in [Wallet.loadTokenCard(address,uint256)](../../contracts/wallet.sol#L638-L655):\n\tExternal calls:\n\t- [IERC20(_asset).safeApprove(licenceAddress,_amount)](../../contracts/wallet.sol#L648)\n\t- [ILicence(licenceAddress).load(_asset,_amount)](../../contracts/wallet.sol#L649)\n\t- [ILicence(licenceAddress).load{value: _amount}(_asset,_amount)](../../contracts/wallet.sol#L651)\n\tExternal calls sending eth:\n\t- [ILicence(licenceAddress).load{value: _amount}(_asset,_amount)](../../contracts/wallet.sol#L651)\n\tEvent emitted after the call(s):\n\t- [LoadedTokenCard(_asset,_amount)](../../contracts/wallet.sol#L654)\n", "id": "6d9ec72b6be638f2f6ce2dc892658392de55592a20b6c03e6b8cb771c5881a97", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_getAvailableLimit", "source_mapping": {"start": 12736, "length": 240, "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": [276, 277, 278, 279, 280, 281, 282], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DailyLimitTrait", "source_mapping": {"start": 11495, "length": 3455, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_getAvailableLimit(DailyLimitTrait.DailyLimit)"}}, {"type": "node", "name": "now > self.limitTimestamp.add(86400)", "source_mapping": {"start": 12835, "length": 39, "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": [277], "starting_column": 13, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "_getAvailableLimit", "source_mapping": {"start": 12736, "length": 240, "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": [276, 277, 278, 279, 280, 281, 282], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DailyLimitTrait", "source_mapping": {"start": 11495, "length": 3455, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_getAvailableLimit(DailyLimitTrait.DailyLimit)"}}}}], "description": "DailyLimitTrait._getAvailableLimit(DailyLimitTrait.DailyLimit) (../../contracts/wallet.sol#276-282) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- now > self.limitTimestamp.add(86400) (../../contracts/wallet.sol#277)\n", "markdown": "[DailyLimitTrait._getAvailableLimit(DailyLimitTrait.DailyLimit)](../../contracts/wallet.sol#L276-L282) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [now > self.limitTimestamp.add(86400)](../../contracts/wallet.sol#L277)\n", "id": "a88a1183e45466591a276356c926ebf70a5ac492c7271546b57f1909cf4fb60d", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateAvailableLimit", "source_mapping": {"start": 14578, "length": 370, "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": [318, 319, 320, 321, 322, 323, 324, 325, 326], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DailyLimitTrait", "source_mapping": {"start": 11495, "length": 3455, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_updateAvailableLimit(DailyLimitTrait.DailyLimit)"}}, {"type": "node", "name": "now > self.limitTimestamp.add(86400)", "source_mapping": {"start": 14656, "length": 39, "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": [319], "starting_column": 13, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateAvailableLimit", "source_mapping": {"start": 14578, "length": 370, "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": [318, 319, 320, 321, 322, 323, 324, 325, 326], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DailyLimitTrait", "source_mapping": {"start": 11495, "length": 3455, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_updateAvailableLimit(DailyLimitTrait.DailyLimit)"}}}}], "description": "DailyLimitTrait._updateAvailableLimit(DailyLimitTrait.DailyLimit) (../../contracts/wallet.sol#318-326) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- now > self.limitTimestamp.add(86400) (../../contracts/wallet.sol#319)\n", "markdown": "[DailyLimitTrait._updateAvailableLimit(DailyLimitTrait.DailyLimit)](../../contracts/wallet.sol#L318-L326) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [now > self.limitTimestamp.add(86400)](../../contracts/wallet.sol#L319)\n", "id": "79967c539447e17dc6ee9c3ea09ef3fb94efe619db1c107e91000247e937d1b9", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "topUpGas", "source_mapping": {"start": 29844, "length": 567, "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": [664, 665, 666, 667, 668, 669, 670, 671, 672, 673], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "topUpGas(uint256)"}}, {"type": "node", "name": "owner().transfer(_amount)", "source_mapping": {"start": 30285, "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": [670], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "topUpGas", "source_mapping": {"start": 29844, "length": 567, "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": [664, 665, 666, 667, 668, 669, 670, 671, 672, 673], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "topUpGas(uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ToppedUpGas(msg.sender,owner(),_amount)", "source_mapping": {"start": 30358, "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": [672], "starting_column": 9, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "function", "name": "topUpGas", "source_mapping": {"start": 29844, "length": 567, "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": [664, 665, 666, 667, 668, 669, 670, 671, 672, 673], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "topUpGas(uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Wallet.topUpGas(uint256) (../../contracts/wallet.sol#664-673):\n\tExternal calls:\n\t- owner().transfer(_amount) (../../contracts/wallet.sol#670)\n\tEvent emitted after the call(s):\n\t- ToppedUpGas(msg.sender,owner(),_amount) (../../contracts/wallet.sol#672)\n", "markdown": "Reentrancy in [Wallet.topUpGas(uint256)](../../contracts/wallet.sol#L664-L673):\n\tExternal calls:\n\t- [owner().transfer(_amount)](../../contracts/wallet.sol#L670)\n\tEvent emitted after the call(s):\n\t- [ToppedUpGas(msg.sender,owner(),_amount)](../../contracts/wallet.sol#L672)\n", "id": "b3cf8530bb4219f6181fdec9d6e56a23dd51951afbacf23b2c46ee363b79da5d", "check": "reentrancy-unlimited-gas", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Wallet.slitherConstructorVariables() (../../contracts/wallet.sol#508-847) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[Wallet.slitherConstructorVariables()](../../contracts/wallet.sol#L508-L847) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "2fe37a4cad071bfa6d82a1450bfeecafbc3e29abd64963b028105a4d9582ef0a", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "batchExecuteTransaction", "source_mapping": {"start": 30743, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "batchExecuteTransaction(bytes)"}}], "description": "batchExecuteTransaction(bytes) should be declared external:\n\t- Wallet.batchExecuteTransaction(bytes) (../../contracts/wallet.sol#679-714)\n", "markdown": "batchExecuteTransaction(bytes) should be declared external:\n\t- [Wallet.batchExecuteTransaction(bytes)](../../contracts/wallet.sol#L679-L714)\n", "id": "25be393b22a852005aebc844d44187435f0cfff81e7632ced668dd912f0e2261", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "transfer", "source_mapping": {"start": 38268, "length": 1127, "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": [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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Wallet", "source_mapping": {"start": 22375, "length": 17022, "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": [508, 509, 510, 511, 512, 513, 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], "starting_column": 1, "ending_column": 2}}, "signature": "transfer(address,address,uint256)"}}], "description": "transfer(address,address,uint256) should be declared external:\n\t- Wallet.transfer(address,address,uint256) (../../contracts/wallet.sol#822-846)\n", "markdown": "transfer(address,address,uint256) should be declared external:\n\t- [Wallet.transfer(address,address,uint256)](../../contracts/wallet.sol#L822-L846)\n", "id": "b19b3dda14789ad85379258374bd5193fe48580bb2ea18c14a6866357ec7209b", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 8869, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}}, {"type": "node", "name": "_cryptoFloat.transfer(loadAmount)", "source_mapping": {"start": 8923, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)", "source_mapping": {"start": 8589, "length": 72, "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": 89}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8679, "length": 69, "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": 86}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": 8869, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": 8923, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount)", "source_mapping": {"start": 8985, "length": 78, "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": [219], "starting_column": 13, "ending_column": 91}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Licence.load(address,uint256) (../../contracts/licence.sol#201-223):\n\tExternal calls:\n\t- IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount) (../../contracts/licence.sol#211)\n\t- IERC20(_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- [IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)](../../contracts/licence.sol#L211)\n\t- [IERC20(_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": "ab8f3835605e2d6159e5db4f37dce11ccdcd6f5bd12fff12d51622a9cb8e5453", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "IERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8282, "length": 69, "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": 82}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)", "source_mapping": {"start": 8589, "length": 72, "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": 89}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)", "source_mapping": {"start": 8679, "length": 69, "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": 86}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": 8869, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": 8923, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount)", "source_mapping": {"start": 9084, "length": 75, "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": [222], "starting_column": 9, "ending_column": 84}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Licence.load(address,uint256) (../../contracts/licence.sol#201-223):\n\tExternal calls:\n\t- IERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount) (../../contracts/licence.sol#205)\n\t- IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount) (../../contracts/licence.sol#211)\n\t- IERC20(_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- [IERC20(_asset).safeTransferFrom(msg.sender,_cryptoFloat,loadAmount)](../../contracts/licence.sol#L205)\n\t- [IERC20(_asset).safeTransferFrom(msg.sender,_tokenHolder,licenceAmount)](../../contracts/licence.sol#L211)\n\t- [IERC20(_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": "0b66bfae7ffcf90f00f0a76079b285289d517503f7c8d1dd100edcc09956113e", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}, {"type": "node", "name": "_tokenHolder.transfer(licenceAmount)", "source_mapping": {"start": 8869, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "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": 8923, "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": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount)", "source_mapping": {"start": 9084, "length": 75, "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": [222], "starting_column": 9, "ending_column": 84}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount)", "source_mapping": {"start": 8985, "length": 78, "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": [219], "starting_column": 13, "ending_column": 91}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 8076, "length": 1090, "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": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "load(address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "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- TransferredToCryptoFloat(msg.sender,_cryptoFloat,_asset,loadAmount) (../../contracts/licence.sol#222)\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- [_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\t- [TransferredToTokenHolder(msg.sender,_tokenHolder,_asset,licenceAmount)](../../contracts/licence.sol#L219)\n", "id": "bbb126fc2fc1618ff0d13105f131a70023ab7963d1556c263706b87552939c1c", "check": "reentrancy-unlimited-gas", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "Licence", "source_mapping": {"start": 1179, "length": 8978, "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": [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, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "Licence.slitherConstructorVariables() (../../contracts/licence.sol#31-254) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[Licence.slitherConstructorVariables()](../../contracts/licence.sol#L31-L254) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "ddd5fb5c3b142504e4277598a2547e1741a8d933f34e84e86b548befebf2252b", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "refundGas", "source_mapping": {"start": 1687, "length": 274, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefundable", "source_mapping": {"start": 901, "length": 2256, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.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], "starting_column": 1, "ending_column": 2}}, "signature": "refundGas()"}}, {"type": "node", "name": "_gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit)", "source_mapping": {"start": 1847, "length": 107, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [44], "starting_column": 9, "ending_column": 116}, "type_specific_fields": {"parent": {"type": "function", "name": "refundGas", "source_mapping": {"start": 1687, "length": 274, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefundable", "source_mapping": {"start": 901, "length": 2256, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.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], "starting_column": 1, "ending_column": 2}}, "signature": "refundGas()"}}}}], "description": "GasRefundable.refundGas() (../../contracts/internals/gasRefundable.sol#40-45) ignores return value by _gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit) (../../contracts/internals/gasRefundable.sol#44)\n", "markdown": "[GasRefundable.refundGas()](../../contracts/internals/gasRefundable.sol#L40-L45) ignores return value by [_gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit)](../../contracts/internals/gasRefundable.sol#L44)\n", "id": "b75743d2bf9fc11b85a8d9fdebf99c34d10435409f23409fa2d0973b85c8c081", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "owner", "source_mapping": {"start": 641, "length": 13, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [20], "starting_column": 59, "ending_column": 72}, "type_specific_fields": {"parent": {"type": "function", "name": "setSubnodeOwner", "source_mapping": {"start": 587, "length": 78, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [20], "starting_column": 5, "ending_column": 83}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "setSubnodeOwner(bytes32,bytes32,address)"}}}}, {"type": "function", "name": "owner", "source_mapping": {"start": 854, "length": 61, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [24], "starting_column": 5, "ending_column": 66}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "owner(bytes32)"}}], "description": "IENS.setSubnodeOwner(bytes32,bytes32,address).owner (../../contracts/interfaces/IENS.sol#20) shadows:\n\t- IENS.owner(bytes32) (../../contracts/interfaces/IENS.sol#24) (function)\n", "markdown": "[IENS.setSubnodeOwner(bytes32,bytes32,address).owner](../../contracts/interfaces/IENS.sol#L20) shadows:\n\t- [IENS.owner(bytes32)](../../contracts/interfaces/IENS.sol#L24) (function)\n", "id": "b8efeadf77d41b1a7d348368cca9449309ebb832456da6bf37c0342bf862a499", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "variable", "name": "resolver", "source_mapping": {"start": 705, "length": 16, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [21], "starting_column": 40, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "function", "name": "setResolver", "source_mapping": {"start": 670, "length": 62, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [21], "starting_column": 5, "ending_column": 67}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "setResolver(bytes32,address)"}}}}, {"type": "function", "name": "resolver", "source_mapping": {"start": 920, "length": 64, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [25], "starting_column": 5, "ending_column": 69}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "resolver(bytes32)"}}], "description": "IENS.setResolver(bytes32,address).resolver (../../contracts/interfaces/IENS.sol#21) shadows:\n\t- IENS.resolver(bytes32) (../../contracts/interfaces/IENS.sol#25) (function)\n", "markdown": "[IENS.setResolver(bytes32,address).resolver](../../contracts/interfaces/IENS.sol#L21) shadows:\n\t- [IENS.resolver(bytes32)](../../contracts/interfaces/IENS.sol#L25) (function)\n", "id": "130d460d673393efe8a8da0e46e6b069c8552de929f23a9872afa5af3064cfd3", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "variable", "name": "owner", "source_mapping": {"start": 769, "length": 13, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [22], "starting_column": 37, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "setOwner", "source_mapping": {"start": 737, "length": 56, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [22], "starting_column": 5, "ending_column": 61}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "setOwner(bytes32,address)"}}}}, {"type": "function", "name": "owner", "source_mapping": {"start": 854, "length": 61, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [24], "starting_column": 5, "ending_column": 66}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "owner(bytes32)"}}], "description": "IENS.setOwner(bytes32,address).owner (../../contracts/interfaces/IENS.sol#22) shadows:\n\t- IENS.owner(bytes32) (../../contracts/interfaces/IENS.sol#24) (function)\n", "markdown": "[IENS.setOwner(bytes32,address).owner](../../contracts/interfaces/IENS.sol#L22) shadows:\n\t- [IENS.owner(bytes32)](../../contracts/interfaces/IENS.sol#L24) (function)\n", "id": "68a9c62e14cf270cc78b15e4f6eff049bf028789e5364f716487844103314b09", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "variable", "name": "ttl", "source_mapping": {"start": 828, "length": 10, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [23], "starting_column": 35, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "setTTL", "source_mapping": {"start": 798, "length": 51, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [23], "starting_column": 5, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "setTTL(bytes32,uint64)"}}}}, {"type": "function", "name": "ttl", "source_mapping": {"start": 989, "length": 58, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [26], "starting_column": 5, "ending_column": 63}, "type_specific_fields": {"parent": {"type": "contract", "name": "IENS", "source_mapping": {"start": 61, "length": 989, "filename_used": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_relative": "../../contracts/interfaces/IENS.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/interfaces/IENS.sol", "filename_short": "../../contracts/interfaces/IENS.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": null}}, "signature": "ttl(bytes32)"}}], "description": "IENS.setTTL(bytes32,uint64).ttl (../../contracts/interfaces/IENS.sol#23) shadows:\n\t- IENS.ttl(bytes32) (../../contracts/interfaces/IENS.sol#26) (function)\n", "markdown": "[IENS.setTTL(bytes32,uint64).ttl](../../contracts/interfaces/IENS.sol#L23) shadows:\n\t- [IENS.ttl(bytes32)](../../contracts/interfaces/IENS.sol#L26) (function)\n", "id": "a69f8ad16df8947c6709bf091d37a3ec734d1ab5151c7135b5df2cc84378909c", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "function", "name": "executeTransaction", "source_mapping": {"start": 2089, "length": 433, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}, {"type": "node", "name": "(success,returnData) = _destination.call{value: _value}(_data)", "source_mapping": {"start": 2282, "length": 81, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [50], "starting_column": 9, "ending_column": 90}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 2089, "length": 433, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "refundGas()", "source_mapping": {"start": 2239, "length": 9, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [49], "starting_column": 39, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 2089, "length": 433, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "_gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit)", "source_mapping": {"start": 1847, "length": 107, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [44], "starting_column": 9, "ending_column": 116}, "type_specific_fields": {"parent": {"type": "function", "name": "refundGas", "source_mapping": {"start": 1687, "length": 274, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefundable", "source_mapping": {"start": 901, "length": 2256, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.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], "starting_column": 1, "ending_column": 2}}, "signature": "refundGas()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "(success,returnData) = _destination.call{value: _value}(_data)", "source_mapping": {"start": 2282, "length": 81, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [50], "starting_column": 9, "ending_column": 90}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 2089, "length": 433, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "ExecutedTransaction(_destination,_value,_data,returnData)", "source_mapping": {"start": 2423, "length": 65, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [52], "starting_column": 9, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransaction", "source_mapping": {"start": 2089, "length": 433, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransaction(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in GasProxy.executeTransaction(address,uint256,bytes) (../../contracts/gasProxy.sol#45-54):\n\tExternal calls:\n\t- (success,returnData) = _destination.call{value: _value}(_data) (../../contracts/gasProxy.sol#50)\n\t- refundGas() (../../contracts/gasProxy.sol#49)\n\t\t- _gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit) (../../contracts/internals/gasRefundable.sol#44)\n\tExternal calls sending eth:\n\t- (success,returnData) = _destination.call{value: _value}(_data) (../../contracts/gasProxy.sol#50)\n\tEvent emitted after the call(s):\n\t- ExecutedTransaction(_destination,_value,_data,returnData) (../../contracts/gasProxy.sol#52)\n", "markdown": "Reentrancy in [GasProxy.executeTransaction(address,uint256,bytes)](../../contracts/gasProxy.sol#L45-L54):\n\tExternal calls:\n\t- [(success,returnData) = _destination.call{value: _value}(_data)](../../contracts/gasProxy.sol#L50)\n\t- [refundGas()](../../contracts/gasProxy.sol#L49)\n\t\t- [_gasToken.freeUpTo((gasSpent + _gasTokenParameters.freeCallGasCost) / _gasTokenParameters.gasRefundPerUnit)](../../contracts/internals/gasRefundable.sol#L44)\n\tExternal calls sending eth:\n\t- [(success,returnData) = _destination.call{value: _value}(_data)](../../contracts/gasProxy.sol#L50)\n\tEvent emitted after the call(s):\n\t- [ExecutedTransaction(_destination,_value,_data,returnData)](../../contracts/gasProxy.sol#L52)\n", "id": "068c35828662fe2aa881b25e2c4d696b8f9ef37468232254c1c64db5f71f0109", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)", "source_mapping": {"start": 1216, "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": [31], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "GasProxy.slitherConstructorVariables() (../../contracts/gasProxy.sol#24-55) uses literals with too many digits:\n\t- _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e) (../../contracts/internals/ensResolvable.sol#31)\n", "markdown": "[GasProxy.slitherConstructorVariables()](../../contracts/gasProxy.sol#L24-L55) uses literals with too many digits:\n\t- [_ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e)](../../contracts/internals/ensResolvable.sol#L31)\n", "id": "8d59c600de2d2cc19c4bf271ece114c7e452982cd3d73eaec8ac52f4452c3633", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}, {"type": "node", "name": "_gasToken = IGasToken(0x0000000000004946c0e9F43F4Dee607b0eF1fA1c)", "source_mapping": {"start": 1267, "length": 83, "filename_used": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_relative": "../../contracts/internals/gasRefundable.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/internals/gasRefundable.sol", "filename_short": "../../contracts/internals/gasRefundable.sol", "is_dependency": false, "lines": [35], "starting_column": 5, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorVariables", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasProxy", "source_mapping": {"start": 897, "length": 1627, "filename_used": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_relative": "../../contracts/gasProxy.sol", "filename_absolute": "/contracts/tools/slither/../../contracts/gasProxy.sol", "filename_short": "../../contracts/gasProxy.sol", "is_dependency": false, "lines": [24, 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], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorVariables()"}}}}], "description": "GasProxy.slitherConstructorVariables() (../../contracts/gasProxy.sol#24-55) uses literals with too many digits:\n\t- _gasToken = IGasToken(0x0000000000004946c0e9F43F4Dee607b0eF1fA1c) (../../contracts/internals/gasRefundable.sol#35)\n", "markdown": "[GasProxy.slitherConstructorVariables()](../../contracts/gasProxy.sol#L24-L55) uses literals with too many digits:\n\t- [_gasToken = IGasToken(0x0000000000004946c0e9F43F4Dee607b0eF1fA1c)](../../contracts/internals/gasRefundable.sol#L35)\n", "id": "cc9926bb61499e4a85aaa6ca9e14c72e52ace88023d447419175ef3ba1f518d5", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "controllerNode", "source_mapping": {"start": 1813, "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": [49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Controllable", "source_mapping": {"start": 1030, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "controllerNode()"}}], "description": "controllerNode() should be declared external:\n\t- Controllable.controllerNode() (../../contracts/internals/controllable.sol#49-51)\n", "markdown": "controllerNode() should be declared external:\n\t- [Controllable.controllerNode()](../../contracts/internals/controllable.sol#L49-L51)\n", "id": "d13a5d67fbaa6821edc17da5f446b38ce126b2b8abcbc3c21b79428186db1d29", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "ensRegistry", "source_mapping": {"start": 1600, "length": 89, "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": [40, 41, 42], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ENSResolvable", "source_mapping": {"start": 1079, "length": 1226, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "ensRegistry()"}}], "description": "ensRegistry() should be declared external:\n\t- ENSResolvable.ensRegistry() (../../contracts/internals/ensResolvable.sol#40-42)\n", "markdown": "ensRegistry() should be declared external:\n\t- [ENSResolvable.ensRegistry()](../../contracts/internals/ensResolvable.sol#L40-L42)\n", "id": "1afd905300be9ef64532aa1b05a1cfa9a93096242283226925905e9b9034d0cc", "check": "external-function", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "function", "name": "owner", "source_mapping": {"start": 3543, "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": [82, 83, 84], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ownable", "source_mapping": {"start": 1225, "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": [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], "starting_column": 1, "ending_column": 2}}, "signature": "owner()"}}], "description": "owner() should be declared external:\n\t- Ownable.owner() (../../contracts/internals/ownable.sol#82-84)\n", "markdown": "owner() should be declared external:\n\t- [Ownable.owner()](../../contracts/internals/ownable.sol#L82-L84)\n", "id": "698811821ed34357d834c197b976565a1354eaff150bcbc8a352f2d8c7df57f3", "check": "external-function", "impact": "Optimization", "confidence": "High"}] \ No newline at end of file From 47078b89ee27965ba0d7579cd64943b355666118 Mon Sep 17 00:00:00 2001 From: Riccardo Persiani Date: Wed, 16 Sep 2020 14:55:24 +0200 Subject: [PATCH 3/3] Remove unnecessary lines from tests --- test/wallet/top_up_gas_test.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/wallet/top_up_gas_test.go b/test/wallet/top_up_gas_test.go index f86dce5c..6e8b7eec 100644 --- a/test/wallet/top_up_gas_test.go +++ b/test/wallet/top_up_gas_test.go @@ -284,7 +284,6 @@ var _ = Describe("topUpGas", func() { BeforeEach(func() { caller = Controller - BankAccount.MustTransfer(Backend, Controller.Address(), GweiToWei(20)) ownerBalance, err = Backend.BalanceAt(context.Background(), Owner.Address(), nil) Expect(err).ToNot(HaveOccurred()) }) @@ -301,10 +300,6 @@ var _ = Describe("topUpGas", func() { Expect(err).ToNot(HaveOccurred()) }) - It("should fail", func() { - Expect(isSuccessful(tx)).To(BeFalse()) - }) - It("should NOT top up the gas", func() { b, e := Backend.BalanceAt(context.Background(), WalletProxyAddress, nil) Expect(e).ToNot(HaveOccurred())