[
{
"inputs": [
{
"internalType": "address",
"name": "safe",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"inputs": [],
"name": "EnforcedPause",
"type": "error"
},
{
"inputs": [],
"name": "ExpectedPause",
"type": "error"
},
{
"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": false,
"internalType": "uint256",
"name": "recipients",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "totalAmount",
"type": "uint256"
}
],
"name": "BatchTransferCompleted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "escrow",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "orderId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "EscrowBurn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"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": "burner",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "TokensBurned",
"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": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "registry",
"type": "address"
}
],
"name": "VaultRegistryUpdated",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ESCROW_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "INITIAL_SUPPLY",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PAUSER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "TREASURY_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"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": "address[]",
"name": "recipients",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"name": "batchTransfer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "orderId",
"type": "bytes32"
}
],
"name": "burnFromEscrow",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "burnWithReason",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "treasury",
"type": "address"
}
],
"name": "circulatingSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "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": "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": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"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": "address",
"name": "registry",
"type": "address"
}
],
"name": "setVaultRegistry",
"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": "totalBurned",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"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": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "vaultRegistry",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
]0x608060405234801561000f575f5ffd5b50604051611c9c380380611c9c83398101604081905261002e916103fe565b604051806040016040528060128152602001712d30b6b132b9b49023b7b632102a37b5b2b760711b815250604051806040016040528060038152602001621691d160ea1b815250816003908161008491906104c2565b50600461009182826104c2565b5050506001600160a01b0381166100ef5760405162461bcd60e51b815260206004820152601a60248201527f5a47443a2073616665206164647265737320726571756972656400000000000060448201526064015b60405180910390fd5b6100f95f8261016b565b506101247fe1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca98261016b565b5061014f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8261016b565b50610165816a92693539fbb04c51000000610218565b5061059b565b5f8281526005602090815260408083206001600160a01b038516845290915281205460ff1661020f575f8381526005602090815260408083206001600160a01b03861684529091529020805460ff191660011790556101c73390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610212565b505f5b92915050565b6001600160a01b0382166102415760405163ec442f0560e01b81525f60048201526024016100e6565b61024c5f8383610250565b5050565b6001600160a01b0383161580159061027057506001600160a01b03821615155b156102c85760065460ff16156102c85760405162461bcd60e51b815260206004820152601560248201527f5a47443a207472616e736665727320706175736564000000000000000000000060448201526064016100e6565b6102d38383836102d8565b505050565b6001600160a01b038316610302578060025f8282546102f7919061057c565b909155506103729050565b6001600160a01b0383165f90815260208190526040902054818110156103545760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100e6565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661038e576002805482900390556103ac565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103f191815260200190565b60405180910390a3505050565b5f6020828403121561040e575f5ffd5b81516001600160a01b0381168114610424575f5ffd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061045357607f821691505b60208210810361047157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102d357805f5260205f20601f840160051c8101602085101561049c5750805b601f840160051c820191505b818110156104bb575f81556001016104a8565b5050505050565b81516001600160401b038111156104db576104db61042b565b6104ef816104e9845461043f565b84610477565b6020601f821160018114610521575f831561050a5750848201515b5f19600385901b1c1916600184901b1784556104bb565b5f84815260208120601f198516915b828110156105505787850151825560209485019460019092019101610530565b508482101561056d57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8082018082111561021257634e487b7160e01b5f52601160045260245ffd5b6116f4806105a85f395ff3fe608060405234801561000f575f5ffd5b50600436106101dc575f3560e01c806364a19d4611610109578063a9059cbb1161009e578063d547741f1161006e578063d547741f14610415578063d89135cd14610428578063dd62ed3e14610430578063e63ab1e914610468575f5ffd5b8063a9059cbb146103ab578063cb91dd7b146103be578063cdd7b38a146103d1578063d11a57ec14610401575f5ffd5b806388d695b2116100d957806388d695b21461037657806391d148541461038957806395d89b411461039c578063a217fddf146103a4575f5ffd5b806364a19d461461030c5780636ce76f301461031f57806370a08231146103465780638456cb591461036e575f5ffd5b806325dde6101161017f57806336568abe1161014f57806336568abe146102d35780633f4ba83a146102e657806342966c68146102ee5780635c975abb14610301575f5ffd5b806325dde6101461028c5780632f2ff15d1461029f5780632ff2e9dc146102b2578063313ce567146102c4575f5ffd5b8063095ea7b3116101ba578063095ea7b31461023257806318160ddd1461024557806323b872dd14610257578063248a9ca31461026a575f5ffd5b806301ffc9a7146101e057806306fdde0314610208578063091273a71461021d575b5f5ffd5b6101f36101ee3660046112ef565b61048f565b60405190151581526020015b60405180910390f35b6102106104c5565b6040516101ff919061131d565b61023061022b366004611352565b610555565b005b6101f36102403660046113e4565b61062d565b6002545b6040519081526020016101ff565b6101f361026536600461140c565b610644565b610249610278366004611446565b5f9081526005602052604090206001015490565b61023061029a36600461145d565b610667565b6102306102ad36600461148d565b6107a3565b6102496a92693539fbb04c5100000081565b604051601281526020016101ff565b6102306102e136600461148d565b6107cd565b610230610805565b6102306102fc366004611446565b61083a565b60065460ff166101f3565b61024961031a3660046114b7565b6108cf565b6102497f2fdac322ee704ce09f0773f7f3f92eb98d5e7c836ee9c056cccd5f61041e5e3f81565b6102496103543660046114b7565b6001600160a01b03165f9081526020819052604090205490565b6102306108f4565b610230610384366004611518565b610926565b6101f361039736600461148d565b610c15565b610210610c3f565b6102495f81565b6101f36103b93660046113e4565b610c4e565b6102306103cc3660046114b7565b610c5b565b6006546103e99061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b6102495f51602061169f5f395f51905f5281565b61023061042336600461148d565b610d05565b610249610d29565b61024961043e366004611584565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6102497f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b5f6001600160e01b03198216637965db0b60e01b14806104bf57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600380546104d4906115ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610500906115ac565b801561054b5780601f106105225761010080835404028352916020019161054b565b820191905f5260205f20905b81548152906001019060200180831161052e57829003601f168201915b5050505050905090565b5f51602061169f5f395f51905f5261056c81610d4d565b5f84116105945760405162461bcd60e51b815260040161058b906115e4565b60405180910390fd5b816105d85760405162461bcd60e51b81526020600482015260146024820152731691d10e881c99585cdbdb881c995c5d5a5c995960621b604482015260640161058b565b6105e23385610d57565b336001600160a01b03167ffad31924d655455395c87544c8aa1ffdb5a7505a22a3c2e03f28003b6556a75f85858560405161061f9392919061161b565b60405180910390a250505050565b5f3361063a818585610d8f565b5060019392505050565b5f33610651858285610d9c565b61065c858585610e12565b506001949350505050565b7f2fdac322ee704ce09f0773f7f3f92eb98d5e7c836ee9c056cccd5f61041e5e3f61069181610d4d565b5f83116106b05760405162461bcd60e51b815260040161058b906115e4565b816106f65760405162461bcd60e51b81526020600482015260166024820152751691d10e881bdc99195c881251081c995c5d5a5c995960521b604482015260640161058b565b6001600160a01b03841661074c5760405162461bcd60e51b815260206004820152601a60248201527f5a47443a20757365722061646472657373207265717569726564000000000000604482015260640161058b565b6107563384610d57565b6040805184815242602082015283916001600160a01b0387169133917f690f28bfd2c51f431b8dc49c27fbdc768106b308fc576f5036a0cdfa782f0812910160405180910390a450505050565b5f828152600560205260409020600101546107bd81610d4d565b6107c78383610e6f565b50505050565b6001600160a01b03811633146107f65760405163334bd91960e11b815260040160405180910390fd5b6108008282610f00565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61082f81610d4d565b610837610f6b565b50565b5f51602061169f5f395f51905f5261085181610d4d565b5f82116108705760405162461bcd60e51b815260040161058b906115e4565b61087a3383610d57565b336001600160a01b03167ffad31924d655455395c87544c8aa1ffdb5a7505a22a3c2e03f28003b6556a75f836040516108c39181526040602082018190525f9082015260600190565b60405180910390a25050565b6001600160a01b0381165f908152602081905260408120546002546104bf9190611664565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61091e81610d4d565b610837610fbd565b5f51602061169f5f395f51905f5261093d81610d4d565b610945610ffa565b83821461098b5760405162461bcd60e51b81526020600482015260146024820152730b48e887440d8cadccee8d040dad2e6dac2e8c6d60631b604482015260640161058b565b836109cc5760405162461bcd60e51b81526020600482015260116024820152705a47443a20656d7074792061727261797360781b604482015260640161058b565b60c8841115610a145760405162461bcd60e51b81526020600482015260146024820152735a47443a20626174636820746f6f206c6172676560601b604482015260640161058b565b5f805b85811015610b19575f878783818110610a3257610a32611677565b9050602002016020810190610a4791906114b7565b6001600160a01b031603610a915760405162461bcd60e51b81526020600482015260116024820152705a47443a207a65726f206164647265737360781b604482015260640161058b565b5f858583818110610aa457610aa4611677565b9050602002013511610aeb5760405162461bcd60e51b815260206004820152601060248201526f1691d10e881e995c9bc8185b5bdd5b9d60821b604482015260640161058b565b848482818110610afd57610afd611677565b9050602002013582610b0f919061168b565b9150600101610a17565b50335f90815260208190526040902054811115610b785760405162461bcd60e51b815260206004820152601960248201527f5a47443a20696e73756666696369656e742062616c616e636500000000000000604482015260640161058b565b5f5b85811015610bd357610bcb33888884818110610b9857610b98611677565b9050602002016020810190610bad91906114b7565b878785818110610bbf57610bbf611677565b90506020020135610e12565b600101610b7a565b5060408051868152602081018390527f7b4fb3ffa747d03664dcd3bb02933bb6ab3f5799103a30a80659a5c1aa7ecc86910160405180910390a1505050505050565b5f9182526005602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600480546104d4906115ac565b5f3361063a818585610e12565b5f610c6581610d4d565b6001600160a01b038216610cb35760405162461bcd60e51b81526020600482015260156024820152745a47443a20696e76616c696420726567697374727960581b604482015260640161058b565b60068054610100600160a81b0319166101006001600160a01b038516908102919091179091556040517f861351879eb5e969d3dad134d54b8fbec0ad339b592351afcbc4028b667ea446905f90a25050565b5f82815260056020526040902060010154610d1f81610d4d565b6107c78383610f00565b5f610d3360025490565b610d48906a92693539fbb04c51000000611664565b905090565b6108378133611020565b6001600160a01b038216610d8057604051634b637e8f60e11b81525f600482015260240161058b565b610d8b825f83611059565b5050565b61080083838360016110d4565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198110156107c75781811015610e0457604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161058b565b6107c784848484035f6110d4565b6001600160a01b038316610e3b57604051634b637e8f60e11b81525f600482015260240161058b565b6001600160a01b038216610e645760405163ec442f0560e01b81525f600482015260240161058b565b610800838383611059565b5f610e7a8383610c15565b610ef9575f8381526005602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610eb13390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104bf565b505f6104bf565b5f610f0b8383610c15565b15610ef9575f8381526005602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104bf565b610f736111a6565b6006805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610fc5610ffa565b6006805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610fa03390565b60065460ff161561101e5760405163d93c066560e01b815260040160405180910390fd5b565b61102a8282610c15565b610d8b5760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161058b565b6001600160a01b0383161580159061107957506001600160a01b03821615155b156110c95760065460ff16156110c95760405162461bcd60e51b81526020600482015260156024820152741691d10e881d1c985b9cd9995c9cc81c185d5cd959605a1b604482015260640161058b565b6108008383836111c9565b6001600160a01b0384166110fd5760405163e602df0560e01b81525f600482015260240161058b565b6001600160a01b03831661112657604051634a1406b160e11b81525f600482015260240161058b565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156107c757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161119891815260200190565b60405180910390a350505050565b60065460ff1661101e57604051638dfc202b60e01b815260040160405180910390fd5b6001600160a01b0383166111f3578060025f8282546111e8919061168b565b909155506112639050565b6001600160a01b0383165f90815260208190526040902054818110156112455760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161058b565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661127f5760028054829003905561129d565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112e291815260200190565b60405180910390a3505050565b5f602082840312156112ff575f5ffd5b81356001600160e01b031981168114611316575f5ffd5b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f60408486031215611364575f5ffd5b83359250602084013567ffffffffffffffff811115611381575f5ffd5b8401601f81018613611391575f5ffd5b803567ffffffffffffffff8111156113a7575f5ffd5b8660208284010111156113b8575f5ffd5b939660209190910195509293505050565b80356001600160a01b03811681146113df575f5ffd5b919050565b5f5f604083850312156113f5575f5ffd5b6113fe836113c9565b946020939093013593505050565b5f5f5f6060848603121561141e575f5ffd5b611427846113c9565b9250611435602085016113c9565b929592945050506040919091013590565b5f60208284031215611456575f5ffd5b5035919050565b5f5f5f6060848603121561146f575f5ffd5b611478846113c9565b95602085013595506040909401359392505050565b5f5f6040838503121561149e575f5ffd5b823591506114ae602084016113c9565b90509250929050565b5f602082840312156114c7575f5ffd5b611316826113c9565b5f5f83601f8401126114e0575f5ffd5b50813567ffffffffffffffff8111156114f7575f5ffd5b6020830191508360208260051b8501011115611511575f5ffd5b9250929050565b5f5f5f5f6040858703121561152b575f5ffd5b843567ffffffffffffffff811115611541575f5ffd5b61154d878288016114d0565b909550935050602085013567ffffffffffffffff81111561156c575f5ffd5b611578878288016114d0565b95989497509550505050565b5f5f60408385031215611595575f5ffd5b61159e836113c9565b91506114ae602084016113c9565b600181811c908216806115c057607f821691505b6020821081036115de57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526017908201527f5a47443a20616d6f756e74206d757374206265203e2030000000000000000000604082015260600190565b83815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156104bf576104bf611650565b634e487b7160e01b5f52603260045260245ffd5b808201808211156104bf576104bf61165056fee1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca9a26469706673582212209e146d21308b2bf00a0279d4115dbae885708f1d91cae044fbbe84dd7e82bb5364736f6c634300081f0033000000000000000000000000d258ad022f54a1e7597ec2a30798777c0e60623d
0x608060405234801561000f575f5ffd5b50600436106101dc575f3560e01c806364a19d4611610109578063a9059cbb1161009e578063d547741f1161006e578063d547741f14610415578063d89135cd14610428578063dd62ed3e14610430578063e63ab1e914610468575f5ffd5b8063a9059cbb146103ab578063cb91dd7b146103be578063cdd7b38a146103d1578063d11a57ec14610401575f5ffd5b806388d695b2116100d957806388d695b21461037657806391d148541461038957806395d89b411461039c578063a217fddf146103a4575f5ffd5b806364a19d461461030c5780636ce76f301461031f57806370a08231146103465780638456cb591461036e575f5ffd5b806325dde6101161017f57806336568abe1161014f57806336568abe146102d35780633f4ba83a146102e657806342966c68146102ee5780635c975abb14610301575f5ffd5b806325dde6101461028c5780632f2ff15d1461029f5780632ff2e9dc146102b2578063313ce567146102c4575f5ffd5b8063095ea7b3116101ba578063095ea7b31461023257806318160ddd1461024557806323b872dd14610257578063248a9ca31461026a575f5ffd5b806301ffc9a7146101e057806306fdde0314610208578063091273a71461021d575b5f5ffd5b6101f36101ee3660046112ef565b61048f565b60405190151581526020015b60405180910390f35b6102106104c5565b6040516101ff919061131d565b61023061022b366004611352565b610555565b005b6101f36102403660046113e4565b61062d565b6002545b6040519081526020016101ff565b6101f361026536600461140c565b610644565b610249610278366004611446565b5f9081526005602052604090206001015490565b61023061029a36600461145d565b610667565b6102306102ad36600461148d565b6107a3565b6102496a92693539fbb04c5100000081565b604051601281526020016101ff565b6102306102e136600461148d565b6107cd565b610230610805565b6102306102fc366004611446565b61083a565b60065460ff166101f3565b61024961031a3660046114b7565b6108cf565b6102497f2fdac322ee704ce09f0773f7f3f92eb98d5e7c836ee9c056cccd5f61041e5e3f81565b6102496103543660046114b7565b6001600160a01b03165f9081526020819052604090205490565b6102306108f4565b610230610384366004611518565b610926565b6101f361039736600461148d565b610c15565b610210610c3f565b6102495f81565b6101f36103b93660046113e4565b610c4e565b6102306103cc3660046114b7565b610c5b565b6006546103e99061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b6102495f51602061169f5f395f51905f5281565b61023061042336600461148d565b610d05565b610249610d29565b61024961043e366004611584565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6102497f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b5f6001600160e01b03198216637965db0b60e01b14806104bf57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600380546104d4906115ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610500906115ac565b801561054b5780601f106105225761010080835404028352916020019161054b565b820191905f5260205f20905b81548152906001019060200180831161052e57829003601f168201915b5050505050905090565b5f51602061169f5f395f51905f5261056c81610d4d565b5f84116105945760405162461bcd60e51b815260040161058b906115e4565b60405180910390fd5b816105d85760405162461bcd60e51b81526020600482015260146024820152731691d10e881c99585cdbdb881c995c5d5a5c995960621b604482015260640161058b565b6105e23385610d57565b336001600160a01b03167ffad31924d655455395c87544c8aa1ffdb5a7505a22a3c2e03f28003b6556a75f85858560405161061f9392919061161b565b60405180910390a250505050565b5f3361063a818585610d8f565b5060019392505050565b5f33610651858285610d9c565b61065c858585610e12565b506001949350505050565b7f2fdac322ee704ce09f0773f7f3f92eb98d5e7c836ee9c056cccd5f61041e5e3f61069181610d4d565b5f83116106b05760405162461bcd60e51b815260040161058b906115e4565b816106f65760405162461bcd60e51b81526020600482015260166024820152751691d10e881bdc99195c881251081c995c5d5a5c995960521b604482015260640161058b565b6001600160a01b03841661074c5760405162461bcd60e51b815260206004820152601a60248201527f5a47443a20757365722061646472657373207265717569726564000000000000604482015260640161058b565b6107563384610d57565b6040805184815242602082015283916001600160a01b0387169133917f690f28bfd2c51f431b8dc49c27fbdc768106b308fc576f5036a0cdfa782f0812910160405180910390a450505050565b5f828152600560205260409020600101546107bd81610d4d565b6107c78383610e6f565b50505050565b6001600160a01b03811633146107f65760405163334bd91960e11b815260040160405180910390fd5b6108008282610f00565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61082f81610d4d565b610837610f6b565b50565b5f51602061169f5f395f51905f5261085181610d4d565b5f82116108705760405162461bcd60e51b815260040161058b906115e4565b61087a3383610d57565b336001600160a01b03167ffad31924d655455395c87544c8aa1ffdb5a7505a22a3c2e03f28003b6556a75f836040516108c39181526040602082018190525f9082015260600190565b60405180910390a25050565b6001600160a01b0381165f908152602081905260408120546002546104bf9190611664565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61091e81610d4d565b610837610fbd565b5f51602061169f5f395f51905f5261093d81610d4d565b610945610ffa565b83821461098b5760405162461bcd60e51b81526020600482015260146024820152730b48e887440d8cadccee8d040dad2e6dac2e8c6d60631b604482015260640161058b565b836109cc5760405162461bcd60e51b81526020600482015260116024820152705a47443a20656d7074792061727261797360781b604482015260640161058b565b60c8841115610a145760405162461bcd60e51b81526020600482015260146024820152735a47443a20626174636820746f6f206c6172676560601b604482015260640161058b565b5f805b85811015610b19575f878783818110610a3257610a32611677565b9050602002016020810190610a4791906114b7565b6001600160a01b031603610a915760405162461bcd60e51b81526020600482015260116024820152705a47443a207a65726f206164647265737360781b604482015260640161058b565b5f858583818110610aa457610aa4611677565b9050602002013511610aeb5760405162461bcd60e51b815260206004820152601060248201526f1691d10e881e995c9bc8185b5bdd5b9d60821b604482015260640161058b565b848482818110610afd57610afd611677565b9050602002013582610b0f919061168b565b9150600101610a17565b50335f90815260208190526040902054811115610b785760405162461bcd60e51b815260206004820152601960248201527f5a47443a20696e73756666696369656e742062616c616e636500000000000000604482015260640161058b565b5f5b85811015610bd357610bcb33888884818110610b9857610b98611677565b9050602002016020810190610bad91906114b7565b878785818110610bbf57610bbf611677565b90506020020135610e12565b600101610b7a565b5060408051868152602081018390527f7b4fb3ffa747d03664dcd3bb02933bb6ab3f5799103a30a80659a5c1aa7ecc86910160405180910390a1505050505050565b5f9182526005602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600480546104d4906115ac565b5f3361063a818585610e12565b5f610c6581610d4d565b6001600160a01b038216610cb35760405162461bcd60e51b81526020600482015260156024820152745a47443a20696e76616c696420726567697374727960581b604482015260640161058b565b60068054610100600160a81b0319166101006001600160a01b038516908102919091179091556040517f861351879eb5e969d3dad134d54b8fbec0ad339b592351afcbc4028b667ea446905f90a25050565b5f82815260056020526040902060010154610d1f81610d4d565b6107c78383610f00565b5f610d3360025490565b610d48906a92693539fbb04c51000000611664565b905090565b6108378133611020565b6001600160a01b038216610d8057604051634b637e8f60e11b81525f600482015260240161058b565b610d8b825f83611059565b5050565b61080083838360016110d4565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198110156107c75781811015610e0457604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161058b565b6107c784848484035f6110d4565b6001600160a01b038316610e3b57604051634b637e8f60e11b81525f600482015260240161058b565b6001600160a01b038216610e645760405163ec442f0560e01b81525f600482015260240161058b565b610800838383611059565b5f610e7a8383610c15565b610ef9575f8381526005602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610eb13390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104bf565b505f6104bf565b5f610f0b8383610c15565b15610ef9575f8381526005602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104bf565b610f736111a6565b6006805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610fc5610ffa565b6006805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610fa03390565b60065460ff161561101e5760405163d93c066560e01b815260040160405180910390fd5b565b61102a8282610c15565b610d8b5760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161058b565b6001600160a01b0383161580159061107957506001600160a01b03821615155b156110c95760065460ff16156110c95760405162461bcd60e51b81526020600482015260156024820152741691d10e881d1c985b9cd9995c9cc81c185d5cd959605a1b604482015260640161058b565b6108008383836111c9565b6001600160a01b0384166110fd5760405163e602df0560e01b81525f600482015260240161058b565b6001600160a01b03831661112657604051634a1406b160e11b81525f600482015260240161058b565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156107c757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161119891815260200190565b60405180910390a350505050565b60065460ff1661101e57604051638dfc202b60e01b815260040160405180910390fd5b6001600160a01b0383166111f3578060025f8282546111e8919061168b565b909155506112639050565b6001600160a01b0383165f90815260208190526040902054818110156112455760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161058b565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661127f5760028054829003905561129d565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112e291815260200190565b60405180910390a3505050565b5f602082840312156112ff575f5ffd5b81356001600160e01b031981168114611316575f5ffd5b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f60408486031215611364575f5ffd5b83359250602084013567ffffffffffffffff811115611381575f5ffd5b8401601f81018613611391575f5ffd5b803567ffffffffffffffff8111156113a7575f5ffd5b8660208284010111156113b8575f5ffd5b939660209190910195509293505050565b80356001600160a01b03811681146113df575f5ffd5b919050565b5f5f604083850312156113f5575f5ffd5b6113fe836113c9565b946020939093013593505050565b5f5f5f6060848603121561141e575f5ffd5b611427846113c9565b9250611435602085016113c9565b929592945050506040919091013590565b5f60208284031215611456575f5ffd5b5035919050565b5f5f5f6060848603121561146f575f5ffd5b611478846113c9565b95602085013595506040909401359392505050565b5f5f6040838503121561149e575f5ffd5b823591506114ae602084016113c9565b90509250929050565b5f602082840312156114c7575f5ffd5b611316826113c9565b5f5f83601f8401126114e0575f5ffd5b50813567ffffffffffffffff8111156114f7575f5ffd5b6020830191508360208260051b8501011115611511575f5ffd5b9250929050565b5f5f5f5f6040858703121561152b575f5ffd5b843567ffffffffffffffff811115611541575f5ffd5b61154d878288016114d0565b909550935050602085013567ffffffffffffffff81111561156c575f5ffd5b611578878288016114d0565b95989497509550505050565b5f5f60408385031215611595575f5ffd5b61159e836113c9565b91506114ae602084016113c9565b600181811c908216806115c057607f821691505b6020821081036115de57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526017908201527f5a47443a20616d6f756e74206d757374206265203e2030000000000000000000604082015260600190565b83815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156104bf576104bf611650565b634e487b7160e01b5f52603260045260245ffd5b808201808211156104bf576104bf61165056fee1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca9a26469706673582212209e146d21308b2bf00a0279d4115dbae885708f1d91cae044fbbe84dd7e82bb5364736f6c634300081f0033
0x000000000000000000000000d258ad022f54a1e7597ec2a30798777c0e60623d
----Decoded View------------Arg [0] : safe (address): 0xd258aD022f54A1E7597EC2a30798777C0e60623d
----Encoded View------------Arg [0] : 0x000000000000000000000000d258ad022f54a1e7597ec2a30798777c0e60623d