@etherisc/gif-contracts
Version:
This repository holds the GIF core contracts and tools to develop, test and deploy GIF instances.
982 lines (981 loc) • 195 kB
JSON
{
"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": [],
"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": [
{
"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": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"allSourcePaths": {
"102": "contracts/tokens/RiskpoolToken.sol",
"12": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/ERC20.sol",
"13": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
"14": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/extensions/IERC20Metadata.sol",
"22": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Context.sol"
},
"ast": {
"absolutePath": "contracts/tokens/RiskpoolToken.sol",
"exportedSymbols": {
"Context": [
24074
],
"ERC20": [
21536
],
"IERC20": [
18510
],
"IERC20Metadata": [
27166
],
"RiskpoolToken": [
17266
]
},
"id": 17267,
"license": "Apache-2.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 17248,
"literals": [
"solidity",
"0.8",
".2"
],
"nodeType": "PragmaDirective",
"src": "39:22:102"
},
{
"absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/ERC20.sol",
"file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
"id": 17249,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 17267,
"sourceUnit": 21537,
"src": "63:55:102",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 17250,
"name": "ERC20",
"nodeType": "IdentifierPath",
"referencedDeclaration": 21536,
"src": "150:5:102"
},
"id": 17251,
"nodeType": "InheritanceSpecifier",
"src": "150:5:102"
}
],
"contractDependencies": [
18510,
21536,
24074,
27166
],
"contractKind": "contract",
"fullyImplemented": true,
"id": 17266,
"linearizedBaseContracts": [
17266,
21536,
27166,
18510,
24074
],
"name": "RiskpoolToken",
"nameLocation": "129:13:102",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"functionSelector": "a3f4df7e",
"id": 17254,
"mutability": "constant",
"name": "NAME",
"nameLocation": "185:4:102",
"nodeType": "VariableDeclaration",
"scope": 17266,
"src": "162:50:102",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 17252,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "162:6:102",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"hexValue": "474946205269736b706f6f6c20546f6b656e",
"id": 17253,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "192:20:102",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c04ccc87e78cfe956236553ca7b60ff0e91646fd43eb163e8f00edfa2d550d1a",
"typeString": "literal_string \"GIF Riskpool Token\""
},
"value": "GIF Riskpool Token"
},
"visibility": "public"
},
{
"constant": true,
"functionSelector": "f76f8d78",
"id": 17257,
"mutability": "constant",
"name": "SYMBOL",
"nameLocation": "241:6:102",
"nodeType": "VariableDeclaration",
"scope": 17266,
"src": "218:37:102",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 17255,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "218:6:102",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"hexValue": "525054",
"id": 17256,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "250:5:102",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_193fb9814d53cc9cda8187d0d39a8722345ce84f54c3c6acd15c420cb1471f43",
"typeString": "literal_string \"RPT\""
},
"value": "RPT"
},
"visibility": "public"
},
{
"body": {
"id": 17264,
"nodeType": "Block",
"src": "309:8:102",
"statements": []
},
"id": 17265,
"implemented": true,
"kind": "constructor",
"modifiers": [
{
"arguments": [
{
"id": 17260,
"name": "NAME",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 17254,
"src": "291:4:102",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"id": 17261,
"name": "SYMBOL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 17257,
"src": "297:6:102",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"id": 17262,
"modifierName": {
"id": 17259,
"name": "ERC20",
"nodeType": "IdentifierPath",
"referencedDeclaration": 21536,
"src": "285:5:102"
},
"nodeType": "ModifierInvocation",
"src": "285:19:102"
}
],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 17258,
"nodeType": "ParameterList",
"parameters": [],
"src": "273:2:102"
},
"returnParameters": {
"id": 17263,
"nodeType": "ParameterList",
"parameters": [],
"src": "309:0:102"
},
"scope": 17266,
"src": "262:55:102",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 17267,
"src": "120:199:102"
}
],
"src": "39:281:102"
},
"bytecode": "608060405234801561001057600080fd5b506040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b8152506040518060400160405280600381526020016214941560ea1b815250816003908051906020019061006e92919061008a565b50805161008290600490602084019061008a565b50505061015e565b82805461009690610123565b90600052602060002090601f0160209004810192826100b857600085556100fe565b82601f106100d157805160ff19168380011785556100fe565b828001600101855582156100fe579182015b828111156100fe5782518255916020019190600101906100e3565b5061010a92915061010e565b5090565b5b8082111561010a576000815560010161010f565b60028104600182168061013757607f821691505b6020821081141561015857634e487b7160e01b600052602260045260246000fd5b50919050565b6108fc8061016d6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101a8578063a9059cbb146101bb578063dd62ed3e146101ce578063f76f8d78146101e1576100cf565b806370a082311461015c57806395d89b411461016f578063a3f4df7e14610177576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610203565b6040516100e99190610814565b60405180910390f35b6101056101003660046107eb565b610295565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107b0565b6102ad565b604051601281526020016100e9565b6101056101573660046107eb565b6102d1565b61011961016a36600461075d565b6102f3565b6100dc610312565b6100dc6040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b81525081565b6101056101b63660046107eb565b610321565b6101056101c93660046107eb565b6103a1565b6101196101dc36600461077e565b6103af565b6100dc6040518060400160405280600381526020016214941560ea1b81525081565b6060600380546102129061088b565b80601f016020809104026020016040519081016040528092919081815260200182805461023e9061088b565b801561028b5780601f106102605761010080835404028352916020019161028b565b820191906000526020600020905b81548152906001019060200180831161026e57829003601f168201915b5050505050905090565b6000336102a38185856103da565b5060019392505050565b6000336102bb8582856104fe565b6102c6858585610578565b506001949350505050565b6000336102a38185856102e483836103af565b6102ee9190610867565b6103da565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102129061088b565b6000338161032f82866103af565b9050838110156103945760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102c682868684036103da565b6000336102a3818585610578565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038b565b6001600160a01b03821661049d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061050a84846103af565b9050600019811461057257818110156105655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038b565b61057284848484036103da565b50505050565b6001600160a01b0383166105dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038b565b6001600160a01b03821661063e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038b565b6001600160a01b038316600090815260208190526040902054818110156106b65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161038b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106ed908490610867565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161073991815260200190565b60405180910390a3610572565b80356001600160a01b038116811461030d57600080fd5b60006020828403121561076e578081fd5b61077782610746565b9392505050565b60008060408385031215610790578081fd5b61079983610746565b91506107a760208401610746565b90509250929050565b6000806000606084860312156107c4578081fd5b6107cd84610746565b92506107db60208501610746565b9150604084013590509250925092565b600080604083850312156107fd578182fd5b61080683610746565b946020939093013593505050565b6000602080835283518082850152825b8181101561084057858101830151858201604001528201610824565b818111156108515783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561088657634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061089f57607f821691505b602082108114156108c057634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220e3a11ad24529a3931ba0b033dfbf154df941955ae33e559cfe647bad0409008f64736f6c63430008020033",
"bytecodeSha1": "20d7576aebb86d2044bdf680a351c20e55241026",
"compiler": {
"evm_version": "istanbul",
"optimizer": {
"enabled": true,
"runs": 200
},
"version": "0.8.2+commit.661d1103"
},
"contractName": "RiskpoolToken",
"coverageMap": {
"branches": {
"102": {},
"12": {
"ERC20._approve": {
"30": [
10241,
10260,
true
],
"31": [
10319,
10340,
true
]
},
"ERC20._spendAllowance": {
"32": [
10957,
10994,
false
],
"33": [
11018,
11044,
true
]
},
"ERC20._transfer": {
"34": [
7601,
7619,
true
],
"35": [
7679,
7695,
true
],
"36": [
7850,
7871,
true
]
},
"ERC20.decreaseAllowance": {
"29": [
6811,
6846,
true
]
}
},
"13": {},
"14": {},
"22": {}
},
"statements": {
"102": {},
"12": {
"ERC20._approve": {
"16": [
10233,
10301
],
"17": [
10311,
10379
],
"18": [
10390,
10426
],
"19": [
10436,
10473
]
},
"ERC20._spendAllowance": {
"20": [
11010,
11078
],
"21": [
11120,
11171
]
},
"ERC20._transfer": {
"22": [
7593,
7661
],
"23": [
7671,
7735
],
"24": [
7842,
7914
],
"25": [
7948,
7986
],
"26": [
8006,
8029
],
"27": [
8040,
8071
],
"28": [
8082,
8119
]
},
"ERC20.allowance": {
"15": [
4084,
4118
]
},
"ERC20.approve": {
"4": [
4570,
4602
],
"5": [
4612,
4623
]
},
"ERC20.balanceOf": {
"10": [
3501,
3526
]
},
"ERC20.decimals": {
"1": [
3168,
3177
]
},
"ERC20.decreaseAllowance": {
"12": [
6803,
6888
],
"13": [
6922,
6982
]
},
"ERC20.increaseAllowance": {
"9": [
6015,
6079
]
},
"ERC20.name": {
"2": [
2235,
2247
]
},
"ERC20.symbol": {
"11": [
2448,
2462
]
},
"ERC20.totalSupply": {
"0": [
3324,
3343
]
},
"ERC20.transfer": {
"14": [
3862,
3890
]
},
"ERC20.transferFrom": {
"6": [
5375,
5413
],
"7": [
5423,
5450
],
"8": [
5460,
5471
]
}
},
"13": {},
"14": {},
"22": {
"Context._msgSender": {
"3": [
712,
729
]
}
}
}
},
"dependencies": [
"OpenZeppelin/openzeppelin-contracts@4.7.3/Context",
"OpenZeppelin/openzeppelin-contracts@4.7.3/ERC20",
"OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20",
"OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20Metadata"
],
"deployedBytecode": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101a8578063a9059cbb146101bb578063dd62ed3e146101ce578063f76f8d78146101e1576100cf565b806370a082311461015c57806395d89b411461016f578063a3f4df7e14610177576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610203565b6040516100e99190610814565b60405180910390f35b6101056101003660046107eb565b610295565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107b0565b6102ad565b604051601281526020016100e9565b6101056101573660046107eb565b6102d1565b61011961016a36600461075d565b6102f3565b6100dc610312565b6100dc6040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b81525081565b6101056101b63660046107eb565b610321565b6101056101c93660046107eb565b6103a1565b6101196101dc36600461077e565b6103af565b6100dc6040518060400160405280600381526020016214941560ea1b81525081565b6060600380546102129061088b565b80601f016020809104026020016040519081016040528092919081815260200182805461023e9061088b565b801561028b5780601f106102605761010080835404028352916020019161028b565b820191906000526020600020905b81548152906001019060200180831161026e57829003601f168201915b5050505050905090565b6000336102a38185856103da565b5060019392505050565b6000336102bb8582856104fe565b6102c6858585610578565b506001949350505050565b6000336102a38185856102e483836103af565b6102ee9190610867565b6103da565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102129061088b565b6000338161032f82866103af565b9050838110156103945760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102c682868684036103da565b6000336102a3818585610578565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038b565b6001600160a01b03821661049d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061050a84846103af565b9050600019811461057257818110156105655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038b565b61057284848484036103da565b50505050565b6001600160a01b0383166105dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038b565b6001600160a01b03821661063e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038b565b6001600160a01b038316600090815260208190526040902054818110156106b65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161038b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106ed908490610867565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161073991815260200190565b60405180910390a3610572565b80356001600160a01b038116811461030d57600080fd5b60006020828403121561076e578081fd5b61077782610746565b9392505050565b60008060408385031215610790578081fd5b61079983610746565b91506107a760208401610746565b90509250929050565b6000806000606084860312156107c4578081fd5b6107cd84610746565b92506107db60208501610746565b9150604084013590509250925092565b600080604083850312156107fd578182fd5b61080683610746565b946020939093013593505050565b6000602080835283518082850152825b8181101561084057858101830151858201604001528201610824565b818111156108515783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561088657634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061089f57607f821691505b602082108114156108c057634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220e3a11ad24529a3931ba0b033dfbf154df941955ae33e559cfe647bad0409008f64736f6c63430008020033",
"deployedSourceMap": "120:199:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:12;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:12;1375:92:103;3244:106:12;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:12;4970:76:103;5192:286:12;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:12;5148:87:103;5873:234:12;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;162:50:102:-;;;;;;;;;;;;;;;-1:-1:-1;;;162:50:102;;;;;6594:427:12;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;218:37:102:-;;;;;;;;;;;;;;;-1:-1:-1;;;218:37:102;;;;;2156:98:12;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:22;4570:32:12;719:10:22;4586:7:12;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:12;;4433:197;-1:-1:-1;;;4433:197:12:o;5192:286::-;5319:4;719:10:22;5375:38:12;5391:4;719:10:22;5406:6:12;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:12;;5192:286;-1:-1:-1;;;;5192:286:12:o;5873:234::-;5961:4;719:10:22;6015:64:12;719:10:22;6031:7:12;6068:10;6040:25;719:10:22;6031:7:12;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:12;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:22;6687:4:12;6768:25;719:10:22;6785:7:12;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:12;;4665:2:103;6803:85:12;;;4647:21:103;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:103;;;4787:35;4839:19;;6803:85:12;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:22;3862:28:12;719:10:22;3879:2:12;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:12;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:12;;10233:68;;;;-1:-1:-1;;;10233:68:12;;4260:2:103;10233:68:12;;;4242:21:103;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:103;;;4382:34;4433:19;;10233:68:12;4232:226:103;10233:68:12;-1:-1:-1;;;;;10319:21:12;;10311:68;;;;-1:-1:-1;;;10311:68:12;;2686:2:103;10311:68:12;;;2668:21:103;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:103;;;2808:32;2857:19;;10311:68:12;2658:224:103;10311:68:12;-1:-1:-1;;;;;10390:18:12;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:103;;;10441:32:12;;4988:18:103;10441:32:12;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:12;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:12;;3089:2:103;11010:68:12;;;3071:21:103;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:12;3061:179:103;11010:68:12;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:12;;7593:68;;;;-1:-1:-1;;;7593:68:12;;3854:2:103;7593:68:12;;;3836:21:103;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:103;;;3976:35;4028:19;;7593:68:12;3826:227:103;7593:68:12;-1:-1:-1;;;;;7679:16:12;;7671:64;;;;-1:-1:-1;;;7671:64:12;;2282:2:103;7671:64:12;;;2264:21:103;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:103;;;2404:33;2454:19;;7671:64:12;2254:225:103;7671:64:12;-1:-1:-1;;;;;7817:15:12;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:12;;3447:2:103;7842:72:12;;;3429:21:103;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:103;;;3569:36;3622:19;;7842:72:12;3419:228:103;7842:72:12;-1:-1:-1;;;;;7948:15:12;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:12;8054:4;-1:-1:-1;;;;;8045:26:12;;8064:6;8045:26;;;;5015:25:103;;5003:2;4988:18;;4970:76;8045:26:12;;;;;;;;8082:37;11786:121;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:103:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:103;2038:15;-1:-1:-1;;2034:29:103;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:103:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:103;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:103;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o",
"language": "Solidity",
"natspec": {
"kind": "dev",
"methods": {
"allowance(address,address)": {
"details": "See {IERC20-allowance}."
},
"approve(address,uint256)": {
"details": "See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. 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 this function is overridden; 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: - `to` 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}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."
}
},
"version": 1
},
"offset": [
120,
319
],
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x1E1 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x177 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x814 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B0 JUMP JUMPDEST PUSH2 0x2AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x2D1 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x2F3 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x312 JUMP JUMPDEST PUSH2 0xDC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH18 0x23A4A3102934B9B5B837B7B6102A37B5B2B7 PUSH1 0x71 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x3A1 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1DC CALLDATASIZE PUSH1 0x4 PUSH2 0x77E JUMP JUMPDEST PUSH2 0x3AF JUMP JUMPDEST PUSH2 0xDC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x149415 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x212 SWAP1 PUSH2 0x88B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x23E SWAP1 PUSH2 0x88B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x28B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x260 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x28B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x26E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x3DA JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2BB DUP6 DUP3 DUP6 PUSH2 0x4FE JUMP JUMPDEST PUSH2 0x2C6 DUP6 DUP6 DUP6 PUSH2 0x578 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x2E4 DUP4 DUP4 PUSH2 0x3AF JUMP JUMPDEST PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x867 JUMP JUMPDEST PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x212 SWAP1 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x32F DUP3 DUP7 PUSH2 0x3AF JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x394 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2C6 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x578 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x43C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x49D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A DUP5 DUP5 PUSH2 0x3AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x572 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x565 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x38B JUMP JUMPDEST PUSH2 0x572 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3DA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x63E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x6ED SWAP1 DUP5 SWAP1 PUSH2 0x867 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x739 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x572 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x76E JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x777 DUP3 PUSH2 0x746 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x790 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x799 DUP4 PUSH2 0x746 JUMP JUMPDEST SWAP2 POP PUSH2 0x7A7 PUSH1 0x20 DUP5 ADD PUSH2 0x746 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7C4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7CD DUP5 PUSH2 0x746 JUMP JUMPDEST SWAP3 POP PUSH2 0x7DB PUSH1 0x20 DUP6 ADD PUSH2 0x746 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7FD JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x806 DUP4 PUSH2 0x746 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x840 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x824 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x851 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x886 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x89F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8C0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE3 LOG1 BYTE 0xD2 GASLIMIT 0x29 LOG3 SWAP4 SHL LOG0 0xB0 CALLER 0xDF 0xBF ISZERO 0x4D 0xF9 COINBASE SWAP6 GAS 0xE3 RETURNDATACOPY SSTORE SWAP13 INVALID PUSH5 0x7BAD040900 DUP16 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ",
"pcMap": {
"0": {
"offset": [
120,
319
],
"op": "PUSH1",
"path": "102",
"value": "0x80"
},
"2": {
"fn": null,
"offset": [
120,
319
],
"op": "PUSH1",
"path": "102",
"value": "0x40"
},
"4": {
"fn": null,
"offset": [
120,
319
],
"op": "MSTORE",
"path": "102"
},
"5": {
"fn": null,
"offset": [
120,
319
],
"op": "CALLVALUE",
"path": "102"
},
"6": {
"fn": null,
"offset": [
120,
319
],
"op": "DUP1",
"path": "102"
},
"7": {
"fn": null,
"offset": [
120,
319
],
"op": "ISZERO",
"path": "102"
},
"8": {
"fn": null,
"offset": [
120,
319
],
"op": "PUSH2",
"path": "102",
"value": "0x10"
},
"11": {
"fn": null,
"offset": [
120,
319
],
"op": "JUMPI",
"path": "102"
},
"12": {
"fn": null,
"offset": [
120,
319
],
"op": "PUSH1",
"path": "102",
"value": "0x0"
},
"14": {
"fn": null,
"offset": [
120,
319
],
"op": "DUP1",
"path": "102"
},
"15": {
"dev": "Cannot send ether to nonpayable function",
"fn": null,
"offset": [
120,
319
],
"op": "REVERT",
"path": "102"
},
"16": {
"fn": null,
"offset": [
120,
319
],
"op": "JUMPDEST",
"path": "102"
},
"17": {
"fn": null,
"offset": [
120,
319
],
"op": "POP",
"path": "102"
},
"18": {
"fn": null,
"offset": [
120,
319
],
"op": "PUSH1",
"path": "102",
"value": "0x4"
},
"20": {
"fn": null,
"offset": [
120,
319
],
"op": "CALLDATASIZE",
"path": "102"
},
"21": {
"fn": null,
"offset": [
120,
319