butterjs-sdk
Version:
Butter Network SDK
508 lines (507 loc) • 39.9 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "TokenRegisterV2",
"sourceName": "contracts/TokenRegisterV2.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "previousAdmin",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "AdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "beacon",
"type": "address"
}
],
"name": "BeaconUpgraded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_admin",
"type": "address"
}
],
"name": "changeAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "checkMintable",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getImplementation",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_fromChain",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "getRelayChainAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_fromChain",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_fromToken",
"type": "bytes"
}
],
"name": "getRelayChainToken",
"outputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_toChain",
"type": "uint256"
}
],
"name": "getToChainAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_toChain",
"type": "uint256"
}
],
"name": "getToChainToken",
"outputs": [
{
"internalType": "bytes",
"name": "_toChainToken",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_toChain",
"type": "uint256"
}
],
"name": "getToChainTokenInfo",
"outputs": [
{
"internalType": "bytes",
"name": "toChainToken",
"type": "bytes"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"components": [
{
"internalType": "uint256",
"name": "lowest",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "highest",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "rate",
"type": "uint256"
}
],
"internalType": "struct TokenRegisterV2.FeeRate",
"name": "feeRate",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_toChain",
"type": "uint256"
}
],
"name": "getTokenFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "getVaultToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_fromChain",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_fromToken",
"type": "bytes"
},
{
"internalType": "uint8",
"name": "_decimals",
"type": "uint8"
}
],
"name": "mapToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "address",
"name": "_vaultToken",
"type": "address"
},
{
"internalType": "bool",
"name": "_mintable",
"type": "bool"
}
],
"name": "registerToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "selfChainId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_toChain",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_lowest",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_highest",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_rate",
"type": "uint256"
}
],
"name": "setTokenFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "tokenList",
"outputs": [
{
"internalType": "bool",
"name": "mintable",
"type": "bool"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"internalType": "address",
"name": "vaultToken",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "tokenMappingList",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
}
],
"name": "upgradeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "upgradeToAndCall",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x60c06040523060601b6080524660a05234801561001b57600080fd5b5060805160601c60a051611e3761007c600039600081816103f5015281816105420152818161065a01528181611002015281816110a701526111470152600081816107e80152818161083101528181610a3c0152610a7c0152611e376000f3fe60806040526004361061011f5760003560e01c8063764d6c8c116100a0578063c6c7b9fc11610064578063c6c7b9fc146103c3578063cc9e3e89146103e3578063ceec8cb914610417578063eead8e7c14610460578063fb9e6c131461048057600080fd5b8063764d6c8c1461031a5780638129fc1c1461033a5780638f2839701461034f5780639dc6108f1461036f578063aaf10f42146103ae57600080fd5b80634bdb4eed116100e75780634bdb4eed1461023f5780634f1ef2861461025f57806364e9f35f146102725780636e9960c3146102e55780636eddb671146102fa57600080fd5b8063140dbf2a146101245780631917961714610193578063204f4877146101c157806324ec643e146101ee5780633659cfe61461021d575b600080fd5b34801561013057600080fd5b5061017661013f366004611a1b565b600160209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019f57600080fd5b506101b36101ae3660046119a2565b6104a0565b60405190815260200161018a565b3480156101cd57600080fd5b506101e16101dc36600461190a565b61053e565b60405161018a9190611ab1565b3480156101fa57600080fd5b5061020e61020936600461190a565b610630565b60405161018a93929190611ac4565b34801561022957600080fd5b5061023d610238366004611830565b6107dd565b005b34801561024b57600080fd5b5061023d61025a3660046119d7565b6108af565b61023d61026d3660046118ba565b610a31565b34801561027e57600080fd5b506102bd61028d366004611830565b60026020526000908152604090205460ff808216916101008104909116906201000090046001600160a01b031683565b60408051931515845260ff90921660208401526001600160a01b03169082015260600161018a565b3480156102f157600080fd5b50610176610aeb565b34801561030657600080fd5b5061023d610315366004611936565b610afa565b34801561032657600080fd5b5061023d61033536600461186a565b610ca1565b34801561034657600080fd5b5061023d610ecb565b34801561035b57600080fd5b5061023d61036a366004611830565b610f8c565b34801561037b57600080fd5b5061017661038a366004611830565b6001600160a01b039081166000908152600260205260409020546201000090041690565b3480156103ba57600080fd5b50610176610ff4565b3480156103cf57600080fd5b506101b36103de3660046119a2565b610ffe565b3480156103ef57600080fd5b506101b37f000000000000000000000000000000000000000000000000000000000000000081565b34801561042357600080fd5b50610450610432366004611830565b6001600160a01b031660009081526002602052604090205460ff1690565b604051901515815260200161018a565b34801561046c57600080fd5b506101b361047b3660046119a2565b6110a3565b34801561048c57600080fd5b5061017661049b366004611a1b565b611143565b6001600160a01b0383166000908152600260208181526040808420858552600190810183528185208251606081018452815481529181015493820193909352919092015491810182905290829061050790620f4240906105019088906111b5565b906111c1565b905081602001518111156105215750602001519050610537565b81518110156105335750519050610537565b9150505b9392505050565b60607f000000000000000000000000000000000000000000000000000000000000000082141561057857610571836111cd565b905061062a565b6001600160a01b0383166000908152600260209081526040808320858452600301909152902080546105a990611d4f565b80601f01602080910402602001604051908101604052809291908181526020018280546105d590611d4f565b80156106225780601f106105f757610100808354040283529160200191610622565b820191906000526020600020905b81548152906001019060200180831161060557829003601f168201915b505050505090505b92915050565b6060600061065860405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000008414156106b457610689856111cd565b6001600160a01b038616600090815260026020526040902054909350610100900460ff169150610792565b6001600160a01b0385166000908152600260209081526040808320878452600301909152902080546106e590611d4f565b80601f016020809104026020016040519081016040528092919081815260200182805461071190611d4f565b801561075e5780601f106107335761010080835404028352916020019161075e565b820191906000526020600020905b81548152906001019060200180831161074157829003601f168201915b505050506001600160a01b03871660009081526002602081815260408084208a855290920190529020549194505060ff1691505b506001600160a01b0390931660009081526002602081815260408084209584526001958601825292839020835160608101855281548152958101549186019190915201549083015292565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561082f5760405162461bcd60e51b815260040161082690611b32565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610861611203565b6001600160a01b0316146108875760405162461bcd60e51b815260040161082690611b7e565b61089081611236565b604080516000808252602082019092526108ac918391906112ac565b50565b6108b76113f7565b6001600160a01b0316336001600160a01b0316146108e75760405162461bcd60e51b815260040161082690611b05565b6001600160a01b03808616600090815260026020526040902080549091620100009091041661094c5760405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21036b0b8103a37b5b2b760791b6044820152606401610826565b8383101561099c5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206869676865737420616e64206c6f776573740000000000006044820152606401610826565b620f42408211156109ef5760405162461bcd60e51b815260206004820152601860248201527f696e76616c69642070726f706f7274696f6e2076616c756500000000000000006044820152606401610826565b60408051606081018252948552602080860194855285820193845260009687526001928301905290942092518355905192820192909255905160029091015550565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610a7a5760405162461bcd60e51b815260040161082690611b32565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610aac611203565b6001600160a01b031614610ad25760405162461bcd60e51b815260040161082690611b7e565b610adb82611236565b610ae7828260016112ac565b5050565b6000610af56113f7565b905090565b610b026113f7565b6001600160a01b0316336001600160a01b031614610b325760405162461bcd60e51b815260040161082690611b05565b604080516020808201909252600090528251908301207fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4701415610bac5760405162461bcd60e51b815260206004820152601260248201527134b73b30b634b210333937b6903a37b5b2b760711b6044820152606401610826565b6001600160a01b038085166000908152600260205260409020805490916201000090910416610c115760405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21036b0b8103a37b5b2b760791b6044820152606401610826565b60008481526002820160209081526040808320805460ff191660ff87161790556003840182529091208451610c489286019061170a565b50846001600086815260200190815260200160002084604051610c6b9190611a95565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050505050565b610ca96113f7565b6001600160a01b0316336001600160a01b031614610cd95760405162461bcd60e51b815260040161082690611b05565b826001600160a01b038116610d005760405162461bcd60e51b815260040161082690611bca565b826001600160a01b038116610d275760405162461bcd60e51b815260040161082690611bca565b6001600160a01b038086166000908152600260209081526040808320815163021fd35d60e31b8152915190948916926310fe9ae89260048082019391829003018186803b158015610d7757600080fd5b505afa158015610d8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daf919061184d565b9050806001600160a01b0316876001600160a01b031614610e085760405162461bcd60e51b815260206004820152601360248201527234b73b30b634b2103b30bab63a103a37b5b2b760691b6044820152606401610826565b858260000160026101000a8154816001600160a01b0302191690836001600160a01b03160217905550866001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610e6a57600080fd5b505afa158015610e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea29190611a4c565b825461ffff191661010060ff929092169190910260ff1916179415159490941790555050505050565b600054610100900460ff16610ee65760005460ff1615610eea565b303b155b610f4d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610826565b600054610100900460ff16158015610f6f576000805461ffff19166101011790555b610f783361141f565b80156108ac576000805461ff001916905550565b610f946113f7565b6001600160a01b0316336001600160a01b031614610fc45760405162461bcd60e51b815260040161082690611b05565b806001600160a01b038116610feb5760405162461bcd60e51b815260040161082690611bca565b610ae78261141f565b6000610af5611203565b60007f000000000000000000000000000000000000000000000000000000000000000082141561102f575081610537565b6001600160a01b0384166000908152600260208181526040808420805487865293019091529091205460ff6101009092048216911680821415611076578492505050610537565b61109961108483600a611c58565b61050161109284600a611c58565b88906111b5565b9695505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000008314156110d4575080610537565b6001600160a01b038416600081815260026020818152604080842088855280840183529084205494909352525460ff918216916101009091041680821415611120578392505050610537565b61109961112e83600a611c58565b61050161113c84600a611c58565b87906111b5565b60007f0000000000000000000000000000000000000000000000000000000000000000831415611177576014820151610571565b600083815260016020526040908190209051611194908490611a95565b908152604051908190036020019020546001600160a01b0316905092915050565b60006105378284611d00565b60006105378284611bf3565b604051606082811b6bffffffffffffffffffffffff19166020830152906034016040516020818303038152906040529050919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b546001600160a01b0316919050565b61123e6113f7565b6001600160a01b0316336001600160a01b0316146108ac5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e52656769737465723a206f6e6c792041646d696e2063616e207570604482015264677261646560d81b6064820152608401610826565b60006112b6611203565b90506112c184611473565b6000835111806112ce5750815b156112df576112dd848461151b565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff166113f057805460ff191660011781556040516001600160a01b038316602482015261135e90869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b17905261151b565b50805460ff1916815561136f611203565b6001600160a01b0316826001600160a01b0316146113e75760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610826565b6113f085611540565b5050505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103611227565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6114486113f7565b604080516001600160a01b03928316815291841660208301520160405180910390a16108ac81611580565b803b6114d75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610826565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606105378383604051806060016040528060278152602001611ddb6027913961160c565b61154981611473565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166115e55760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610826565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036114fa565b6060833b61166b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610826565b600080856001600160a01b0316856040516116869190611a95565b600060405180830381855af49150503d80600081146116c1576040519150601f19603f3d011682016040523d82523d6000602084013e6116c6565b606091505b5091509150611099828286606083156116e0575081610537565b8251156116f05782518084602001fd5b8160405162461bcd60e51b81526004016108269190611ab1565b82805461171690611d4f565b90600052602060002090601f016020900481019282611738576000855561177e565b82601f1061175157805160ff191683800117855561177e565b8280016001018555821561177e579182015b8281111561177e578251825591602001919060010190611763565b5061178a92915061178e565b5090565b5b8082111561178a576000815560010161178f565b600082601f8301126117b457600080fd5b813567ffffffffffffffff808211156117cf576117cf611da0565b604051601f8301601f19908116603f011681019082821181831017156117f7576117f7611da0565b8160405283815286602085880101111561181057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561184257600080fd5b813561053781611db6565b60006020828403121561185f57600080fd5b815161053781611db6565b60008060006060848603121561187f57600080fd5b833561188a81611db6565b9250602084013561189a81611db6565b9150604084013580151581146118af57600080fd5b809150509250925092565b600080604083850312156118cd57600080fd5b82356118d881611db6565b9150602083013567ffffffffffffffff8111156118f457600080fd5b611900858286016117a3565b9150509250929050565b6000806040838503121561191d57600080fd5b823561192881611db6565b946020939093013593505050565b6000806000806080858703121561194c57600080fd5b843561195781611db6565b935060208501359250604085013567ffffffffffffffff81111561197a57600080fd5b611986878288016117a3565b925050606085013561199781611dcb565b939692955090935050565b6000806000606084860312156119b757600080fd5b83356119c281611db6565b95602085013595506040909401359392505050565b600080600080600060a086880312156119ef57600080fd5b85356119fa81611db6565b97602087013597506040870135966060810135965060800135945092505050565b60008060408385031215611a2e57600080fd5b82359150602083013567ffffffffffffffff8111156118f457600080fd5b600060208284031215611a5e57600080fd5b815161053781611dcb565b60008151808452611a81816020860160208601611d1f565b601f01601f19169290920160200192915050565b60008251611aa7818460208701611d1f565b9190910192915050565b6020815260006105376020830184611a69565b60a081526000611ad760a0830186611a69565b905060ff84166020830152825160408301526020830151606083015260408301516080830152949350505050565b6020808252601390820152723932b3b4b9ba32b91037b7363c9037bbb732b960691b604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600f908201526e61646472657373206973207a65726f60881b604082015260600190565b600082611c1057634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611c50578160001904821115611c3657611c36611d8a565b80851615611c4357918102915b93841c9390800290611c1a565b509250929050565b60006105378383600082611c6e5750600161062a565b81611c7b5750600061062a565b8160018114611c915760028114611c9b57611cb7565b600191505061062a565b60ff841115611cac57611cac611d8a565b50506001821b61062a565b5060208310610133831016604e8410600b8410161715611cda575081810a61062a565b611ce48383611c15565b8060001904821115611cf857611cf8611d8a565b029392505050565b6000816000190483118215151615611d1a57611d1a611d8a565b500290565b60005b83811015611d3a578181015183820152602001611d22565b83811115611d49576000848401525b50505050565b600181811c90821680611d6357607f821691505b60208210811415611d8457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108ac57600080fd5b60ff811681146108ac57600080fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220b3b7b58cac612d16b65c2005e24fdd656e5add470c920fed90ac3633411ec12964736f6c63430008070033",
"deployedBytecode": "0x60806040526004361061011f5760003560e01c8063764d6c8c116100a0578063c6c7b9fc11610064578063c6c7b9fc146103c3578063cc9e3e89146103e3578063ceec8cb914610417578063eead8e7c14610460578063fb9e6c131461048057600080fd5b8063764d6c8c1461031a5780638129fc1c1461033a5780638f2839701461034f5780639dc6108f1461036f578063aaf10f42146103ae57600080fd5b80634bdb4eed116100e75780634bdb4eed1461023f5780634f1ef2861461025f57806364e9f35f146102725780636e9960c3146102e55780636eddb671146102fa57600080fd5b8063140dbf2a146101245780631917961714610193578063204f4877146101c157806324ec643e146101ee5780633659cfe61461021d575b600080fd5b34801561013057600080fd5b5061017661013f366004611a1b565b600160209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019f57600080fd5b506101b36101ae3660046119a2565b6104a0565b60405190815260200161018a565b3480156101cd57600080fd5b506101e16101dc36600461190a565b61053e565b60405161018a9190611ab1565b3480156101fa57600080fd5b5061020e61020936600461190a565b610630565b60405161018a93929190611ac4565b34801561022957600080fd5b5061023d610238366004611830565b6107dd565b005b34801561024b57600080fd5b5061023d61025a3660046119d7565b6108af565b61023d61026d3660046118ba565b610a31565b34801561027e57600080fd5b506102bd61028d366004611830565b60026020526000908152604090205460ff808216916101008104909116906201000090046001600160a01b031683565b60408051931515845260ff90921660208401526001600160a01b03169082015260600161018a565b3480156102f157600080fd5b50610176610aeb565b34801561030657600080fd5b5061023d610315366004611936565b610afa565b34801561032657600080fd5b5061023d61033536600461186a565b610ca1565b34801561034657600080fd5b5061023d610ecb565b34801561035b57600080fd5b5061023d61036a366004611830565b610f8c565b34801561037b57600080fd5b5061017661038a366004611830565b6001600160a01b039081166000908152600260205260409020546201000090041690565b3480156103ba57600080fd5b50610176610ff4565b3480156103cf57600080fd5b506101b36103de3660046119a2565b610ffe565b3480156103ef57600080fd5b506101b37f000000000000000000000000000000000000000000000000000000000000000081565b34801561042357600080fd5b50610450610432366004611830565b6001600160a01b031660009081526002602052604090205460ff1690565b604051901515815260200161018a565b34801561046c57600080fd5b506101b361047b3660046119a2565b6110a3565b34801561048c57600080fd5b5061017661049b366004611a1b565b611143565b6001600160a01b0383166000908152600260208181526040808420858552600190810183528185208251606081018452815481529181015493820193909352919092015491810182905290829061050790620f4240906105019088906111b5565b906111c1565b905081602001518111156105215750602001519050610537565b81518110156105335750519050610537565b9150505b9392505050565b60607f000000000000000000000000000000000000000000000000000000000000000082141561057857610571836111cd565b905061062a565b6001600160a01b0383166000908152600260209081526040808320858452600301909152902080546105a990611d4f565b80601f01602080910402602001604051908101604052809291908181526020018280546105d590611d4f565b80156106225780601f106105f757610100808354040283529160200191610622565b820191906000526020600020905b81548152906001019060200180831161060557829003601f168201915b505050505090505b92915050565b6060600061065860405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000008414156106b457610689856111cd565b6001600160a01b038616600090815260026020526040902054909350610100900460ff169150610792565b6001600160a01b0385166000908152600260209081526040808320878452600301909152902080546106e590611d4f565b80601f016020809104026020016040519081016040528092919081815260200182805461071190611d4f565b801561075e5780601f106107335761010080835404028352916020019161075e565b820191906000526020600020905b81548152906001019060200180831161074157829003601f168201915b505050506001600160a01b03871660009081526002602081815260408084208a855290920190529020549194505060ff1691505b506001600160a01b0390931660009081526002602081815260408084209584526001958601825292839020835160608101855281548152958101549186019190915201549083015292565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561082f5760405162461bcd60e51b815260040161082690611b32565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610861611203565b6001600160a01b0316146108875760405162461bcd60e51b815260040161082690611b7e565b61089081611236565b604080516000808252602082019092526108ac918391906112ac565b50565b6108b76113f7565b6001600160a01b0316336001600160a01b0316146108e75760405162461bcd60e51b815260040161082690611b05565b6001600160a01b03808616600090815260026020526040902080549091620100009091041661094c5760405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21036b0b8103a37b5b2b760791b6044820152606401610826565b8383101561099c5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206869676865737420616e64206c6f776573740000000000006044820152606401610826565b620f42408211156109ef5760405162461bcd60e51b815260206004820152601860248201527f696e76616c69642070726f706f7274696f6e2076616c756500000000000000006044820152606401610826565b60408051606081018252948552602080860194855285820193845260009687526001928301905290942092518355905192820192909255905160029091015550565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610a7a5760405162461bcd60e51b815260040161082690611b32565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610aac611203565b6001600160a01b031614610ad25760405162461bcd60e51b815260040161082690611b7e565b610adb82611236565b610ae7828260016112ac565b5050565b6000610af56113f7565b905090565b610b026113f7565b6001600160a01b0316336001600160a01b031614610b325760405162461bcd60e51b815260040161082690611b05565b604080516020808201909252600090528251908301207fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4701415610bac5760405162461bcd60e51b815260206004820152601260248201527134b73b30b634b210333937b6903a37b5b2b760711b6044820152606401610826565b6001600160a01b038085166000908152600260205260409020805490916201000090910416610c115760405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21036b0b8103a37b5b2b760791b6044820152606401610826565b60008481526002820160209081526040808320805460ff191660ff87161790556003840182529091208451610c489286019061170a565b50846001600086815260200190815260200160002084604051610c6b9190611a95565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050505050565b610ca96113f7565b6001600160a01b0316336001600160a01b031614610cd95760405162461bcd60e51b815260040161082690611b05565b826001600160a01b038116610d005760405162461bcd60e51b815260040161082690611bca565b826001600160a01b038116610d275760405162461bcd60e51b815260040161082690611bca565b6001600160a01b038086166000908152600260209081526040808320815163021fd35d60e31b8152915190948916926310fe9ae89260048082019391829003018186803b158015610d7757600080fd5b505afa158015610d8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daf919061184d565b9050806001600160a01b0316876001600160a01b031614610e085760405162461bcd60e51b815260206004820152601360248201527234b73b30b634b2103b30bab63a103a37b5b2b760691b6044820152606401610826565b858260000160026101000a8154816001600160a01b0302191690836001600160a01b03160217905550866001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610e6a57600080fd5b505afa158015610e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea29190611a4c565b825461ffff191661010060ff929092169190910260ff1916179415159490941790555050505050565b600054610100900460ff16610ee65760005460ff1615610eea565b303b155b610f4d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610826565b600054610100900460ff16158015610f6f576000805461ffff19166101011790555b610f783361141f565b80156108ac576000805461ff001916905550565b610f946113f7565b6001600160a01b0316336001600160a01b031614610fc45760405162461bcd60e51b815260040161082690611b05565b806001600160a01b038116610feb5760405162461bcd60e51b815260040161082690611bca565b610ae78261141f565b6000610af5611203565b60007f000000000000000000000000000000000000000000000000000000000000000082141561102f575081610537565b6001600160a01b0384166000908152600260208181526040808420805487865293019091529091205460ff6101009092048216911680821415611076578492505050610537565b61109961108483600a611c58565b61050161109284600a611c58565b88906111b5565b9695505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000008314156110d4575080610537565b6001600160a01b038416600081815260026020818152604080842088855280840183529084205494909352525460ff918216916101009091041680821415611120578392505050610537565b61109961112e83600a611c58565b61050161113c84600a611c58565b87906111b5565b60007f0000000000000000000000000000000000000000000000000000000000000000831415611177576014820151610571565b600083815260016020526040908190209051611194908490611a95565b908152604051908190036020019020546001600160a01b0316905092915050565b60006105378284611d00565b60006105378284611bf3565b604051606082811b6bffffffffffffffffffffffff19166020830152906034016040516020818303038152906040529050919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b546001600160a01b0316919050565b61123e6113f7565b6001600160a01b0316336001600160a01b0316146108ac5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e52656769737465723a206f6e6c792041646d696e2063616e207570604482015264677261646560d81b6064820152608401610826565b60006112b6611203565b90506112c184611473565b6000835111806112ce5750815b156112df576112dd848461151b565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff166113f057805460ff191660011781556040516001600160a01b038316602482015261135e90869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b17905261151b565b50805460ff1916815561136f611203565b6001600160a01b0316826001600160a01b0316146113e75760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610826565b6113f085611540565b5050505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103611227565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6114486113f7565b604080516001600160a01b03928316815291841660208301520160405180910390a16108ac81611580565b803b6114d75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610826565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606105378383604051806060016040528060278152602001611ddb6027913961160c565b61154981611473565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166115e55760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610826565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036114fa565b6060833b61166b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610826565b600080856001600160a01b0316856040516116869190611a95565b600060405180830381855af49150503d80600081146116c1576040519150601f19603f3d011682016040523d82523d6000602084013e6116c6565b606091505b5091509150611099828286606083156116e0575081610537565b8251156116f05782518084602001fd5b8160405162461bcd60e51b81526004016108269190611ab1565b82805461171690611d4f565b90600052602060002090601f016020900481019282611738576000855561177e565b82601f1061175157805160ff191683800117855561177e565b8280016001018555821561177e579182015b8281111561177e578251825591602001919060010190611763565b5061178a92915061178e565b5090565b5b8082111561178a576000815560010161178f565b600082601f8301126117b457600080fd5b813567ffffffffffffffff808211156117cf576117cf611da0565b604051601f8301601f19908116603f011681019082821181831017156117f7576117f7611da0565b8160405283815286602085880101111561181057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561184257600080fd5b813561053781611db6565b60006020828403121561185f57600080fd5b815161053781611db6565b60008060006060848603121561187f57600080fd5b833561188a81611db6565b9250602084013561189a81611db6565b9150604084013580151581146118af57600080fd5b809150509250925092565b600080604083850312156118cd57600080fd5b82356118d881611db6565b9150602083013567ffffffffffffffff8111156118f457600080fd5b611900858286016117a3565b9150509250929050565b6000806040838503121561191d57600080fd5b823561192881611db6565b946020939093013593505050565b6000806000806080858703121561194c57600080fd5b843561195781611db6565b935060208501359250604085013567ffffffffffffffff81111561197a57600080fd5b611986878288016117a3565b925050606085013561199781611dcb565b939692955090935050565b6000806000606084860312156119b757600080fd5b83356119c281611db6565b95602085013595506040909401359392505050565b600080600080600060a086880312156119ef57600080fd5b85356119fa81611db6565b97602087013597506040870135966060810135965060800135945092505050565b60008060408385031215611a2e57600080fd5b82359150602083013567ffffffffffffffff8111156118f457600080fd5b600060208284031215611a5e57600080fd5b815161053781611dcb565b60008151808452611a81816020860160208601611d1f565b601f01601f19169290920160200192915050565b60008251611aa7818460208701611d1f565b9190910192915050565b6020815260006105376020830184611a69565b60a081526000611ad760a0830186611a69565b905060ff84166020830152825160408301526020830151606083015260408301516080830152949350505050565b6020808252601390820152723932b3b4b9ba32b91037b7363c9037bbb732b960691b604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600f908201526e61646472657373206973207a65726f60881b604082015260600190565b600082611c1057634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611c50578160001904821115611c3657611c36611d8a565b80851615611c4357918102915b93841c9390800290611c1a565b509250929050565b60006105378383600082611c6e5750600161062a565b81611c7b5750600061062a565b8160018114611c915760028114611c9b57611cb7565b600191505061062a565b60ff841115611cac57611cac611d8a565b50506001821b61062a565b5060208310610133831016604e8410600b8410161715611cda575081810a61062a565b611ce48383611c15565b8060001904821115611cf857611cf8611d8a565b029392505050565b6000816000190483118215151615611d1a57611d1a611d8a565b500290565b60005b83811015611d3a578181015183820152602001611d22565b83811115611d49576000848401525b50505050565b600181811c90821680611d6357607f821691505b60208210811415611d8457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108ac57600080fd5b60ff811681146108ac57600080fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220b3b7b58cac612d16b65c2005e24fdd656e5add470c920fed90ac3633411ec12964736f6c63430008070033",
"linkReferences": {},
"deployedLinkReferences": {}
}