@vporton/future-contracts
Version:
Ethereum accounts bid on future financing (essentially, transfer money from the future) - smart contracts
829 lines (828 loc) • 63 kB
JSON
{
"contractName": "MockCoin",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "subtractedValue",
"type": "uint256"
}
],
"name": "decreaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "addedValue",
"type": "uint256"
}
],
"name": "increaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mint",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/user/Projects/future-contracts/contracts/test/MockCoin.sol\":\"MockCoin\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"/home/user/Projects/future-contracts/contracts/test/MockCoin.sol\":{\"keccak256\":\"0x527b221c586ec4f4348be9f36b57fb29f1527d10f89cdf2857ef681b83c2de37\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://a9a55ceb78882e750f71c138fc0e29b45157cb206c22af06eff2cf1f3e49a4fd\",\"dweb:/ipfs/QmevXPHriaDSZeye7PS9XgZxb8pficFqZQ9jaqAhkJECeA\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xcbd85c86627a47fd939f1f4ee3ba626575ff2a182e1804b29f5136394449b538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53c6a80c519bb9356aad28efa9a1ec31603860eb759d2dc57f545fcae1dd1aca\",\"dweb:/ipfs/QmfRS6TtMNUHhvgLHXK21qKNnpn2S7g2Yd1fKaHKyFiJsR\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50604051806040016040528060048152602001634d6f636b60e01b815250604051806040016040528060038152602001624d434b60e81b8152508160039080519060200190610060929190610089565b508051610074906004906020840190610089565b50506005805460ff191660121790555061012a565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826100bf5760008555610105565b82601f106100d857805160ff1916838001178555610105565b82800160010185558215610105579182015b828111156101055782518255916020019190600101906100ea565b50610111929150610115565b5090565b5b808211156101115760008155600101610116565b610d7c806101396000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d7146102cb578063a9059cbb14610304578063dd62ed3e1461033d576100d4565b806340c10f191461025757806370a082311461029057806395d89b41146102c3576100d4565b806323b872dd116100b257806323b872dd146101bd578063313ce56714610200578063395093511461021e576100d4565b806306fdde03146100d9578063095ea7b31461015657806318160ddd146101a3575b600080fd5b6100e1610378565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011b578181015183820152602001610103565b50505050905090810190601f1680156101485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018f6004803603604081101561016c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561042c565b604080519115158252519081900360200190f35b6101ab610449565b60408051918252519081900360200190f35b61018f600480360360608110156101d357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561044f565b6102086104f0565b6040805160ff9092168252519081900360200190f35b61018f6004803603604081101561023457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356104f9565b61018f6004803603604081101561026d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610554565b6101ab600480360360208110156102a657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610560565b6100e1610588565b61018f600480360360408110156102e157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610607565b61018f6004803603604081101561031a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561067c565b6101ab6004803603604081101561035357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610690565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104225780601f106103f757610100808354040283529160200191610422565b820191906000526020600020905b81548152906001019060200180831161040557829003601f168201915b5050505050905090565b60006104406104396106c8565b84846106cc565b50600192915050565b60025490565b600061045c848484610813565b6104e6846104686106c8565b6104e185604051806060016040528060288152602001610cb16028913973ffffffffffffffffffffffffffffffffffffffff8a166000908152600160205260408120906104b36106c8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205491906109e3565b6106cc565b5060019392505050565b60055460ff1690565b60006104406105066106c8565b846104e185600160006105176106c8565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c168152925290205490610a94565b60006104408383610b0f565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104225780601f106103f757610100808354040283529160200191610422565b60006104406106146106c8565b846104e185604051806060016040528060258152602001610d22602591396001600061063e6106c8565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d168152925290205491906109e3565b60006104406106896106c8565b8484610813565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316610738576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610cfe6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166107a4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610c696022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661087f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610cd96025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166108eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610c466023913960400191505060405180910390fd5b6108f6838383610c40565b61094081604051806060016040528060268152602001610c8b6026913973ffffffffffffffffffffffffffffffffffffffff861660009081526020819052604090205491906109e3565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220939093559084168152205461097c9082610a94565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610a8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a51578181015183820152602001610a39565b50505050905090810190601f168015610a7e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610b0857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216610b9157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610b9d60008383610c40565b600254610baa9082610a94565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610bdd9082610a94565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202ce3204610742ce2075895da6e95896ac1ec51d05afe174ad3c82e32f5b2b8d864736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d7146102cb578063a9059cbb14610304578063dd62ed3e1461033d576100d4565b806340c10f191461025757806370a082311461029057806395d89b41146102c3576100d4565b806323b872dd116100b257806323b872dd146101bd578063313ce56714610200578063395093511461021e576100d4565b806306fdde03146100d9578063095ea7b31461015657806318160ddd146101a3575b600080fd5b6100e1610378565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011b578181015183820152602001610103565b50505050905090810190601f1680156101485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018f6004803603604081101561016c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561042c565b604080519115158252519081900360200190f35b6101ab610449565b60408051918252519081900360200190f35b61018f600480360360608110156101d357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561044f565b6102086104f0565b6040805160ff9092168252519081900360200190f35b61018f6004803603604081101561023457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356104f9565b61018f6004803603604081101561026d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610554565b6101ab600480360360208110156102a657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610560565b6100e1610588565b61018f600480360360408110156102e157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610607565b61018f6004803603604081101561031a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561067c565b6101ab6004803603604081101561035357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610690565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104225780601f106103f757610100808354040283529160200191610422565b820191906000526020600020905b81548152906001019060200180831161040557829003601f168201915b5050505050905090565b60006104406104396106c8565b84846106cc565b50600192915050565b60025490565b600061045c848484610813565b6104e6846104686106c8565b6104e185604051806060016040528060288152602001610cb16028913973ffffffffffffffffffffffffffffffffffffffff8a166000908152600160205260408120906104b36106c8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205491906109e3565b6106cc565b5060019392505050565b60055460ff1690565b60006104406105066106c8565b846104e185600160006105176106c8565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c168152925290205490610a94565b60006104408383610b0f565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104225780601f106103f757610100808354040283529160200191610422565b60006104406106146106c8565b846104e185604051806060016040528060258152602001610d22602591396001600061063e6106c8565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d168152925290205491906109e3565b60006104406106896106c8565b8484610813565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316610738576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610cfe6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166107a4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610c696022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661087f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610cd96025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166108eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610c466023913960400191505060405180910390fd5b6108f6838383610c40565b61094081604051806060016040528060268152602001610c8b6026913973ffffffffffffffffffffffffffffffffffffffff861660009081526020819052604090205491906109e3565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220939093559084168152205461097c9082610a94565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610a8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a51578181015183820152602001610a39565b50505050905090810190601f168015610a7e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610b0857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216610b9157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610b9d60008383610c40565b600254610baa9082610a94565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610bdd9082610a94565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202ce3204610742ce2075895da6e95896ac1ec51d05afe174ad3c82e32f5b2b8d864736f6c63430007060033",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "128:209:16:-:0;;;161:39;;;;;;;;;;1956:145:26;;;;;;;;;;;;;-1:-1:-1;;;1956:145:26;;;;;;;;;;;;;;;;-1:-1:-1;;;1956:145:26;;;2038:5;2030;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2053:17:26;;;;:7;;:17;;;;;:::i;:::-;-1:-1:-1;;2080:9:26;:14;;-1:-1:-1;;2080:14:26;2092:2;2080:14;;;-1:-1:-1;128:209:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;128:209:16;;;-1:-1:-1;128:209:16;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "128:209:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2166:81:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4202:166;;;;;;;;;;;;;;;;-1:-1:-1;4202:166:26;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3209:98;;;:::i;:::-;;;;;;;;;;;;;;;;4835:317;;;;;;;;;;;;;;;;-1:-1:-1;4835:317:26;;;;;;;;;;;;;;;;;;:::i;3068:81::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5547:215;;;;;;;;;;;;;;;;-1:-1:-1;5547:215:26;;;;;;;;;:::i;206:129:16:-;;;;;;;;;;;;;;;;-1:-1:-1;206:129:16;;;;;;;;;:::i;3365:117:26:-;;;;;;;;;;;;;;;;-1:-1:-1;3365:117:26;;;;:::i;2360:85::-;;;:::i;6249:266::-;;;;;;;;;;;;;;;;-1:-1:-1;6249:266:26;;;;;;;;;:::i;3685:172::-;;;;;;;;;;;;;;;;-1:-1:-1;3685:172:26;;;;;;;;;:::i;3915:149::-;;;;;;;;;;;;;;;;-1:-1:-1;3915:149:26;;;;;;;;;;;:::i;2166:81::-;2235:5;2228:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2203:13;;2228:12;;2235:5;;2228:12;;2235:5;2228:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2166:81;:::o;4202:166::-;4285:4;4301:39;4310:12;:10;:12::i;:::-;4324:7;4333:6;4301:8;:39::i;:::-;-1:-1:-1;4357:4:26;4202:166;;;;:::o;3209:98::-;3288:12;;3209:98;:::o;4835:317::-;4941:4;4957:36;4967:6;4975:9;4986:6;4957:9;:36::i;:::-;5003:121;5012:6;5020:12;:10;:12::i;:::-;5034:89;5072:6;5034:89;;;;;;;;;;;;;;;;;:19;;;;;;;:11;:19;;;;;;5054:12;:10;:12::i;:::-;5034:33;;;;;;;;;;;;;-1:-1:-1;5034:33:26;;;:89;:37;:89::i;:::-;5003:8;:121::i;:::-;-1:-1:-1;5141:4:26;4835:317;;;;;:::o;3068:81::-;3133:9;;;;3068:81;:::o;5547:215::-;5635:4;5651:83;5660:12;:10;:12::i;:::-;5674:7;5683:50;5722:10;5683:11;:25;5695:12;:10;:12::i;:::-;5683:25;;;;;;;;;;;;;;;;;;-1:-1:-1;5683:25:26;;;:34;;;;;;;;;;;:38;:50::i;206:129:16:-;269:4;285:22;291:7;300:6;285:5;:22::i;3365:117:26:-;3457:18;;3431:7;3457:18;;;;;;;;;;;;3365:117::o;2360:85::-;2431:7;2424:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2399:13;;2424:14;;2431:7;;2424:14;;2431:7;2424:14;;;;;;;;;;;;;;;;;;;;;;;;6249:266;6342:4;6358:129;6367:12;:10;:12::i;:::-;6381:7;6390:96;6429:15;6390:96;;;;;;;;;;;;;;;;;:11;:25;6402:12;:10;:12::i;:::-;6390:25;;;;;;;;;;;;;;;;;;-1:-1:-1;6390:25:26;;;:34;;;;;;;;;;;:96;:38;:96::i;3685:172::-;3771:4;3787:42;3797:12;:10;:12::i;:::-;3811:9;3822:6;3787:9;:42::i;3915:149::-;4030:18;;;;4004:7;4030:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3915:149::o;598:104:17:-;685:10;598:104;:::o;9313:340:26:-;9414:19;;;9406:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9492:21;;;9484:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9563:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9614:32;;;;;;;;;;;;;;;;;9313:340;;;:::o;6989:530::-;7094:20;;;7086:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7174:23;;;7166:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7248:47;7269:6;7277:9;7288:6;7248:20;:47::i;:::-;7326:71;7348:6;7326:71;;;;;;;;;;;;;;;;;:17;;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;7306:17;;;;:9;:17;;;;;;;;;;;:91;;;;7430:20;;;;;;;:32;;7455:6;7430:24;:32::i;:::-;7407:20;;;;:9;:20;;;;;;;;;;;;:55;;;;7477:35;;;;;;;7407:20;;7477:35;;;;;;;;;;;;;6989:530;;;:::o;1754:187:20:-;1840:7;1875:12;1867:6;;;;1859:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:5:20;;;1754:187::o;882:176::-;940:7;971:5;;;994:6;;;;986:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:20:o;7790:370:26:-;7873:21;;;7865:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7941:49;7970:1;7974:7;7983:6;7941:20;:49::i;:::-;8016:12;;:24;;8033:6;8016:16;:24::i;:::-;8001:12;:39;8071:18;;;:9;:18;;;;;;;;;;;:30;;8094:6;8071:22;:30::i;:::-;8050:18;;;:9;:18;;;;;;;;;;;:51;;;;8116:37;;;;;;;8050:18;;:9;;8116:37;;;;;;;;;;7790:370;;:::o;10651:92::-;;;;:::o",
"source": "// SPDX-License-Identifier: LGPL-3.0-or-later\npragma solidity ^0.7.1;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract MockCoin is ERC20 {\n constructor () ERC20(\"Mock\", \"MCK\") { }\n\n function mint(address account, uint256 amount) public returns (bool) {\n _mint(account, amount);\n return true;\n }\n}\n",
"sourcePath": "/home/user/Projects/future-contracts/contracts/test/MockCoin.sol",
"ast": {
"absolutePath": "/home/user/Projects/future-contracts/contracts/test/MockCoin.sol",
"exportedSymbols": {
"Context": [
4324
],
"ERC20": [
5349
],
"IERC20": [
5427
],
"MockCoin": [
4301
],
"SafeMath": [
4589
]
},
"id": 4302,
"license": "LGPL-3.0-or-later",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4272,
"literals": [
"solidity",
"^",
"0.7",
".1"
],
"nodeType": "PragmaDirective",
"src": "46:23:16"
},
{
"absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
"file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
"id": 4273,
"nodeType": "ImportDirective",
"scope": 4302,
"sourceUnit": 5350,
"src": "71:55:16",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 4274,
"name": "ERC20",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5349,
"src": "149:5:16",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20_$5349",
"typeString": "contract ERC20"
}
},
"id": 4275,
"nodeType": "InheritanceSpecifier",
"src": "149:5:16"
}
],
"contractDependencies": [
4324,
5349,
5427
],
"contractKind": "contract",
"fullyImplemented": true,
"id": 4301,
"linearizedBaseContracts": [
4301,
5349,
5427,
4324
],
"name": "MockCoin",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 4282,
"nodeType": "Block",
"src": "197:3:16",
"statements": []
},
"id": 4283,
"implemented": true,
"kind": "constructor",
"modifiers": [
{
"arguments": [
{
"hexValue": "4d6f636b",
"id": 4278,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "182:6:16",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b6719659e1320df3593ef1d62831d5830f1fdce720f856f4e26e013032b7e58c",
"typeString": "literal_string \"Mock\""
},
"value": "Mock"
},
{
"hexValue": "4d434b",
"id": 4279,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "190:5:16",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_9c3aa7d11ecb9affb5001de98d930d23db7380c6f51732a92986229c98447bc4",
"typeString": "literal_string \"MCK\""
},
"value": "MCK"
}
],
"id": 4280,
"modifierName": {
"id": 4277,
"name": "ERC20",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5349,
"src": "176:5:16",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC20_$5349_$",
"typeString": "type(contract ERC20)"
}
},
"nodeType": "ModifierInvocation",
"src": "176:20:16"
}
],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4276,
"nodeType": "ParameterList",
"parameters": [],
"src": "173:2:16"
},
"returnParameters": {
"id": 4281,
"nodeType": "ParameterList",
"parameters": [],
"src": "197:0:16"
},
"scope": 4301,
"src": "161:39:16",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 4299,
"nodeType": "Block",
"src": "275:60:16",
"statements": [
{
"expression": {
"arguments": [
{
"id": 4293,
"name": "account",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4285,
"src": "291:7:16",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 4294,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4287,
"src": "300:6:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4292,
"name": "_mint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5225,
"src": "285:5:16",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 4295,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "285:22:16",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4296,
"nodeType": "ExpressionStatement",
"src": "285:22:16"
},
{
"expression": {
"hexValue": "74727565",
"id": 4297,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "324:4:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 4291,
"id": 4298,
"nodeType": "Return",
"src": "317:11:16"
}
]
},
"functionSelector": "40c10f19",
"id": 4300,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "mint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4288,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4285,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "220:15:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4284,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "220:7:16",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4287,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "237:14:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4286,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "237:7:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "219:33:16"
},
"returnParameters": {
"id": 4291,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4290,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "269:4:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4289,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "269:4:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "268:6:16"
},
"scope": 4301,
"src": "206:129:16",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 4302,
"src": "128:209:16"
}
],
"src": "46:292:16"
},
"legacyAST": {
"attributes": {
"absolutePath": "/home/user/Projects/future-contracts/contracts/test/MockCoin.sol",
"exportedSymbols": {
"Context": [
4324
],
"ERC20": [
5349
],
"IERC20": [
5427
],
"MockCoin": [
4301
],
"SafeMath": [
4589
]
},
"license": "LGPL-3.0-or-later"
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"^",
"0.7",
".1"
]
},
"id": 4272,
"name": "PragmaDirective",
"src": "46:23:16"
},
{
"attributes": {
"SourceUnit": 5350,
"absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
"file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
"scope": 4302,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 4273,
"name": "ImportDirective",
"src": "71:55:16"
},
{
"attributes": {
"abstract": false,
"contractDependencies": [
4324,
5349,
5427
],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
4301,
5349,
5427,
4324
],
"name": "MockCoin",
"scope": 4302
},
"children": [
{
"attributes": {},
"children": [
{
"attributes": {
"name": "ERC20",
"referencedDeclaration": 5349,
"type": "contract ERC20"
},
"id": 4274,
"name": "UserDefinedTypeName",
"src": "149:5:16"
}
],
"id": 4275,
"name": "InheritanceSpecifier",
"src": "149:5:16"
},
{
"attributes": {
"implemented": true,
"isConstructor": true,
"kind": "constructor",
"name": "",
"scope": 4301,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 4276,
"name": "ParameterList",
"src": "173:2:16"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 4281,
"name": "ParameterList",
"src": "197:0:16"
},
{
"children": [
{
"attributes": {
"overloadedDeclarations": [
null
],
"referencedDeclaration": 5349,
"type": "type(contract ERC20)",
"value": "ERC20"
},
"id": 4277,
"name": "Identifier",
"src": "176:5:16"
},