@verified-network/verified-sdk
Version:
An SDK to develop applications on the Verified Network
642 lines • 3.22 MB
JSON
{
"contractName": "Client",
"abi": [
{
"constant": false,
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isOwner",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "manager",
"type": "address"
},
{
"indexed": true,
"name": "submanager",
"type": "address"
},
{
"indexed": false,
"name": "role",
"type": "bytes32"
},
{
"indexed": false,
"name": "country",
"type": "bytes32"
},
{
"indexed": false,
"name": "managerId",
"type": "bytes32"
}
],
"name": "ManagerAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "manager",
"type": "address"
},
{
"indexed": true,
"name": "submanager",
"type": "address"
},
{
"indexed": false,
"name": "role",
"type": "bytes32"
},
{
"indexed": false,
"name": "country",
"type": "bytes32"
}
],
"name": "ManagerRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "client",
"type": "address"
},
{
"indexed": false,
"name": "name",
"type": "bytes32"
},
{
"indexed": false,
"name": "accountid",
"type": "bytes32"
},
{
"indexed": false,
"name": "country",
"type": "bytes32"
},
{
"indexed": false,
"name": "status",
"type": "uint256"
}
],
"name": "UserAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "_signer",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_signer",
"type": "address"
}
],
"name": "setSigner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_manager",
"type": "address"
},
{
"name": "_submanager",
"type": "address"
},
{
"name": "_country",
"type": "bytes32"
},
{
"name": "_role",
"type": "bytes32"
},
{
"name": "_id",
"type": "bytes32"
},
{
"name": "_hashedMessage",
"type": "bytes32"
},
{
"name": "_v",
"type": "uint8"
},
{
"name": "_r",
"type": "bytes32"
},
{
"name": "_s",
"type": "bytes32"
}
],
"name": "addRole",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_user",
"type": "address"
}
],
"name": "getRole",
"outputs": [
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_manager",
"type": "address"
},
{
"name": "_submanager",
"type": "address"
},
{
"name": "_country",
"type": "bytes32"
},
{
"name": "_role",
"type": "bytes32"
},
{
"name": "_hashedMessage",
"type": "bytes32"
},
{
"name": "_v",
"type": "uint8"
},
{
"name": "_r",
"type": "bytes32"
},
{
"name": "_s",
"type": "bytes32"
}
],
"name": "removeRole",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "client",
"type": "address"
},
{
"name": "score",
"type": "uint256"
}
],
"name": "setAmlScore",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_score",
"type": "uint256"
}
],
"name": "setAmlPassScore",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "client",
"type": "address"
}
],
"name": "getAMLStatus",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "client",
"type": "address"
},
{
"name": "score",
"type": "uint256"
}
],
"name": "setCreditScore",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "client",
"type": "address"
},
{
"name": "name",
"type": "bytes32"
},
{
"name": "accountid",
"type": "bytes32"
},
{
"name": "country",
"type": "bytes32"
},
{
"name": "contact",
"type": "bytes32"
},
{
"name": "status",
"type": "uint256"
}
],
"name": "KycUpdate",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "client",
"type": "address"
}
],
"name": "getClientKYC",
"outputs": [
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "client",
"type": "address"
},
{
"name": "identity",
"type": "string"
},
{
"name": "videokyc",
"type": "string"
},
{
"name": "docs",
"type": "string"
}
],
"name": "fullKycUpdate",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "client",
"type": "address"
}
],
"name": "getFullClientKYC",
"outputs": [
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "party",
"type": "address"
}
],
"name": "getTransferAgent",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_country",
"type": "bytes32"
},
{
"name": "_role",
"type": "bytes32"
}
],
"name": "getManagers",
"outputs": [
{
"name": "",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_submanager",
"type": "address"
},
{
"name": "_currency",
"type": "bytes32"
},
{
"name": "_accountId",
"type": "bytes32"
}
],
"name": "setCustodyAccount",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_submanager",
"type": "address"
}
],
"name": "getCustodyAccount",
"outputs": [
{
"components": [
{
"name": "currency",
"type": "bytes32"
},
{
"name": "account",
"type": "bytes32"
}
],
"name": "",
"type": "tuple[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "userAddress",
"type": "address"
},
{
"name": "accountId",
"type": "bytes32"
}
],
"name": "setCustody",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "userAddress",
"type": "address"
}
],
"name": "getCustody",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.7+commit.6da8b019\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"party\",\"type\":\"address\"}],\"name\":\"getTransferAgent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"getCustody\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"client\",\"type\":\"address\"},{\"name\":\"score\",\"type\":\"uint256\"}],\"name\":\"setAmlScore\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_submanager\",\"type\":\"address\"},{\"name\":\"_currency\",\"type\":\"bytes32\"},{\"name\":\"_accountId\",\"type\":\"bytes32\"}],\"name\":\"setCustodyAccount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"client\",\"type\":\"address\"}],\"name\":\"getAMLStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_country\",\"type\":\"bytes32\"},{\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"getManagers\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getRole\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_manager\",\"type\":\"address\"},{\"name\":\"_submanager\",\"type\":\"address\"},{\"name\":\"_country\",\"type\":\"bytes32\"},{\"name\":\"_role\",\"type\":\"bytes32\"},{\"name\":\"_id\",\"type\":\"bytes32\"},{\"name\":\"_hashedMessage\",\"type\":\"bytes32\"},{\"name\":\"_v\",\"type\":\"uint8\"},{\"name\":\"_r\",\"type\":\"bytes32\"},{\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"addRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"userAddress\",\"type\":\"address\"},{\"name\":\"accountId\",\"type\":\"bytes32\"}],\"name\":\"setCustody\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signer\",\"type\":\"address\"}],\"name\":\"setSigner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_manager\",\"type\":\"address\"},{\"name\":\"_submanager\",\"type\":\"address\"},{\"name\":\"_country\",\"type\":\"bytes32\"},{\"name\":\"_role\",\"type\":\"bytes32\"},{\"name\":\"_hashedMessage\",\"type\":\"bytes32\"},{\"name\":\"_v\",\"type\":\"uint8\"},{\"name\":\"_r\",\"type\":\"bytes32\"},{\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"removeRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_submanager\",\"type\":\"address\"}],\"name\":\"getCustodyAccount\",\"outputs\":[{\"components\":[{\"name\":\"currency\",\"type\":\"bytes32\"},{\"name\":\"account\",\"type\":\"bytes32\"}],\"name\":\"\",\"type\":\"tuple[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"client\",\"type\":\"address\"},{\"name\":\"score\",\"type\":\"uint256\"}],\"name\":\"setCreditScore\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"client\",\"type\":\"address\"},{\"name\":\"identity\",\"type\":\"string\"},{\"name\":\"videokyc\",\"type\":\"string\"},{\"name\":\"docs\",\"type\":\"string\"}],\"name\":\"fullKycUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"client\",\"type\":\"address\"}],\"name\":\"getClientKYC\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signer\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"client\",\"type\":\"address\"},{\"name\":\"name\",\"type\":\"bytes32\"},{\"name\":\"accountid\",\"type\":\"bytes32\"},{\"name\":\"country\",\"type\":\"bytes32\"},{\"name\":\"contact\",\"type\":\"bytes32\"},{\"name\":\"status\",\"type\":\"uint256\"}],\"name\":\"KycUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_score\",\"type\":\"uint256\"}],\"name\":\"setAmlPassScore\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"client\",\"type\":\"address\"}],\"name\":\"getFullClientKYC\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"submanager\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"country\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"managerId\",\"type\":\"bytes32\"}],\"name\":\"ManagerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"submanager\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"country\",\"type\":\"bytes32\"}],\"name\":\"ManagerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"client\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"name\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"accountid\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"country\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"status\",\"type\":\"uint256\"}],\"name\":\"UserAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"getTransferAgent(address)\":{\"params\":{\"party\":\"reference to the party or counterparty in a trade\\r\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{\"getTransferAgent(address)\":{\"notice\":\"Gets DP id\\r\"}}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Client.sol\":\"Client\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-ethereum-package/contracts/GSN/Context.sol\":{\"keccak256\":\"0x3491510fa4862af1a43f6c860d9cf7392240196540cd3c0eea79d374d419c5a1\",\"urls\":[\"bzzr://5cddbf3b74b775a8670757a6b8e108dac17dac20253f35f4c729e9cb6bea4ed3\"]},\"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xd7e8ab76fa35c4d8d35a06a6ed538cadab8b75a1aa00594ced1568b2c0cadde3\",\"urls\":[\"bzzr://b4c855b32d75f2a4969bfbd530b6934b69f12f28584b3746967e1ca64e024bd9\"]},\"@openzeppelin/upgrades/contracts/Initializable.sol\":{\"keccak256\":\"0x9bfec92e36234ecc99b5d37230acb6cd1f99560233753162204104a4897e8721\",\"urls\":[\"bzzr://f75d88b16fe25a9e19b3512691c496e2bb6d8451bc9a636196c4e17ca9b40201\"]},\"project:/contracts/Client.sol\":{\"keccak256\":\"0x702e6c1d83fe3f30ddf613b5f03eaadf2c210c622b3f57d16cacbb8b8510b56c\",\"urls\":[\"bzzr://42efbc5074ce3563222dcb6931a0246b897f5b18014ff0220addc6cc33ea7175\"]},\"project:/contracts/interfaces/VerifiedClient.sol\":{\"keccak256\":\"0x4562b0ed92d6752e2e79e14ec71511dbc019925d1bc549777e8ab9f2abefa4d7\",\"urls\":[\"bzzr://7b6bb4c351bab3f4c983ed339fc371c6f6621b7d52fd8a77cfb7a64b47391d0d\"]}},\"version\":1}",
"bytecode": "0x6080604052612944806100136000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638d0cbe91116100c3578063a0f7d4201161007c578063a0f7d420146102bc578063c4d66de8146102e2578063ca6150a4146102f5578063f2fde38b14610308578063f645c56a1461031b578063ffe009aa1461032e5761014d565b80638d0cbe91146102595780638da5cb5b1461026c5780638f32d59b1461028157806394f30db91461028957806397ed81cf1461018e5780639a1da46b146102a95761014d565b80633c6ff32b116101155780633c6ff32b146101d657806344276733146101f657806348566e1d146102185780634a1f16e01461022b5780636c19e7831461023e578063715018a6146102515761014d565b8063055f55401461015257806319d7152c1461017b5780632838c9d51461018e5780632df48b90146101a35780633a291033146101b6575b600080fd5b610165610160366004611ef9565b610351565b6040516101729190612729565b60405180910390f35b610165610189366004611ef9565b610373565b6101a161019c366004612093565b61038e565b005b6101a16101b13660046120cd565b610407565b6101c96101c4366004611ef9565b610562565b604051610172919061271b565b6101e96101e4366004612258565b6105b9565b60405161017291906126f9565b610209610204366004611ef9565b6106f5565b60405161017293929190612737565b6101a1610226366004611f1f565b610893565b6101a1610239366004612093565b610c5d565b6101a161024c366004611ef9565b610cb9565b6101a1610d02565b6101a1610267366004611fe3565b610d73565b6102746111cf565b6040516101729190612639565b6101c96111df565b61029c610297366004611ef9565b611205565b604051610172919061270a565b6101a16102b73660046121a1565b61128e565b6102cf6102ca366004611ef9565b611382565b6040516101729796959493929190612745565b6101a16102f0366004611ef9565b611510565b6101a161030336600461211a565b6115bb565b6101a1610316366004611ef9565b6116e8565b6101a1610329366004612277565b61171b565b61034161033c366004611ef9565b61174d565b60405161017294939291906127ad565b6001600160a01b0381166000908152606c60205260409020600301545b919050565b6001600160a01b031660009081526070602052604090205490565b6066546001600160a01b03163314806103c057506001600160a01b038281166000908152606b60205260409020541633145b6103e857604051600160e51b62461bcd0281526004016103df9061288f565b60405180910390fd5b6001600160a01b03909116600090815260686020526040902060040155565b336001600160a01b0384161461043257604051600160e51b62461bcd0281526004016103df9061288f565b6001600160a01b0383166000908152606c602052604081206001015415610501576001600160a01b0384166000908152606f6020526040812054905b818110156104fe576001600160a01b0386166000908152606f6020526040902080548691908390811061049d57fe5b90600052602060002090600202016000015414156104f6576001600160a01b0386166000908152606f602052604090208054859190839081106104dc57fe5b906000526020600020906002020160010181905550600192505b60010161046e565b50505b8061055c5761050e611dd6565b5060408051808201825284815260208082018581526001600160a01b0388166000908152606f8352938420805460018181018355918652929094209251600290920290920190815590519101555b50505050565b6001600160a01b038116600090815260686020526040812060040154156105af576067546001600160a01b03831660009081526068602052604090206004015410156105af5760006105b2565b60015b905061036e565b606080606d805490506040519080825280602002602001820160405280156105eb578160200160208202803883390190505b50606d54909150600090815b818110156106e85786606c6000606d848154811061061157fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190206001015414801561067d575085606c6000606d848154811061065357fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154145b156106e057606d818154811061068f57fe5b9060005260206000200160009054906101000a90046001600160a01b03168484815181106106b957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b6001016105f7565b5091925050505b92915050565b6001600160a01b0381166000908152606e602052604081205481908190801561084357846001600160a01b0316606d600183038154811061073257fe5b6000918252602090912001546001600160a01b0316141561084357606c6000606d600184038154811061076157fe5b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060020154606c6000606d60018503815481106107b757fe5b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060030154606c6000606d600186038154811061080d57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020600101549195509350915061088c9050565b61084b6111cf565b6001600160a01b0316856001600160a01b0316141561087f57600160d91b6420b236b4b7026000809350935093505061088c565b6000806000935093509350505b9193909250565b6000846040516020016108a691906127f5565b6040516020818303038152906040528051906020012090506000816040516020016108d19190612619565b6040516020818303038152906040528051906020012090506108f16111cf565b6001600160a01b03166001828787876040516000815260200160405260405161091d9493929190612814565b6020604051602081039080840390855afa15801561093f573d6000803e3d6000fd5b505050602060405103516001600160a01b0316148061096857506066546001600160a01b031633145b61098757604051600160e51b62461bcd0281526004016103df9061288f565b87600160b91b6821bab9ba37b234b0b70214806109ab575087600160f01b61414d02145b806109bd575087600160f41b61044502145b806109d3575087600160d21b6512d650d0535302145b806109e9575087600160d11b6524b9b9bab2b902145b610a0857604051600160e51b62461bcd0281526004016103df9061284f565b610a106111cf565b6001600160a01b03168a6001600160a01b03161415610a4457604051600160e51b62461bcd0281526004016103df9061283f565b606d54600090815b81811015610a93578c6001600160a01b0316606d8281548110610a6b57fe5b6000918252602090912001546001600160a01b03161415610a8b57600192505b600101610a4c565b5081610c4e57606d8c90806001815401808255809150509060018203906000526020600020016000909192909190916101000a8154816001600160a01b0302191690836001600160a01b0316021790555050606d80549050606e60008e6001600160a01b03166001600160a01b03168152602001908152602001600020819055508c606c60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a606c60008e6001600160a01b03166001600160a01b031681526020019081526020016000206001018190555089606c60008e6001600160a01b03166001600160a01b031681526020019081526020016000206002018190555088606c60008e6001600160a01b03166001600160a01b031681526020019081526020016000206003018190555089600160d21b6512d650d05353021415610c0657610c068c8c6119d4565b8b6001600160a01b03167fefc0db5f83f77f89452c2f94b82b44e255b3488e98d72feed0d80672ae36c8cc8e8c8e8d604051610c45949392919061266f565b60405180910390a25b50505050505050505050505050565b336001600160a01b0383161480610c7e57506066546001600160a01b031633145b610c9d57604051600160e51b62461bcd0281526004016103df9061288f565b6001600160a01b03909116600090815260706020526040902055565b610cc16111df565b610ce057604051600160e51b62461bcd0281526004016103df9061286f565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b610d0a6111df565b610d2957604051600160e51b62461bcd0281526004016103df9061286f565b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b600084604051602001610d8691906127f5565b604051602081830303815290604052805190602001209050600081604051602001610db19190612619565b604051602081830303815290604052805190602001209050610dd16111cf565b6001600160a01b031660018287878760405160008152602001604052604051610dfd9493929190612814565b6020604051602081039080840390855afa158015610e1f573d6000803e3d6000fd5b505050602060405103516001600160a01b03161480610e4857506066546001600160a01b031633145b610e6757604051600160e51b62461bcd0281526004016103df9061288f565b86600160b91b6821bab9ba37b234b0b7021480610e8b575086600160f01b61414d02145b80610e9d575086600160f41b61044502145b80610eb3575086600160d21b6512d650d0535302145b80610ec9575086600160d11b6524b9b9bab2b902145b610ee857604051600160e51b62461bcd0281526004016103df9061284f565b6001600160a01b0389166000908152606e6020526040902054801561115f57896001600160a01b0316606d6001830381548110610f2157fe5b6000918252602090912001546001600160a01b0316148015610f7d575087606c6000606d6001850381548110610f5357fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154145b8015610fc3575088606c6000606d6001850381548110610f9957fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060010154145b801561101557508a6001600160a01b0316606c6000606d6001850381548110610fe857fe5b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190205416145b1561115f576000606c6000606d600185038154811061103057fe5b6000918252602080832091909101546001600160a01b039081168452908301939093526040909101812080546001600160a01b03191693909216929092179055606d8054606c918391600019860190811061108757fe5b60009182526020808320909101546001600160a01b03168352820192909252604001812060010191909155606d8054606c91839160001986019081106110c957fe5b60009182526020808320909101546001600160a01b03168352820192909252604001812060020191909155606d8054606c918391600019860190811061110b57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060030155606d8054600019830190811061114557fe5b600091825260209091200180546001600160a01b03191690555b87600160d21b6512d650d0535302141561117d5761117d8a8a611aa9565b896001600160a01b03167f2d599c6854d4b4c59b4e99fde5e3cb617739de62ed97ff059d0305bcba6c8aac8c8a8c6040516111ba93929190612647565b60405180910390a25050505050505050505050565b6033546001600160a01b03165b90565b6033546000906001600160a01b03166111f6611b87565b6001600160a01b031614905090565b6001600160a01b0381166000908152606f60209081526040808320805482518185028101850190935280835260609492939192909184015b828210156112835783829060005260206000209060020201604051806040016040529081600082015481526020016001820154815250508152602001906001019061123d565b505050509050919050565b6066546001600160a01b03163314806112c057506001600160a01b038781166000908152606b60205260409020541633145b806112e85750336000908152606c6020526040902060020154600160d21b6512d650d0535302145b61130757604051600160e51b62461bcd0281526004016103df9061288f565b6001600160a01b038716600090815260696020526040902061132a908787611ded565b506001600160a01b0387166000908152606960205260409020611351906001018585611ded565b506001600160a01b0387166000908152606960205260409020611378906002018383611ded565b5050505050505050565b60008060008060008060006113956111cf565b6001600160a01b0316336001600160a01b031614806113bc5750336001600160a01b038916145b806113e057506001600160a01b038881166000908152606b60205260409020541633145b806114085750336000908152606c6020526040902060020154600160d21b6512d650d0535302145b8061142c5750336000908152606c6020526040902060020154600160f01b61414d02145b806114505750336000908152606c6020526040902060020154600160f41b61044502145b806114785750336000908152606c6020526040902060020154600160d11b6524b9b9bab2b902145b806114a35750336000908152606c6020526040902060020154600160b91b6821bab9ba37b234b0b702145b6114c257604051600160e51b62461bcd0281526004016103df9061285f565b505050506001600160a01b0393909316600090815260686020526040902080546001820154600383015460028401546006850154600586015460049096015494999398509196509450929190565b600054610100900460ff16806115295750611529611b8b565b80611537575060005460ff16155b61155657604051600160e51b62461bcd0281526004016103df9061287f565b600054610100900460ff16158015611581576000805460ff1961ff0019909116610100171660011790555b61158a33611b91565b606680546001600160a01b0319166001600160a01b03841617905580156115b7576000805461ff00191690555b5050565b6066546001600160a01b03163314806115ed57506001600160a01b038681166000908152606b60205260409020541633145b806116155750336000908152606c6020526040902060020154600160d21b6512d650d0535302145b61163457604051600160e51b62461bcd0281526004016103df9061288f565b6001600160a01b038616600081815260686020908152604080832089815560018082018a905560028201879055600382018990556006909101879055878452606a835290832080549182018155835291200180546001600160a01b03191690911790556116a18684611c66565b7f0b39fd0cf419285b8686e954aaa78a22042d1982dc0b3b3f12276d104415fb9586868686856040516116d89594939291906126ad565b60405180910390a1505050505050565b6116f06111df565b61170f57604051600160e51b62461bcd0281526004016103df9061286f565b61171881611d51565b50565b6066546001600160a01b0316331461174857604051600160e51b62461bcd0281526004016103df9061288f565b606755565b6000606080606061175c6111cf565b6001600160a01b0316336001600160a01b031614806117835750336001600160a01b038616145b806117a757506001600160a01b038581166000908152606b60205260409020541633145b806117cf5750336000908152606c6020526040902060020154600160d21b6512d650d0535302145b6117ee57604051600160e51b62461bcd0281526004016103df9061285f565b6001600160a01b03851660009081526068602090815260408083206006015460698352928190208054825160026001808416156101000260001901909316819004601f81018790048702830187019095528482529294918501939285019290918591908301828280156118a25780601f10611877576101008083540402835291602001916118a2565b820191906000526020600020905b81548152906001019060200180831161188557829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959850879450925084019050828280156119305780601f1061190557610100808354040283529160200191611930565b820191906000526020600020905b81548152906001019060200180831161191357829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156119be5780601f10611993576101008083540402835291602001916119be565b820191906000526020600020905b8154815290600101906020018083116119a157829003601f168201915b5050505050905093509350935093509193509193565b6000818152606a6020526040812054905b8181101561055c576000838152606a602052604081208054606b91839185908110611a0c57fe5b60009182526020808320909101546001600160a01b039081168452908301939093526040909101902054161415611aa15783606b6000606a60008781526020019081526020016000208481548110611a6057fe5b6000918252602080832091909101546001600160a01b039081168452908301939093526040909101902080546001600160a01b031916929091169190911790555b6001016119e5565b6000818152606a6020526040812054905b8181101561055c57836001600160a01b0316606b6000606a60008781526020019081526020016000208481548110611aee57fe5b60009182526020808320909101546001600160a01b039081168452908301939093526040909101902054161415611b7f576000838152606a602052604081208054606b91839185908110611b3e57fe5b6000918252602080832091909101546001600160a01b039081168452908301939093526040909101902080546001600160a01b031916929091169190911790555b600101611aba565b3390565b303b1590565b600054610100900460ff1680611baa5750611baa611b8b565b80611bb8575060005460ff16155b611bd757604051600160e51b62461bcd0281526004016103df9061287f565b600054610100900460ff16158015611c02576000805460ff1961ff0019909116610100171660011790555b603380546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a380156115b7576000805461ff00191690555050565b606d5460005b8181101561055c5782606c6000606d8481548110611c8657fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060010154148015611cfe5750606c6000606d8381548110611cc757fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154600160d21b6512d650d0535302145b15611d4957606d8181548110611d1057fe5b60009182526020808320909101546001600160a01b038781168452606b909252604090922080546001600160a01b031916919092161790555b600101611c6c565b6001600160a01b038116611d7a57604051600160e51b62461bcd0281526004016103df9061282f565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082019091526000808252602082015290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e2e5782800160ff19823516178555611e5b565b82800160010185558215611e5b579182015b82811115611e5b578235825591602001919060010190611e40565b50611e67929150611e6b565b5090565b6111dc91905b80821115611e675760008155600101611e71565b6000611e9182356128b2565b9392505050565b6000611e9182356111dc565b60008083601f840112611eb657600080fd5b50813567ffffffffffffffff811115611ece57600080fd5b602083019150836001820283011115611ee657600080fd5b9250929050565b6000611e9182356128ce565b600060208284031215611f0b57600080fd5b6000611f178484611e85565b949350505050565b60008060008060008060008060006101208a8c031215611f3e57600080fd5b6000611f4a8c8c611e85565b9950506020611f5b8c828d01611e85565b9850506040611f6c8c828d01611e98565b9750506060611f7d8c828d01611e98565b9650506080611f8e8c828d01611e98565b95505060a0611f9f8c828d01611e98565b94505060c0611fb08c828d01611eed565b93505060e0611fc18c828d01611e98565b925050610100611fd38c828d01611e98565b9150509295985092959850929598565b600080600080600080600080610100898b03121561200057600080fd5b600061200c8b8b611e85565b985050602061201d8b828c01611e85565b975050604061202e8b828c01611e98565b965050606061203f8b828c01611e98565b95505060806120508b828c01611e98565b94505060a06120618b828c01611eed565b93505060c06120728b828c01611e98565b92505060e06120838b828c01611e98565b9150509295985092959890939650565b600080604083850312156120a657600080fd5b60006120b28585611e85565b92505060206120c385828601611e98565b9150509250929050565b6000806000606084860312156120e257600080fd5b60006120ee8686611e85565b93505060206120ff86828701611e98565b925050604061211086828701611e98565b9150509250925092565b60008060008060008060c0878903121561213357600080fd5b600061213f8989611e85565b965050602061215089828a01611e98565b955050604061216189828a01611e98565b945050606061217289828a01611e98565b935050608061218389828a01611e98565b92505060a061219489828a01611e98565b9150509295509295509295565b60008060008060008060006080888a0312156121bc57600080fd5b60006121c88a8a611e85565b975050602088013567ffffffffffffffff8111156121e557600080fd5b6121f18a828b01611ea4565b9650965050604088013567ffffffffffffffff81111561221057600080fd5b61221c8a828b01611ea4565b9450945050606088013567ffffffffffffffff81111561223b57600080fd5b6122478a828b01611ea4565b925092505092959891949750929550565b6000806040838503121561226b57600080fd5b60006120b28585611e98565b60006020828403121561228957600080fd5b6000611f178484611e98565b60006122a183836122bd565b505060200190565b60006122b583836125ec565b505060400190565b6122c6816128b2565b82525050565b60006122d7826128a5565b6122e181856128a9565b93506122ec8361289f565b60005b8281101561231757612302868351612295565b955061230d8261289f565b91506001016122ef565b5093949350505050565b600061232c826128a5565b61233681856128a9565b93506123418361289f565b60005b82811015612317576123578683516122a9565b95506123628261289f565b9150600101612344565b6122c6816128bd565b6122c6816111dc565b6122c661238a826111dc565b6111dc565b600061239a826128a5565b6123a481856128a9565b93506123b48185602086016128d4565b6123bd81612900565b9093019392505050565b60006123d4601c8361036e565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c0192915050565b600061240d6026836128a9565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20618152600160d01b6564647265737302602082015260400192915050565b60006124586017836128a9565b7f496e636f727265637420726f6c65206164646974696f6e000000000000000000815260200192915050565b60006124916014836128a9565b7f496e76616c6964206d616e616765722074797065000000000000000000000000815260200192915050565b60006124ca6020836128a9565b7f556e617574686f72697a65642061636365737320746f20636865636b204b5943815260200192915050565b60006125036020836128a9565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b600061253c602e836128a9565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626581527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015260400192915050565b600061259b6006836128a9565b600160d01b654c32746f4c3102815260200192915050565b60006125c06013836128a9565b7f556e617574686f72697a65642061636365737300000000000000000000000000815260200192915050565b805160408301906125fd8482612375565b50602082015161055c6020850182612375565b6122c6816128ce565b6000612624826123c7565b9150612630828461237e565b50602001919050565b602081016106ef82846122bd565b6060810161265582866122bd565b6126626020830185612375565b611f176040830184612375565b6080810161267d82876122bd565b61268a6020830186612375565b6126976040830185612375565b6126a46060830184612375565b95945050505050565b60a081016126bb82886122bd565b6126c86020830187612375565b6126d56040830186612375565b6126e26060830185612375565b6126ef6080830184612375565b9695505050505050565b60208082528101611e9181846122cc565b60208082528101611e918184612321565b602081016106ef828461236c565b602081016106ef8284612375565b606081016126558286612375565b60e08101612753828a612375565b6127606020830189612375565b61276d6040830188612375565b61277a6060830187612375565b6127876080830186612375565b61279460a0830185612375565b6127a160c0830184612375565b98975050505050505050565b608081016127bb8287612375565b81810360208301526127cd818661238f565b905081810360408301526127e1818561238f565b905081810360608301526126ef818461238f565b604081016128038284612375565b8181036020830152611e918161258e565b608081016128228287612375565b61268a6020830186612610565b602080825281016106ef81612400565b602080825281016106ef8161244b565b602080825281016106ef81612484565b602080825281016106ef816124bd565b602080825281016106ef816124f6565b602080825281016106ef8161252f565b602080825281016106ef816125b3565b60200190565b5190565b90815260200190565b60006106ef826128c2565b151590565b6001600160a01b031690565b60ff1690565b60005b838110156128ef5781810151838201526020016128d7565b8381111561055c5750506000910152565b601f01601f19169056fea265627a7a7230582002496ca53ab2a4b302aec8d06e4c0255adb36cfe6fa7bd4bb9534a5dfb86520f6c6578706572696d656e74616cf50037",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638d0cbe91116100c3578063a0f7d4201161007c578063a0f7d420146102bc578063c4d66de8146102e2578063ca6150a4146102f5578063f2fde38b14610308578063f645c56a1461031b578063ffe009aa1461032e5761014d565b80638d0cbe91146102595780638da5cb5b1461026c5780638f32d59b1461028157806394f30db91461028957806397ed81cf1461018e5780639a1da46b146102a95761014d565b80633c6ff32b116101155780633c6ff32b146101d657806344276733146101f657806348566e1d146102185780634a1f16e01461022b5780636c19e7831461023e578063715018a6146102515761014d565b8063055f55401461015257806319d7152c1461017b5780632838c9d51461018e5780632df48b90146101a35780633a291033146101b6575b600080fd5b610165610160366004611ef9565b610351565b6040516101729190612729565b60405180910390f35b610165610189366004611ef9565b610373565b6101a161019c366004612093565b61038e565b005b6101a16101b13660046120cd565b610407565b6101c96101c4366004611ef9565b610562565b604051610172919061271b565b6101e96101e4366004612258565b6105b9565b60405161017291906126f9565b610209610204366004611ef9565b6106f5565b60405161017293929190612737565b6101a1610226366004611f1f565b610893565b6101a1610239366004612093565b610c5d565b6101a161024c366004611ef9565b610cb9565b6101a1610d02565b6101a1610267366004611fe3565b610d73565b6102746111cf565b6040516101729190612639565b6101c96111df565b61029c610297366004611ef9565b611205565b604051610172919061270a565b6101a16102b73660046121a1565b61128e565b6102cf6102ca366004611ef9565b611382565b60405161017297969594939