barterjs-sdk
Version:
Barter Network SDK
862 lines (861 loc) • 47.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": "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"
},
{
"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": "0x60806040523480156200001157600080fd5b50604051620020053803806200200583398101604081905262000034916200046a565b8151829082906200004d9060059060208501906200030d565b508051620000639060069060208401906200030d565b5050506001600160a01b038316620000c15760405162461bcd60e51b815260206004820152601a60248201527f756e6465726c79696e672061646472657373206973207a65726f000000000000604482015260640160405180910390fd5b620000ce600033620001a8565b620000fa7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0833620001a8565b600780546001600160a01b0319166001600160a01b0385169081179091556040805163313ce56760e01b8152905163313ce56791600480820192602092909190829003018186803b1580156200014f57600080fd5b505afa15801562000164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018a9190620004f4565b600a805460ff191660ff929092169190911790555062000573915050565b620001b48282620001b8565b5050565b620001cf8282620001fb60201b62000b3c1760201c565b6000828152600160209081526040909120620001f691839062000bc06200029b821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620001b4576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002573390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620002b2836001600160a01b038416620002bb565b90505b92915050565b60008181526001830160205260408120546200030457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620002b5565b506000620002b5565b8280546200031b9062000520565b90600052602060002090601f0160209004810192826200033f57600085556200038a565b82601f106200035a57805160ff19168380011785556200038a565b828001600101855582156200038a579182015b828111156200038a5782518255916020019190600101906200036d565b50620003989291506200039c565b5090565b5b808211156200039857600081556001016200039d565b600082601f830112620003c557600080fd5b81516001600160401b0380821115620003e257620003e26200055d565b604051601f8301601f19908116603f011681019082821181831017156200040d576200040d6200055d565b816040528381526020925086838588010111156200042a57600080fd5b600091505b838210156200044e57858201830151818301840152908201906200042f565b83821115620004605760008385830101525b9695505050505050565b6000806000606084860312156200048057600080fd5b83516001600160a01b03811681146200049857600080fd5b60208501519093506001600160401b0380821115620004b657600080fd5b620004c487838801620003b3565b93506040860151915080821115620004db57600080fd5b50620004ea86828701620003b3565b9150509250925092565b6000602082840312156200050757600080fd5b815160ff811681146200051957600080fd5b9392505050565b600181811c908216806200053557607f821691505b602082108114156200055757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b611a8280620005836000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80636f307dc31161011a578063a457c2d7116100ad578063ca15c8731161007c578063ca15c87314610471578063d547741f14610484578063dd62ed3e14610497578063ec87621c146104aa578063f7a0627a146104bf57600080fd5b8063a457c2d714610425578063a9059cbb14610438578063ac18de431461044b578063c2507ac11461045e57600080fd5b80639010d07c116100e95780639010d07c146103ef57806391d148541461040257806395d89b4114610415578063a217fddf1461041d57600080fd5b80636f307dc31461038d57806370a08231146103a057806379cc6790146103c95780638dbdbe6d146103dc57600080fd5b806328ab490d1161019d57806331a2a1f61161016c57806331a2a1f61461032b57806336568abe1461034b578063395093511461035e57806342966c681461037157806364fe41b31461038457600080fd5b806328ab490d146102dd5780632d06177a146102f05780632f2ff15d14610303578063313ce5671461031657600080fd5b806310fe9ae8116101d957806310fe9ae81461027057806318160ddd1461029557806323b872dd146102a7578063248a9ca3146102ba57600080fd5b806301ffc9a71461020b57806306fdde0314610233578063095ea7b3146102485780630ad58d2f1461025b575b600080fd5b61021e6102193660046116e5565b6104d2565b60405190151581526020015b60405180910390f35b61023b6104fd565b60405161022a91906117fc565b61021e61025636600461165d565b61058f565b61026e61026936600461170f565b6105a7565b005b6007546001600160a01b03165b6040516001600160a01b03909116815260200161022a565b6004545b60405190815260200161022a565b61021e6102b5366004611621565b610688565b6102996102c8366004611687565b60009081526020819052604090206001015490565b61026e6102eb366004611744565b6106ac565b61026e6102fe3660046115d3565b61078a565b61026e6103113660046116a0565b6107b1565b600a5460405160ff909116815260200161022a565b610299610339366004611687565b60086020526000908152604090205481565b61026e6103593660046116a0565b6107db565b61021e61036c36600461165d565b610855565b61026e61037f366004611687565b610877565b61029960095481565b60075461027d906001600160a01b031681565b6102996103ae3660046115d3565b6001600160a01b031660009081526002602052604090205490565b61026e6103d736600461165d565b610884565b61026e6103ea36600461170f565b610899565b61027d6103fd3660046116c3565b610967565b61021e6104103660046116a0565b610986565b61023b6109af565b610299600081565b61021e61043336600461165d565b6109be565b61021e61044636600461165d565b610a39565b61026e6104593660046115d3565b610a47565b61029961046c366004611687565b610a6a565b61029961047f366004611687565b610aa3565b61026e6104923660046116a0565b610aba565b6102996104a53660046115ee565b610adf565b610299600080516020611a2d83398151915281565b6102996104cd366004611687565b610b0a565b60006001600160e01b03198216635a05180f60e01b14806104f757506104f782610bd5565b92915050565b60606005805461050c90611999565b80601f016020809104026020016040519081016040528092919081815260200182805461053890611999565b80156105855780601f1061055a57610100808354040283529160200191610585565b820191906000526020600020905b81548152906001019060200180831161056857829003601f168201915b5050505050905090565b60003361059d818585610c0a565b5060019392505050565b6105bf600080516020611a2d83398151915233610986565b6105e45760405162461bcd60e51b81526004016105db9061182f565b60405180910390fd5b60006105ef83610a6a565b90506105fb8284610d2e565b60008481526008602052604081208054839290610619908490611900565b925050819055508060096000828254610632919061193f565b909155505060075460408051858152602081018490526001600160a01b038581169316917fc3f7cb75c4b290a1a7f47394c576e48664f75b813851c4f2d196f914485f710b91015b60405180910390a350505050565b600033610696858285610e62565b6106a1858585610edc565b506001949350505050565b6106c4600080516020611a2d83398151915233610986565b6106e05760405162461bcd60e51b81526004016105db9061182f565b600086815260086020526040812080548792906106fe908490611866565b909155505060008481526008602052604081208054859290610721908490611900565b909155506000905081610734858861193f565b61073e919061193f565b9050806008600085815260200190815260200160002060008282546107639190611866565b92505081905550806009600082825461077c91906118a7565b909155505050505050505050565b600061079581611087565b6107ad600080516020611a2d83398151915283611091565b5050565b6000828152602081905260409020600101546107cc81611087565b6107d68383611097565b505050565b6001600160a01b038116331461084b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105db565b6107ad82826110b9565b60003361059d8185856108688383610adf565b61087291906118a7565b610c0a565b6108813382610d2e565b50565b61088f823383610e62565b6107ad8282610d2e565b6108b1600080516020611a2d83398151915233610986565b6108cd5760405162461bcd60e51b81526004016105db9061182f565b60006108d883610b0a565b90506108e482826110db565b60008481526008602052604081208054859290610902908490611866565b92505081905550826009600082825461091b91906118a7565b909155505060075460408051858152602081018490526001600160a01b038581169316917fd12854a02fa0a0a18ec43fb173bee96f8dc9a80f8633af72baa374833949f329910161067a565b600082815260016020526040812061097f908361119c565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461050c90611999565b600033816109cc8286610adf565b905083811015610a2c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105db565b6106a18286868403610c0a565b60003361059d818585610edc565b6000610a5281611087565b6107ad600080516020611a2d833981519152836110b9565b600080610a7660045490565b905080610a84575090919050565b61097f81610a9d600954866111a890919063ffffffff16565b906111b4565b60008181526001602052604081206104f7906111c0565b600082815260208190526040902060010154610ad581611087565b6107d683836110b9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000610b1560045490565b610b1d575090565b6000610b2860045490565b60095490915061097f90610a9d85846111a8565b610b468282610986565b6107ad576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610b7c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061097f836001600160a01b0384166111ca565b60006001600160e01b03198216637965db0b60e01b14806104f757506301ffc9a760e01b6001600160e01b03198316146104f7565b6001600160a01b038316610c6c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105db565b6001600160a01b038216610ccd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105db565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216610d8e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105db565b6001600160a01b03821660009081526002602052604090205481811015610e025760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105db565b6001600160a01b03831660008181526002602090815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000610e6e8484610adf565b90506000198114610ed65781811015610ec95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105db565b610ed68484848403610c0a565b50505050565b6001600160a01b038316610f405760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105db565b6001600160a01b038216610fa25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105db565b6001600160a01b0383166000908152600260205260409020548181101561101a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105db565b6001600160a01b0380851660008181526002602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061107a9086815260200190565b60405180910390a3610ed6565b6108818133611219565b6107ad82825b6110a18282610b3c565b60008281526001602052604090206107d69082610bc0565b6110c38282611272565b60008281526001602052604090206107d690826112d7565b6001600160a01b0382166111315760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105db565b806004600082825461114391906118a7565b90915550506001600160a01b0382166000818152600260209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600061097f83836112ec565b600061097f82846118e1565b600061097f82846118bf565b60006104f7825490565b6000818152600183016020526040812054611211575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104f7565b5060006104f7565b6112238282610986565b6107ad5761123081611316565b61123b836020611328565b60405160200161124c929190611787565b60408051601f198184030181529082905262461bcd60e51b82526105db916004016117fc565b61127c8282610986565b156107ad576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061097f836001600160a01b0384166114c4565b600082600001828154811061130357611303611a00565b9060005260206000200154905092915050565b60606104f76001600160a01b03831660145b606060006113378360026118e1565b6113429060026118a7565b67ffffffffffffffff81111561135a5761135a611a16565b6040519080825280601f01601f191660200182016040528015611384576020820181803683370190505b509050600360fc1b8160008151811061139f5761139f611a00565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106113ce576113ce611a00565b60200101906001600160f81b031916908160001a90535060006113f28460026118e1565b6113fd9060016118a7565b90505b6001811115611475576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061143157611431611a00565b1a60f81b82828151811061144757611447611a00565b60200101906001600160f81b031916908160001a90535060049490941c9361146e81611982565b9050611400565b50831561097f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105db565b600081815260018301602052604081205480156115ad5760006114e860018361193f565b85549091506000906114fc9060019061193f565b905081811461156157600086600001828154811061151c5761151c611a00565b906000526020600020015490508087600001848154811061153f5761153f611a00565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611572576115726119ea565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104f7565b60009150506104f7565b80356001600160a01b03811681146115ce57600080fd5b919050565b6000602082840312156115e557600080fd5b61097f826115b7565b6000806040838503121561160157600080fd5b61160a836115b7565b9150611618602084016115b7565b90509250929050565b60008060006060848603121561163657600080fd5b61163f846115b7565b925061164d602085016115b7565b9150604084013590509250925092565b6000806040838503121561167057600080fd5b611679836115b7565b946020939093013593505050565b60006020828403121561169957600080fd5b5035919050565b600080604083850312156116b357600080fd5b82359150611618602084016115b7565b600080604083850312156116d657600080fd5b50508035926020909101359150565b6000602082840312156116f757600080fd5b81356001600160e01b03198116811461097f57600080fd5b60008060006060848603121561172457600080fd5b833592506020840135915061173b604085016115b7565b90509250925092565b60008060008060008060c0878903121561175d57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516117bf816017850160208801611956565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516117f0816028840160208801611956565b01602801949350505050565b602081526000825180602084015261181b816040850160208701611956565b601f01601f19169190910160400192915050565b60208082526017908201527f43616c6c6572206973206e6f742061206d616e61676572000000000000000000604082015260600190565b600080821280156001600160ff1b0384900385131615611888576118886119d4565b600160ff1b83900384128116156118a1576118a16119d4565b50500190565b600082198211156118ba576118ba6119d4565b500190565b6000826118dc57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156118fb576118fb6119d4565b500290565b60008083128015600160ff1b85018412161561191e5761191e6119d4565b6001600160ff1b0384018313811615611939576119396119d4565b50500390565b600082821015611951576119516119d4565b500390565b60005b83811015611971578181015183820152602001611959565b83811115610ed65750506000910152565b600081611991576119916119d4565b506000190190565b600181811c908216806119ad57607f821691505b602082108114156119ce57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220d8ca2da210dd605597e5bb583401eb1457638be3360909a7bf83aeeb7441946f64736f6c63430008070033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c80636f307dc31161011a578063a457c2d7116100ad578063ca15c8731161007c578063ca15c87314610471578063d547741f14610484578063dd62ed3e14610497578063ec87621c146104aa578063f7a0627a146104bf57600080fd5b8063a457c2d714610425578063a9059cbb14610438578063ac18de431461044b578063c2507ac11461045e57600080fd5b80639010d07c116100e95780639010d07c146103ef57806391d148541461040257806395d89b4114610415578063a217fddf1461041d57600080fd5b80636f307dc31461038d57806370a08231146103a057806379cc6790146103c95780638dbdbe6d146103dc57600080fd5b806328ab490d1161019d57806331a2a1f61161016c57806331a2a1f61461032b57806336568abe1461034b578063395093511461035e57806342966c681461037157806364fe41b31461038457600080fd5b806328ab490d146102dd5780632d06177a146102f05780632f2ff15d14610303578063313ce5671461031657600080fd5b806310fe9ae8116101d957806310fe9ae81461027057806318160ddd1461029557806323b872dd146102a7578063248a9ca3146102ba57600080fd5b806301ffc9a71461020b57806306fdde0314610233578063095ea7b3146102485780630ad58d2f1461025b575b600080fd5b61021e6102193660046116e5565b6104d2565b60405190151581526020015b60405180910390f35b61023b6104fd565b60405161022a91906117fc565b61021e61025636600461165d565b61058f565b61026e61026936600461170f565b6105a7565b005b6007546001600160a01b03165b6040516001600160a01b03909116815260200161022a565b6004545b60405190815260200161022a565b61021e6102b5366004611621565b610688565b6102996102c8366004611687565b60009081526020819052604090206001015490565b61026e6102eb366004611744565b6106ac565b61026e6102fe3660046115d3565b61078a565b61026e6103113660046116a0565b6107b1565b600a5460405160ff909116815260200161022a565b610299610339366004611687565b60086020526000908152604090205481565b61026e6103593660046116a0565b6107db565b61021e61036c36600461165d565b610855565b61026e61037f366004611687565b610877565b61029960095481565b60075461027d906001600160a01b031681565b6102996103ae3660046115d3565b6001600160a01b031660009081526002602052604090205490565b61026e6103d736600461165d565b610884565b61026e6103ea36600461170f565b610899565b61027d6103fd3660046116c3565b610967565b61021e6104103660046116a0565b610986565b61023b6109af565b610299600081565b61021e61043336600461165d565b6109be565b61021e61044636600461165d565b610a39565b61026e6104593660046115d3565b610a47565b61029961046c366004611687565b610a6a565b61029961047f366004611687565b610aa3565b61026e6104923660046116a0565b610aba565b6102996104a53660046115ee565b610adf565b610299600080516020611a2d83398151915281565b6102996104cd366004611687565b610b0a565b60006001600160e01b03198216635a05180f60e01b14806104f757506104f782610bd5565b92915050565b60606005805461050c90611999565b80601f016020809104026020016040519081016040528092919081815260200182805461053890611999565b80156105855780601f1061055a57610100808354040283529160200191610585565b820191906000526020600020905b81548152906001019060200180831161056857829003601f168201915b5050505050905090565b60003361059d818585610c0a565b5060019392505050565b6105bf600080516020611a2d83398151915233610986565b6105e45760405162461bcd60e51b81526004016105db9061182f565b60405180910390fd5b60006105ef83610a6a565b90506105fb8284610d2e565b60008481526008602052604081208054839290610619908490611900565b925050819055508060096000828254610632919061193f565b909155505060075460408051858152602081018490526001600160a01b038581169316917fc3f7cb75c4b290a1a7f47394c576e48664f75b813851c4f2d196f914485f710b91015b60405180910390a350505050565b600033610696858285610e62565b6106a1858585610edc565b506001949350505050565b6106c4600080516020611a2d83398151915233610986565b6106e05760405162461bcd60e51b81526004016105db9061182f565b600086815260086020526040812080548792906106fe908490611866565b909155505060008481526008602052604081208054859290610721908490611900565b909155506000905081610734858861193f565b61073e919061193f565b9050806008600085815260200190815260200160002060008282546107639190611866565b92505081905550806009600082825461077c91906118a7565b909155505050505050505050565b600061079581611087565b6107ad600080516020611a2d83398151915283611091565b5050565b6000828152602081905260409020600101546107cc81611087565b6107d68383611097565b505050565b6001600160a01b038116331461084b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105db565b6107ad82826110b9565b60003361059d8185856108688383610adf565b61087291906118a7565b610c0a565b6108813382610d2e565b50565b61088f823383610e62565b6107ad8282610d2e565b6108b1600080516020611a2d83398151915233610986565b6108cd5760405162461bcd60e51b81526004016105db9061182f565b60006108d883610b0a565b90506108e482826110db565b60008481526008602052604081208054859290610902908490611866565b92505081905550826009600082825461091b91906118a7565b909155505060075460408051858152602081018490526001600160a01b038581169316917fd12854a02fa0a0a18ec43fb173bee96f8dc9a80f8633af72baa374833949f329910161067a565b600082815260016020526040812061097f908361119c565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461050c90611999565b600033816109cc8286610adf565b905083811015610a2c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105db565b6106a18286868403610c0a565b60003361059d818585610edc565b6000610a5281611087565b6107ad600080516020611a2d833981519152836110b9565b600080610a7660045490565b905080610a84575090919050565b61097f81610a9d600954866111a890919063ffffffff16565b906111b4565b60008181526001602052604081206104f7906111c0565b600082815260208190526040902060010154610ad581611087565b6107d683836110b9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000610b1560045490565b610b1d575090565b6000610b2860045490565b60095490915061097f90610a9d85846111a8565b610b468282610986565b6107ad576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610b7c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061097f836001600160a01b0384166111ca565b60006001600160e01b03198216637965db0b60e01b14806104f757506301ffc9a760e01b6001600160e01b03198316146104f7565b6001600160a01b038316610c6c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105db565b6001600160a01b038216610ccd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105db565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216610d8e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105db565b6001600160a01b03821660009081526002602052604090205481811015610e025760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105db565b6001600160a01b03831660008181526002602090815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000610e6e8484610adf565b90506000198114610ed65781811015610ec95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105db565b610ed68484848403610c0a565b50505050565b6001600160a01b038316610f405760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105db565b6001600160a01b038216610fa25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105db565b6001600160a01b0383166000908152600260205260409020548181101561101a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105db565b6001600160a01b0380851660008181526002602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061107a9086815260200190565b60405180910390a3610ed6565b6108818133611219565b6107ad82825b6110a18282610b3c565b60008281526001602052604090206107d69082610bc0565b6110c38282611272565b60008281526001602052604090206107d690826112d7565b6001600160a01b0382166111315760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105db565b806004600082825461114391906118a7565b90915550506001600160a01b0382166000818152600260209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600061097f83836112ec565b600061097f82846118e1565b600061097f82846118bf565b60006104f7825490565b6000818152600183016020526040812054611211575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104f7565b5060006104f7565b6112238282610986565b6107ad5761123081611316565b61123b836020611328565b60405160200161124c929190611787565b60408051601f198184030181529082905262461bcd60e51b82526105db916004016117fc565b61127c8282610986565b156107ad576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061097f836001600160a01b0384166114c4565b600082600001828154811061130357611303611a00565b9060005260206000200154905092915050565b60606104f76001600160a01b03831660145b606060006113378360026118e1565b6113429060026118a7565b67ffffffffffffffff81111561135a5761135a611a16565b6040519080825280601f01601f191660200182016040528015611384576020820181803683370190505b509050600360fc1b8160008151811061139f5761139f611a00565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106113ce576113ce611a00565b60200101906001600160f81b031916908160001a90535060006113f28460026118e1565b6113fd9060016118a7565b90505b6001811115611475576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061143157611431611a00565b1a60f81b82828151811061144757611447611a00565b60200101906001600160f81b031916908160001a90535060049490941c9361146e81611982565b9050611400565b50831561097f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105db565b600081815260018301602052604081205480156115ad5760006114e860018361193f565b85549091506000906114fc9060019061193f565b905081811461156157600086600001828154811061151c5761151c611a00565b906000526020600020015490508087600001848154811061153f5761153f611a00565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611572576115726119ea565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104f7565b60009150506104f7565b80356001600160a01b03811681146115ce57600080fd5b919050565b6000602082840312156115e557600080fd5b61097f826115b7565b6000806040838503121561160157600080fd5b61160a836115b7565b9150611618602084016115b7565b90509250929050565b60008060006060848603121561163657600080fd5b61163f846115b7565b925061164d602085016115b7565b9150604084013590509250925092565b6000806040838503121561167057600080fd5b611679836115b7565b946020939093013593505050565b60006020828403121561169957600080fd5b5035919050565b600080604083850312156116b357600080fd5b82359150611618602084016115b7565b600080604083850312156116d657600080fd5b50508035926020909101359150565b6000602082840312156116f757600080fd5b81356001600160e01b03198116811461097f57600080fd5b60008060006060848603121561172457600080fd5b833592506020840135915061173b604085016115b7565b90509250925092565b60008060008060008060c0878903121561175d57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516117bf816017850160208801611956565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516117f0816028840160208801611956565b01602801949350505050565b602081526000825180602084015261181b816040850160208701611956565b601f01601f19169190910160400192915050565b60208082526017908201527f43616c6c6572206973206e6f742061206d616e61676572000000000000000000604082015260600190565b600080821280156001600160ff1b0384900385131615611888576118886119d4565b600160ff1b83900384128116156118a1576118a16119d4565b50500190565b600082198211156118ba576118ba6119d4565b500190565b6000826118dc57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156118fb576118fb6119d4565b500290565b60008083128015600160ff1b85018412161561191e5761191e6119d4565b6001600160ff1b0384018313811615611939576119396119d4565b50500390565b600082821015611951576119516119d4565b500390565b60005b83811015611971578181015183820152602001611959565b83811115610ed65750506000910152565b600081611991576119916119d4565b506000190190565b600181811c908216806119ad57607f821691505b602082108114156119ce57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220d8ca2da210dd605597e5bb583401eb1457638be3360909a7bf83aeeb7441946f64736f6c63430008070033",
"linkReferences": {},
"deployedLinkReferences": {}
}