butterjs-sdk
Version:
Butter Network SDK
862 lines (861 loc) • 48.8 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "VaultTokenV2",
"sourceName": "contracts/token/VaultTokenV2.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_underlying",
"type": "address"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
}
],
"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": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "vaultValue",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "DepositVault",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"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"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "vaultValue",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "WithdrawVault",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MANAGER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_manager",
"type": "address"
}
],
"name": "addManager",
"outputs": [],
"stateMutability": "nonpayable",
"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": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burnFrom",
"outputs": [],
"stateMutability": "nonpayable",
"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": "uint256",
"name": "_fromChain",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "getRoleMember",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleMemberCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTokenAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "getTokenAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "getVaultTokenAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"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": [
{
"internalType": "address",
"name": "_manager",
"type": "address"
}
],
"name": "removeManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"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": [],
"name": "totalVault",
"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": "uint256",
"name": "_fromChain",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_toChain",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_outAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_relayChain",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_fee",
"type": "uint256"
}
],
"name": "transferToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "underlying",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "vaultBalance",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_toChain",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_vaultAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b50604051620020f4380380620020f483398101604081905262000034916200046a565b8151829082906200004d9060059060208501906200030d565b508051620000639060069060208401906200030d565b5050506001600160a01b038316620000c15760405162461bcd60e51b815260206004820152601a60248201527f756e6465726c79696e672061646472657373206973207a65726f000000000000604482015260640160405180910390fd5b620000ce600033620001a8565b620000fa7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0833620001a8565b600780546001600160a01b0319166001600160a01b0385169081179091556040805163313ce56760e01b8152905163313ce56791600480820192602092909190829003018186803b1580156200014f57600080fd5b505afa15801562000164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018a9190620004f4565b600a805460ff191660ff929092169190911790555062000573915050565b620001b48282620001b8565b5050565b620001cf8282620001fb60201b62000c621760201c565b6000828152600160209081526040909120620001f691839062000ce66200029b821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620001b4576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002573390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620002b2836001600160a01b038416620002bb565b90505b92915050565b60008181526001830160205260408120546200030457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620002b5565b506000620002b5565b8280546200031b9062000520565b90600052602060002090601f0160209004810192826200033f57600085556200038a565b82601f106200035a57805160ff19168380011785556200038a565b828001600101855582156200038a579182015b828111156200038a5782518255916020019190600101906200036d565b50620003989291506200039c565b5090565b5b808211156200039857600081556001016200039d565b600082601f830112620003c557600080fd5b81516001600160401b0380821115620003e257620003e26200055d565b604051601f8301601f19908116603f011681019082821181831017156200040d576200040d6200055d565b816040528381526020925086838588010111156200042a57600080fd5b600091505b838210156200044e57858201830151818301840152908201906200042f565b83821115620004605760008385830101525b9695505050505050565b6000806000606084860312156200048057600080fd5b83516001600160a01b03811681146200049857600080fd5b60208501519093506001600160401b0380821115620004b657600080fd5b620004c487838801620003b3565b93506040860151915080821115620004db57600080fd5b50620004ea86828701620003b3565b9150509250925092565b6000602082840312156200050757600080fd5b815160ff811681146200051957600080fd5b9392505050565b600181811c908216806200053557607f821691505b602082108114156200055757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b611b7180620005836000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80636f307dc31161011a578063a457c2d7116100ad578063ca15c8731161007c578063ca15c87314610471578063d547741f14610484578063dd62ed3e14610497578063ec87621c146104d0578063f7a0627a146104e557600080fd5b8063a457c2d714610425578063a9059cbb14610438578063ac18de431461044b578063c2507ac11461045e57600080fd5b80639010d07c116100e95780639010d07c146103ef57806391d148541461040257806395d89b4114610415578063a217fddf1461041d57600080fd5b80636f307dc31461038d57806370a08231146103a057806379cc6790146103c95780638dbdbe6d146103dc57600080fd5b806328ab490d1161019d57806331a2a1f61161016c57806331a2a1f61461032b57806336568abe1461034b578063395093511461035e57806342966c681461037157806364fe41b31461038457600080fd5b806328ab490d146102dd5780632d06177a146102f05780632f2ff15d14610303578063313ce5671461031657600080fd5b806310fe9ae8116101d957806310fe9ae81461027057806318160ddd1461029557806323b872dd146102a7578063248a9ca3146102ba57600080fd5b806301ffc9a71461020b57806306fdde0314610233578063095ea7b3146102485780630ad58d2f1461025b575b600080fd5b61021e6102193660046117d4565b6104f8565b60405190151581526020015b60405180910390f35b61023b610523565b60405161022a91906118eb565b61021e61025636600461174c565b6105b5565b61026e6102693660046117fe565b6105cb565b005b6007546001600160a01b03165b6040516001600160a01b03909116815260200161022a565b6004545b60405190815260200161022a565b61021e6102b5366004611710565b6106ac565b6102996102c8366004611776565b60009081526020819052604090206001015490565b61026e6102eb366004611833565b610756565b61026e6102fe3660046116c2565b610834565b61026e61031136600461178f565b61085c565b600a5460405160ff909116815260200161022a565b610299610339366004611776565b60086020526000908152604090205481565b61026e61035936600461178f565b610887565b61021e61036c36600461174c565b610901565b61026e61037f366004611776565b61093d565b61029960095481565b60075461027d906001600160a01b031681565b6102996103ae3660046116c2565b6001600160a01b031660009081526002602052604090205490565b61026e6103d736600461174c565b61094a565b61026e6103ea3660046117fe565b6109cb565b61027d6103fd3660046117b2565b610a99565b61021e61041036600461178f565b610ab8565b61023b610ae1565b610299600081565b61021e61043336600461174c565b610af0565b61021e61044636600461174c565b610b89565b61026e6104593660046116c2565b610b96565b61029961046c366004611776565b610bba565b61029961047f366004611776565b610bf3565b61026e61049236600461178f565b610c0a565b6102996104a53660046116dd565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610299600080516020611b1c83398151915281565b6102996104f3366004611776565b610c30565b60006001600160e01b03198216635a05180f60e01b148061051d575061051d82610cfb565b92915050565b60606005805461053290611a88565b80601f016020809104026020016040519081016040528092919081815260200182805461055e90611a88565b80156105ab5780601f10610580576101008083540402835291602001916105ab565b820191906000526020600020905b81548152906001019060200180831161058e57829003601f168201915b5050505050905090565b60006105c2338484610d30565b50600192915050565b6105e3600080516020611b1c83398151915233610ab8565b6106085760405162461bcd60e51b81526004016105ff9061191e565b60405180910390fd5b600061061383610bba565b905061061f8284610e54565b6000848152600860205260408120805483929061063d9084906119ef565b9250508190555080600960008282546106569190611a2e565b909155505060075460408051858152602081018490526001600160a01b038581169316917fc3f7cb75c4b290a1a7f47394c576e48664f75b813851c4f2d196f914485f710b91015b60405180910390a350505050565b60006106b9848484610fa2565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561073e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016105ff565b61074b8533858403610d30565b506001949350505050565b61076e600080516020611b1c83398151915233610ab8565b61078a5760405162461bcd60e51b81526004016105ff9061191e565b600086815260086020526040812080548792906107a8908490611955565b9091555050600084815260086020526040812080548592906107cb9084906119ef565b9091555060009050816107de8588611a2e565b6107e89190611a2e565b90508060086000858152602001908152602001600020600082825461080d9190611955565b9250508190555080600960008282546108269190611996565b909155505050505050505050565b60006108408133611169565b610858600080516020611b1c833981519152836111cd565b5050565b6000828152602081905260409020600101546108788133611169565b61088283836111d3565b505050565b6001600160a01b03811633146108f75760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105ff565b61085882826111f5565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916105c2918590610938908690611996565b610d30565b6109473382610e54565b50565b600061095683336104a5565b9050818110156109b45760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b60648201526084016105ff565b6109c18333848403610d30565b6108828383610e54565b6109e3600080516020611b1c83398151915233610ab8565b6109ff5760405162461bcd60e51b81526004016105ff9061191e565b6000610a0a83610c30565b9050610a168282611217565b60008481526008602052604081208054859290610a34908490611955565b925050819055508260096000828254610a4d9190611996565b909155505060075460408051858152602081018490526001600160a01b038581169316917fd12854a02fa0a0a18ec43fb173bee96f8dc9a80f8633af72baa374833949f329910161069e565b6000828152600160205260408120610ab190836112f6565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461053290611a88565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610b725760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105ff565b610b7f3385858403610d30565b5060019392505050565b60006105c2338484610fa2565b6000610ba28133611169565b610858600080516020611b1c833981519152836111f5565b600080610bc660045490565b905080610bd4575090919050565b610ab181610bed6009548661130290919063ffffffff16565b9061130e565b600081815260016020526040812061051d9061131a565b600082815260208190526040902060010154610c268133611169565b61088283836111f5565b6000610c3b60045490565b610c43575090565b6000610c4e60045490565b600954909150610ab190610bed8584611302565b610c6c8282610ab8565b610858576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610ca23390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610ab1836001600160a01b038416611324565b60006001600160e01b03198216637965db0b60e01b148061051d57506301ffc9a760e01b6001600160e01b031983161461051d565b6001600160a01b038316610d925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ff565b6001600160a01b038216610df35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ff565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216610eb45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105ff565b6001600160a01b03821660009081526002602052604090205481811015610f285760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105ff565b6001600160a01b0383166000908152600260205260408120838303905560048054849290610f57908490611a2e565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6001600160a01b0383166110065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ff565b6001600160a01b0382166110685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ff565b6001600160a01b038316600090815260026020526040902054818110156110e05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105ff565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290611117908490611996565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161069e91815260200190565b50505050565b6111738282610ab8565b6108585761118b816001600160a01b03166014611373565b611196836020611373565b6040516020016111a7929190611876565b60408051601f198184030181529082905262461bcd60e51b82526105ff916004016118eb565b61085882825b6111dd8282610c62565b60008281526001602052604090206108829082610ce6565b6111ff828261150f565b60008281526001602052604090206108829082611574565b6001600160a01b03821661126d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105ff565b806004600082825461127f9190611996565b90915550506001600160a01b038216600090815260026020526040812080548392906112ac908490611996565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000610ab18383611589565b6000610ab182846119d0565b6000610ab182846119ae565b600061051d825490565b600081815260018301602052604081205461136b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561051d565b50600061051d565b606060006113828360026119d0565b61138d906002611996565b67ffffffffffffffff8111156113a5576113a5611b05565b6040519080825280601f01601f1916602001820160405280156113cf576020820181803683370190505b509050600360fc1b816000815181106113ea576113ea611aef565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061141957611419611aef565b60200101906001600160f81b031916908160001a905350600061143d8460026119d0565b611448906001611996565b90505b60018111156114c0576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061147c5761147c611aef565b1a60f81b82828151811061149257611492611aef565b60200101906001600160f81b031916908160001a90535060049490941c936114b981611a71565b905061144b565b508315610ab15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ff565b6115198282610ab8565b15610858576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610ab1836001600160a01b0384166115b3565b60008260000182815481106115a0576115a0611aef565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561169c5760006115d7600183611a2e565b85549091506000906115eb90600190611a2e565b905081811461165057600086600001828154811061160b5761160b611aef565b906000526020600020015490508087600001848154811061162e5761162e611aef565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061166157611661611ad9565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061051d565b600091505061051d565b80356001600160a01b03811681146116bd57600080fd5b919050565b6000602082840312156116d457600080fd5b610ab1826116a6565b600080604083850312156116f057600080fd5b6116f9836116a6565b9150611707602084016116a6565b90509250929050565b60008060006060848603121561172557600080fd5b61172e846116a6565b925061173c602085016116a6565b9150604084013590509250925092565b6000806040838503121561175f57600080fd5b611768836116a6565b946020939093013593505050565b60006020828403121561178857600080fd5b5035919050565b600080604083850312156117a257600080fd5b82359150611707602084016116a6565b600080604083850312156117c557600080fd5b50508035926020909101359150565b6000602082840312156117e657600080fd5b81356001600160e01b031981168114610ab157600080fd5b60008060006060848603121561181357600080fd5b833592506020840135915061182a604085016116a6565b90509250925092565b60008060008060008060c0878903121561184c57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516118ae816017850160208801611a45565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516118df816028840160208801611a45565b01602801949350505050565b602081526000825180602084015261190a816040850160208701611a45565b601f01601f19169190910160400192915050565b60208082526017908201527f43616c6c6572206973206e6f742061206d616e61676572000000000000000000604082015260600190565b600080821280156001600160ff1b038490038513161561197757611977611ac3565b600160ff1b839003841281161561199057611990611ac3565b50500190565b600082198211156119a9576119a9611ac3565b500190565b6000826119cb57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119ea576119ea611ac3565b500290565b60008083128015600160ff1b850184121615611a0d57611a0d611ac3565b6001600160ff1b0384018313811615611a2857611a28611ac3565b50500390565b600082821015611a4057611a40611ac3565b500390565b60005b83811015611a60578181015183820152602001611a48565b838111156111635750506000910152565b600081611a8057611a80611ac3565b506000190190565b600181811c90821680611a9c57607f821691505b60208210811415611abd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220d8527f266713aa91e880f15ed54045e1c146cee2025079db1d9cce0bda9c8ddc64736f6c63430008070033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c80636f307dc31161011a578063a457c2d7116100ad578063ca15c8731161007c578063ca15c87314610471578063d547741f14610484578063dd62ed3e14610497578063ec87621c146104d0578063f7a0627a146104e557600080fd5b8063a457c2d714610425578063a9059cbb14610438578063ac18de431461044b578063c2507ac11461045e57600080fd5b80639010d07c116100e95780639010d07c146103ef57806391d148541461040257806395d89b4114610415578063a217fddf1461041d57600080fd5b80636f307dc31461038d57806370a08231146103a057806379cc6790146103c95780638dbdbe6d146103dc57600080fd5b806328ab490d1161019d57806331a2a1f61161016c57806331a2a1f61461032b57806336568abe1461034b578063395093511461035e57806342966c681461037157806364fe41b31461038457600080fd5b806328ab490d146102dd5780632d06177a146102f05780632f2ff15d14610303578063313ce5671461031657600080fd5b806310fe9ae8116101d957806310fe9ae81461027057806318160ddd1461029557806323b872dd146102a7578063248a9ca3146102ba57600080fd5b806301ffc9a71461020b57806306fdde0314610233578063095ea7b3146102485780630ad58d2f1461025b575b600080fd5b61021e6102193660046117d4565b6104f8565b60405190151581526020015b60405180910390f35b61023b610523565b60405161022a91906118eb565b61021e61025636600461174c565b6105b5565b61026e6102693660046117fe565b6105cb565b005b6007546001600160a01b03165b6040516001600160a01b03909116815260200161022a565b6004545b60405190815260200161022a565b61021e6102b5366004611710565b6106ac565b6102996102c8366004611776565b60009081526020819052604090206001015490565b61026e6102eb366004611833565b610756565b61026e6102fe3660046116c2565b610834565b61026e61031136600461178f565b61085c565b600a5460405160ff909116815260200161022a565b610299610339366004611776565b60086020526000908152604090205481565b61026e61035936600461178f565b610887565b61021e61036c36600461174c565b610901565b61026e61037f366004611776565b61093d565b61029960095481565b60075461027d906001600160a01b031681565b6102996103ae3660046116c2565b6001600160a01b031660009081526002602052604090205490565b61026e6103d736600461174c565b61094a565b61026e6103ea3660046117fe565b6109cb565b61027d6103fd3660046117b2565b610a99565b61021e61041036600461178f565b610ab8565b61023b610ae1565b610299600081565b61021e61043336600461174c565b610af0565b61021e61044636600461174c565b610b89565b61026e6104593660046116c2565b610b96565b61029961046c366004611776565b610bba565b61029961047f366004611776565b610bf3565b61026e61049236600461178f565b610c0a565b6102996104a53660046116dd565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610299600080516020611b1c83398151915281565b6102996104f3366004611776565b610c30565b60006001600160e01b03198216635a05180f60e01b148061051d575061051d82610cfb565b92915050565b60606005805461053290611a88565b80601f016020809104026020016040519081016040528092919081815260200182805461055e90611a88565b80156105ab5780601f10610580576101008083540402835291602001916105ab565b820191906000526020600020905b81548152906001019060200180831161058e57829003601f168201915b5050505050905090565b60006105c2338484610d30565b50600192915050565b6105e3600080516020611b1c83398151915233610ab8565b6106085760405162461bcd60e51b81526004016105ff9061191e565b60405180910390fd5b600061061383610bba565b905061061f8284610e54565b6000848152600860205260408120805483929061063d9084906119ef565b9250508190555080600960008282546106569190611a2e565b909155505060075460408051858152602081018490526001600160a01b038581169316917fc3f7cb75c4b290a1a7f47394c576e48664f75b813851c4f2d196f914485f710b91015b60405180910390a350505050565b60006106b9848484610fa2565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561073e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016105ff565b61074b8533858403610d30565b506001949350505050565b61076e600080516020611b1c83398151915233610ab8565b61078a5760405162461bcd60e51b81526004016105ff9061191e565b600086815260086020526040812080548792906107a8908490611955565b9091555050600084815260086020526040812080548592906107cb9084906119ef565b9091555060009050816107de8588611a2e565b6107e89190611a2e565b90508060086000858152602001908152602001600020600082825461080d9190611955565b9250508190555080600960008282546108269190611996565b909155505050505050505050565b60006108408133611169565b610858600080516020611b1c833981519152836111cd565b5050565b6000828152602081905260409020600101546108788133611169565b61088283836111d3565b505050565b6001600160a01b03811633146108f75760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105ff565b61085882826111f5565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916105c2918590610938908690611996565b610d30565b6109473382610e54565b50565b600061095683336104a5565b9050818110156109b45760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b60648201526084016105ff565b6109c18333848403610d30565b6108828383610e54565b6109e3600080516020611b1c83398151915233610ab8565b6109ff5760405162461bcd60e51b81526004016105ff9061191e565b6000610a0a83610c30565b9050610a168282611217565b60008481526008602052604081208054859290610a34908490611955565b925050819055508260096000828254610a4d9190611996565b909155505060075460408051858152602081018490526001600160a01b038581169316917fd12854a02fa0a0a18ec43fb173bee96f8dc9a80f8633af72baa374833949f329910161069e565b6000828152600160205260408120610ab190836112f6565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461053290611a88565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610b725760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105ff565b610b7f3385858403610d30565b5060019392505050565b60006105c2338484610fa2565b6000610ba28133611169565b610858600080516020611b1c833981519152836111f5565b600080610bc660045490565b905080610bd4575090919050565b610ab181610bed6009548661130290919063ffffffff16565b9061130e565b600081815260016020526040812061051d9061131a565b600082815260208190526040902060010154610c268133611169565b61088283836111f5565b6000610c3b60045490565b610c43575090565b6000610c4e60045490565b600954909150610ab190610bed8584611302565b610c6c8282610ab8565b610858576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610ca23390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610ab1836001600160a01b038416611324565b60006001600160e01b03198216637965db0b60e01b148061051d57506301ffc9a760e01b6001600160e01b031983161461051d565b6001600160a01b038316610d925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ff565b6001600160a01b038216610df35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ff565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216610eb45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105ff565b6001600160a01b03821660009081526002602052604090205481811015610f285760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105ff565b6001600160a01b0383166000908152600260205260408120838303905560048054849290610f57908490611a2e565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6001600160a01b0383166110065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ff565b6001600160a01b0382166110685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ff565b6001600160a01b038316600090815260026020526040902054818110156110e05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105ff565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290611117908490611996565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161069e91815260200190565b50505050565b6111738282610ab8565b6108585761118b816001600160a01b03166014611373565b611196836020611373565b6040516020016111a7929190611876565b60408051601f198184030181529082905262461bcd60e51b82526105ff916004016118eb565b61085882825b6111dd8282610c62565b60008281526001602052604090206108829082610ce6565b6111ff828261150f565b60008281526001602052604090206108829082611574565b6001600160a01b03821661126d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105ff565b806004600082825461127f9190611996565b90915550506001600160a01b038216600090815260026020526040812080548392906112ac908490611996565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000610ab18383611589565b6000610ab182846119d0565b6000610ab182846119ae565b600061051d825490565b600081815260018301602052604081205461136b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561051d565b50600061051d565b606060006113828360026119d0565b61138d906002611996565b67ffffffffffffffff8111156113a5576113a5611b05565b6040519080825280601f01601f1916602001820160405280156113cf576020820181803683370190505b509050600360fc1b816000815181106113ea576113ea611aef565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061141957611419611aef565b60200101906001600160f81b031916908160001a905350600061143d8460026119d0565b611448906001611996565b90505b60018111156114c0576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061147c5761147c611aef565b1a60f81b82828151811061149257611492611aef565b60200101906001600160f81b031916908160001a90535060049490941c936114b981611a71565b905061144b565b508315610ab15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ff565b6115198282610ab8565b15610858576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610ab1836001600160a01b0384166115b3565b60008260000182815481106115a0576115a0611aef565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561169c5760006115d7600183611a2e565b85549091506000906115eb90600190611a2e565b905081811461165057600086600001828154811061160b5761160b611aef565b906000526020600020015490508087600001848154811061162e5761162e611aef565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061166157611661611ad9565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061051d565b600091505061051d565b80356001600160a01b03811681146116bd57600080fd5b919050565b6000602082840312156116d457600080fd5b610ab1826116a6565b600080604083850312156116f057600080fd5b6116f9836116a6565b9150611707602084016116a6565b90509250929050565b60008060006060848603121561172557600080fd5b61172e846116a6565b925061173c602085016116a6565b9150604084013590509250925092565b6000806040838503121561175f57600080fd5b611768836116a6565b946020939093013593505050565b60006020828403121561178857600080fd5b5035919050565b600080604083850312156117a257600080fd5b82359150611707602084016116a6565b600080604083850312156117c557600080fd5b50508035926020909101359150565b6000602082840312156117e657600080fd5b81356001600160e01b031981168114610ab157600080fd5b60008060006060848603121561181357600080fd5b833592506020840135915061182a604085016116a6565b90509250925092565b60008060008060008060c0878903121561184c57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516118ae816017850160208801611a45565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516118df816028840160208801611a45565b01602801949350505050565b602081526000825180602084015261190a816040850160208701611a45565b601f01601f19169190910160400192915050565b60208082526017908201527f43616c6c6572206973206e6f742061206d616e61676572000000000000000000604082015260600190565b600080821280156001600160ff1b038490038513161561197757611977611ac3565b600160ff1b839003841281161561199057611990611ac3565b50500190565b600082198211156119a9576119a9611ac3565b500190565b6000826119cb57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119ea576119ea611ac3565b500290565b60008083128015600160ff1b850184121615611a0d57611a0d611ac3565b6001600160ff1b0384018313811615611a2857611a28611ac3565b50500390565b600082821015611a4057611a40611ac3565b500390565b60005b83811015611a60578181015183820152602001611a48565b838111156111635750506000910152565b600081611a8057611a80611ac3565b506000190190565b600181811c90821680611a9c57607f821691505b60208210811415611abd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220d8527f266713aa91e880f15ed54045e1c146cee2025079db1d9cce0bda9c8ddc64736f6c63430008070033",
"linkReferences": {},
"deployedLinkReferences": {}
}