497 lines
27 KiB
JSON
497 lines
27 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "WTokenComplianceEnforcer",
|
|
"sourceName": "contracts/bridge/integration/WTokenComplianceEnforcer.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "admin",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "bridgeEscrowVault_",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "complianceGuard_",
|
|
"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": "bytes32",
|
|
"name": "reasonCode",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "ComplianceViolation",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "InvalidToken",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "TokenNotEnabled",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bytes32",
|
|
"name": "reasonCode",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bool",
|
|
"name": "compliant",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"name": "ComplianceChecked",
|
|
"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": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bool",
|
|
"name": "enabled",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"name": "TokenEnabled",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "DEFAULT_ADMIN_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ENFORCER_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "OPERATOR_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "bridgeEscrowVault",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract BridgeEscrowVault",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "bridgeAmount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "checkComplianceBeforeBridge",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "compliant",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "currencyCode",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "bridgeAmount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "destinationReserve",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "destinationSupply",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "checkDestinationCompliance",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "compliant",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "complianceGuard",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract ComplianceGuard",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "disableToken",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "enableToken",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "enabledTokens",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"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": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "isTokenEnabled",
|
|
"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": "bytes4",
|
|
"name": "interfaceId",
|
|
"type": "bytes4"
|
|
}
|
|
],
|
|
"name": "supportsInterface",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": "0x6080346200017857601f6200129038819003918201601f19168301916001600160401b038311848410176200017d5780849260609460405283398101031262000178576200004d8162000193565b906200008d6200006e6040620000666020850162000193565b930162000193565b926200007a81620001a8565b50620000868162000228565b50620002ca565b506001600160a01b03908116918215620001255716908115620000d45760018060a01b0319908160015416176001556002541617600255604051610f089081620003688239f35b60405162461bcd60e51b8152602060048201526024808201527f57546f6b656e436f6d706c69616e6365456e666f726365723a207a65726f20676044820152631d585c9960e21b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f57546f6b656e436f6d706c69616e6365456e666f726365723a207a65726f2062604482015264726964676560d81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200017857565b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff166200022457818052816020526040822081835260205260408220600160ff198254161790553391600080516020620012708339815191528180a4600190565b5090565b6001600160a01b031660008181527f7a750cd587acda5aa56e770cbf6d76832999225f755bb1b14d0fb5323840765a60205260408120549091907f973ef39d76cc2c6090feab1c030bec6ab5db557f64df047a4c4f9b5953cf1df39060ff16620002c557808352826020526040832082845260205260408320600160ff1982541617905560008051602062001270833981519152339380a4600190565b505090565b6001600160a01b031660008181527fee57cd81e84075558e8fcc182a1f4393f91fc97f963a136e66b7f949a62f319f60205260408120549091907f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060ff16620002c557808352826020526040832082845260205260408320600160ff1982541617905560008051602062001270833981519152339380a460019056fe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a714610b4b575081631c41d1ed1461087557816323e27a641461080b578163248a9ca3146107e15781632f2ff15d146107b757816336568abe1461077157816348262e3e146103a257816358a26893146103795781636439fd751461033e57816368fa584414610315578163748538d91461027657816391d14854146102cf578163a217fddf146102b4578163b451cecc14610276578163c690908a14610160578163d547741f1461011d575063f5b541a6146100e057600080fd5b34610119578160031936011261011957602090517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b5080fd5b9190503461015c578060031936011261015c5761015891356101536001610142610c0d565b938387528660205286200154610d99565b610e3d565b5080f35b8280fd5b8284346102735760203660031901126102735761017b610bf2565b610183610d1f565b6001600160a01b0316801561022457825163e102e5e360e01b815282818681855afa9081610202575b506101c05750505163c1ab6dc160e01b8152fd5b7fdaf9101d1252b2a64d581ac74c5158c51129acca2ba55c45d3477163f7070fba60208483855260038252808520600160ff198254161790555160018152a280f35b61021d903d8086833e6102158183610b9e565b810190610cbd565b50856101ac565b825162461bcd60e51b81526020818601526024808201527f57546f6b656e436f6d706c69616e6365456e666f726365723a207a65726f207460448201526337b5b2b760e11b6064820152608490fd5b80fd5b5050346101195760203660031901126101195760209160ff9082906001600160a01b036102a1610bf2565b1681526003855220541690519015158152f35b50503461011957816003193601126101195751908152602090f35b90503461015c578160031936011261015c578160209360ff926102f0610c0d565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b50503461011957816003193601126101195760015490516001600160a01b039091168152602090f35b505034610119578160031936011261011957602090517f973ef39d76cc2c6090feab1c030bec6ab5db557f64df047a4c4f9b5953cf1df38152f35b50503461011957816003193601126101195760025490516001600160a01b039091168152602090f35b8284346102735781600319360112610273576103bc610bf2565b90602480359460018060a01b03809416938484526020966003885260ff87862054161561076157865163e102e5e360e01b815291858385818a5afa92831561064b578693610745575b50875163fb13278b60e01b815290898286818b5afa91821561073b578792610708575b5088516318160ddd60e01b8152908a8287818c5afa9182156106b95788926106d5575b508382039182116106c35789828492600254169561047c8351948593849363972438f760e01b85528b8d8601610c95565b0381875afa9081156106b95788908992610689575b50156106555750885191630cd0ec9360e11b835285830152858201528881604481855afa90811561064b578691610612575b50156105bf576104ee9188918851808095819463f6caf3eb60e01b8352868984015289830190610c70565b03915afa9081156105b557849161057c575b5061052b57505082600080516020610eb3833981519152918151908152600186820152a25160018152f35b858585600080516020610eb383398151915282878151907fbebc73a4856e1972c0d5622f50235fafd5b8bb9100a532a546df755534770adb96878352820152a2516316ad62a160e21b815291820152fd5b90508681813d83116105ae575b6105938183610b9e565b810103126105aa576105a490610c23565b87610500565b8380fd5b503d610589565b86513d86823e3d90fd5b5050858585600080516020610eb383398151915282878151907f2f660b24b28ffb25fe12afe5be897de7db9acd62fa126cd5abba124f839ad55396878352820152a2516316ad62a160e21b815291820152fd5b90508881813d8311610644575b6106298183610b9e565b810103126106405761063a90610c23565b896104c3565b8580fd5b503d61061f565b88513d88823e3d90fd5b93505050508585600080516020610eb3833981519152828a88825191878352820152a2516316ad62a160e21b815291820152fd5b90506106ab91508a3d8c116106b2575b6106a38183610b9e565b810190610c30565b908c610491565b503d610699565b8a513d8a823e3d90fd5b634e487b7160e01b8852601186528688fd5b9091508a81813d8311610701575b6106ed8183610b9e565b810103126106fd5751908b61044b565b8780fd5b503d6106e3565b9091508981813d8311610734575b6107208183610b9e565b810103126107305751908a610428565b8680fd5b503d610716565b89513d89823e3d90fd5b61075a9193503d8088833e6102158183610b9e565b9189610405565b8651631fcf8c4760e11b81528390fd5b83833461011957806003193601126101195761078b610c0d565b90336001600160a01b038316036107a85750610158919235610e3d565b5163334bd91960e11b81528390fd5b9190503461015c578060031936011261015c5761015891356107dc6001610142610c0d565b610dbf565b90503461015c57602036600319011261015c57816020936001923581528085522001549051908152f35b505034610119576020366003190112610119577fdaf9101d1252b2a64d581ac74c5158c51129acca2ba55c45d3477163f7070fba6020610849610bf2565b610851610d1f565b6001600160a01b031680855260038252838520805460ff191690559251848152a280f35b8284346102735760803660031901126102735782359267ffffffffffffffff8411610119573660238501121561011957602490808501356108b581610bd6565b906108c286519283610b9e565b8082526020963685838301011161064057818692868a930183860137830101528235604435606435828101908181116106c35788839160018060a01b0360025416956109218351948593849363972438f760e01b85528b8d8601610c95565b0381875afa908115610b415788908992610b21575b5015610aef5750875191630cd0ec9360e11b835285830152858201528781604481855afa908115610ae5578691610ab0575b5015610a5e576109939187918751808095819463f6caf3eb60e01b8352868984015289830190610c70565b03915afa908115610a54578491610a1f575b506109cf575050600080516020610eb3833981519152828051838152600186820152a25160018152f35b848484600080516020610eb3833981519152828051837fbebc73a4856e1972c0d5622f50235fafd5b8bb9100a532a546df755534770adb96878352820152a2516316ad62a160e21b815291820152fd5b90508581813d8311610a4d575b610a368183610b9e565b810103126105aa57610a4790610c23565b866109a5565b503d610a2c565b85513d86823e3d90fd5b5050848484600080516020610eb3833981519152828051837f2f660b24b28ffb25fe12afe5be897de7db9acd62fa126cd5abba124f839ad55396878352820152a2516316ad62a160e21b815291820152fd5b90508781813d8311610ade575b610ac78183610b9e565b8101031261064057610ad890610c23565b88610968565b503d610abd565b87513d88823e3d90fd5b8587918a8a600080516020610eb3833981519152828f83825191878352820152a2516316ad62a160e21b815291820152fd5b9050610b3a9150893d8b116106b2576106a38183610b9e565b908b610936565b89513d8a823e3d90fd5b84913461015c57602036600319011261015c573563ffffffff60e01b811680910361015c5760209250637965db0b60e01b8114908115610b8d575b5015158152f35b6301ffc9a760e01b14905083610b86565b90601f8019910116810190811067ffffffffffffffff821117610bc057604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610bc057601f01601f191660200190565b600435906001600160a01b0382168203610c0857565b600080fd5b602435906001600160a01b0382168203610c0857565b51908115158203610c0857565b9190826040910312610c08576020610c4783610c23565b92015190565b60005b838110610c605750506000910152565b8181015183820152602001610c50565b90602091610c8981518092818552858086019101610c4d565b601f01601f1916010190565b9092610cae606093969594608084526080840190610c70565b95602083015260408201520152565b602081830312610c085780519067ffffffffffffffff8211610c08570181601f82011215610c08578051610cf081610bd6565b92610cfe6040519485610b9e565b81845260208284010111610c0857610d1c9160208085019101610c4d565b90565b3360009081527fee57cd81e84075558e8fcc182a1f4393f91fc97f963a136e66b7f949a62f319f60205260409020547f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060ff1615610d7b5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff6040600020541615610d7b5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541615600014610e3857808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416600014610e385780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a460019056fe521cad425bc2c10145511da2cda33049678aca90408e615a16d5e86b4c514283a2646970667358221220588e918b0a50efd78d7eb2c8e4d83011d49c6c81958d19030ed36fb95376fc8964736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
|
|
"deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a714610b4b575081631c41d1ed1461087557816323e27a641461080b578163248a9ca3146107e15781632f2ff15d146107b757816336568abe1461077157816348262e3e146103a257816358a26893146103795781636439fd751461033e57816368fa584414610315578163748538d91461027657816391d14854146102cf578163a217fddf146102b4578163b451cecc14610276578163c690908a14610160578163d547741f1461011d575063f5b541a6146100e057600080fd5b34610119578160031936011261011957602090517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b5080fd5b9190503461015c578060031936011261015c5761015891356101536001610142610c0d565b938387528660205286200154610d99565b610e3d565b5080f35b8280fd5b8284346102735760203660031901126102735761017b610bf2565b610183610d1f565b6001600160a01b0316801561022457825163e102e5e360e01b815282818681855afa9081610202575b506101c05750505163c1ab6dc160e01b8152fd5b7fdaf9101d1252b2a64d581ac74c5158c51129acca2ba55c45d3477163f7070fba60208483855260038252808520600160ff198254161790555160018152a280f35b61021d903d8086833e6102158183610b9e565b810190610cbd565b50856101ac565b825162461bcd60e51b81526020818601526024808201527f57546f6b656e436f6d706c69616e6365456e666f726365723a207a65726f207460448201526337b5b2b760e11b6064820152608490fd5b80fd5b5050346101195760203660031901126101195760209160ff9082906001600160a01b036102a1610bf2565b1681526003855220541690519015158152f35b50503461011957816003193601126101195751908152602090f35b90503461015c578160031936011261015c578160209360ff926102f0610c0d565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b50503461011957816003193601126101195760015490516001600160a01b039091168152602090f35b505034610119578160031936011261011957602090517f973ef39d76cc2c6090feab1c030bec6ab5db557f64df047a4c4f9b5953cf1df38152f35b50503461011957816003193601126101195760025490516001600160a01b039091168152602090f35b8284346102735781600319360112610273576103bc610bf2565b90602480359460018060a01b03809416938484526020966003885260ff87862054161561076157865163e102e5e360e01b815291858385818a5afa92831561064b578693610745575b50875163fb13278b60e01b815290898286818b5afa91821561073b578792610708575b5088516318160ddd60e01b8152908a8287818c5afa9182156106b95788926106d5575b508382039182116106c35789828492600254169561047c8351948593849363972438f760e01b85528b8d8601610c95565b0381875afa9081156106b95788908992610689575b50156106555750885191630cd0ec9360e11b835285830152858201528881604481855afa90811561064b578691610612575b50156105bf576104ee9188918851808095819463f6caf3eb60e01b8352868984015289830190610c70565b03915afa9081156105b557849161057c575b5061052b57505082600080516020610eb3833981519152918151908152600186820152a25160018152f35b858585600080516020610eb383398151915282878151907fbebc73a4856e1972c0d5622f50235fafd5b8bb9100a532a546df755534770adb96878352820152a2516316ad62a160e21b815291820152fd5b90508681813d83116105ae575b6105938183610b9e565b810103126105aa576105a490610c23565b87610500565b8380fd5b503d610589565b86513d86823e3d90fd5b5050858585600080516020610eb383398151915282878151907f2f660b24b28ffb25fe12afe5be897de7db9acd62fa126cd5abba124f839ad55396878352820152a2516316ad62a160e21b815291820152fd5b90508881813d8311610644575b6106298183610b9e565b810103126106405761063a90610c23565b896104c3565b8580fd5b503d61061f565b88513d88823e3d90fd5b93505050508585600080516020610eb3833981519152828a88825191878352820152a2516316ad62a160e21b815291820152fd5b90506106ab91508a3d8c116106b2575b6106a38183610b9e565b810190610c30565b908c610491565b503d610699565b8a513d8a823e3d90fd5b634e487b7160e01b8852601186528688fd5b9091508a81813d8311610701575b6106ed8183610b9e565b810103126106fd5751908b61044b565b8780fd5b503d6106e3565b9091508981813d8311610734575b6107208183610b9e565b810103126107305751908a610428565b8680fd5b503d610716565b89513d89823e3d90fd5b61075a9193503d8088833e6102158183610b9e565b9189610405565b8651631fcf8c4760e11b81528390fd5b83833461011957806003193601126101195761078b610c0d565b90336001600160a01b038316036107a85750610158919235610e3d565b5163334bd91960e11b81528390fd5b9190503461015c578060031936011261015c5761015891356107dc6001610142610c0d565b610dbf565b90503461015c57602036600319011261015c57816020936001923581528085522001549051908152f35b505034610119576020366003190112610119577fdaf9101d1252b2a64d581ac74c5158c51129acca2ba55c45d3477163f7070fba6020610849610bf2565b610851610d1f565b6001600160a01b031680855260038252838520805460ff191690559251848152a280f35b8284346102735760803660031901126102735782359267ffffffffffffffff8411610119573660238501121561011957602490808501356108b581610bd6565b906108c286519283610b9e565b8082526020963685838301011161064057818692868a930183860137830101528235604435606435828101908181116106c35788839160018060a01b0360025416956109218351948593849363972438f760e01b85528b8d8601610c95565b0381875afa908115610b415788908992610b21575b5015610aef5750875191630cd0ec9360e11b835285830152858201528781604481855afa908115610ae5578691610ab0575b5015610a5e576109939187918751808095819463f6caf3eb60e01b8352868984015289830190610c70565b03915afa908115610a54578491610a1f575b506109cf575050600080516020610eb3833981519152828051838152600186820152a25160018152f35b848484600080516020610eb3833981519152828051837fbebc73a4856e1972c0d5622f50235fafd5b8bb9100a532a546df755534770adb96878352820152a2516316ad62a160e21b815291820152fd5b90508581813d8311610a4d575b610a368183610b9e565b810103126105aa57610a4790610c23565b866109a5565b503d610a2c565b85513d86823e3d90fd5b5050848484600080516020610eb3833981519152828051837f2f660b24b28ffb25fe12afe5be897de7db9acd62fa126cd5abba124f839ad55396878352820152a2516316ad62a160e21b815291820152fd5b90508781813d8311610ade575b610ac78183610b9e565b8101031261064057610ad890610c23565b88610968565b503d610abd565b87513d88823e3d90fd5b8587918a8a600080516020610eb3833981519152828f83825191878352820152a2516316ad62a160e21b815291820152fd5b9050610b3a9150893d8b116106b2576106a38183610b9e565b908b610936565b89513d8a823e3d90fd5b84913461015c57602036600319011261015c573563ffffffff60e01b811680910361015c5760209250637965db0b60e01b8114908115610b8d575b5015158152f35b6301ffc9a760e01b14905083610b86565b90601f8019910116810190811067ffffffffffffffff821117610bc057604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610bc057601f01601f191660200190565b600435906001600160a01b0382168203610c0857565b600080fd5b602435906001600160a01b0382168203610c0857565b51908115158203610c0857565b9190826040910312610c08576020610c4783610c23565b92015190565b60005b838110610c605750506000910152565b8181015183820152602001610c50565b90602091610c8981518092818552858086019101610c4d565b601f01601f1916010190565b9092610cae606093969594608084526080840190610c70565b95602083015260408201520152565b602081830312610c085780519067ffffffffffffffff8211610c08570181601f82011215610c08578051610cf081610bd6565b92610cfe6040519485610b9e565b81845260208284010111610c0857610d1c9160208085019101610c4d565b90565b3360009081527fee57cd81e84075558e8fcc182a1f4393f91fc97f963a136e66b7f949a62f319f60205260409020547f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060ff1615610d7b5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff6040600020541615610d7b5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541615600014610e3857808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416600014610e385780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a460019056fe521cad425bc2c10145511da2cda33049678aca90408e615a16d5e86b4c514283a2646970667358221220588e918b0a50efd78d7eb2c8e4d83011d49c6c81958d19030ed36fb95376fc8964736f6c63430008160033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|