Files
2026-03-02 12:14:09 -08:00

572 lines
38 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "WTokenBridgeIntegration",
"sourceName": "contracts/bridge/integration/WTokenBridgeIntegration.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
},
{
"internalType": "address",
"name": "tokenFactory_",
"type": "address"
},
{
"internalType": "address",
"name": "bridgeRegistry_",
"type": "address"
},
{
"internalType": "address",
"name": "wTokenRegistry_",
"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"
},
{
"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": true,
"internalType": "string",
"name": "currencyCode",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "destinationChainIds",
"type": "uint256[]"
}
],
"name": "WTokenRegistered",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "INTEGRATOR_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "bridgeRegistry",
"outputs": [
{
"internalType": "contract BridgeRegistry",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "defaultBridgeFeeBps",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "defaultEvmDestinations",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "defaultMaxBridgeAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "defaultMinBridgeAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "defaultNonEvmDestinations",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "defaultRiskLevel",
"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": [
{
"internalType": "string[]",
"name": "currencyCodes",
"type": "string[]"
}
],
"name": "registerMultipleWTokensDefault",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "currencyCode",
"type": "string"
},
{
"internalType": "uint256[]",
"name": "destinationChainIds",
"type": "uint256[]"
},
{
"internalType": "uint256",
"name": "minAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxAmount",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "riskLevel",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "bridgeFeeBps",
"type": "uint256"
}
],
"name": "registerWToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "currencyCode",
"type": "string"
}
],
"name": "registerWTokenDefault",
"outputs": [],
"stateMutability": "nonpayable",
"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": "uint256",
"name": "feeBps",
"type": "uint256"
}
],
"name": "setDefaultBridgeFeeBps",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "chainIds",
"type": "uint256[]"
}
],
"name": "setDefaultEvmDestinations",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "maxAmount",
"type": "uint256"
}
],
"name": "setDefaultMaxBridgeAmount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "minAmount",
"type": "uint256"
}
],
"name": "setDefaultMinBridgeAmount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "chainIds",
"type": "uint256[]"
}
],
"name": "setDefaultNonEvmDestinations",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "riskLevel",
"type": "uint8"
}
],
"name": "setDefaultRiskLevel",
"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": "tokenFactory",
"outputs": [
{
"internalType": "contract TokenFactory",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "wTokenRegistry",
"outputs": [
{
"internalType": "contract ITokenRegistry",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x6080346200042f57601f62001c6b38819003918201601f191683019291906001600160401b03841183851017620004345781608092849260409687528339810103126200042f5762000051816200044a565b6020620000608184016200044a565b6200007b6060620000738787016200044a565b95016200044a565b90620000b46004946127108655633b9aca00600555601460ff1960065416176006556005600755620000ad816200045f565b50620004df565b506001600160a01b03908116948515620003d85781169182156200037f5716908115620003255760018060a01b0319906001958287541617865581600254161760025560035416176003556008918254906801000000000000000093848310156200031057858301808255831015620002fb5760896000938285528585200155805485811015620002e857868101808355811015620002d557600a908285528585200155805485811015620002e857868101808355811015620002d557612105908285528585200155805485811015620002e857868101808355811015620002d55761a4b1908285528585200155805485811015620002e857868101808355811015620002d55761a86a908285528585200155805485811015620002e857868101808355811015620002d5576038908285528585200155805485811015620002e857868101808355811015620002d55761279f90828552858520015580549085821015620002e857868201808255821015620002d5579061a7299184528484200155600990815485811015620002c257868101808455811015620002af57839083825285822001558154948510156200029c578585018083558510156200028957508152200155516116c99081620005828239f35b634e487b7160e01b835260329052602482fd5b634e487b7160e01b835260419052602482fd5b634e487b7160e01b845260328252602484fd5b634e487b7160e01b845260418252602484fd5b634e487b7160e01b845260328352602484fd5b634e487b7160e01b845260418352602484fd5b603282634e487b7160e01b6000525260246000fd5b604182634e487b7160e01b6000525260246000fd5b855162461bcd60e51b8152808501849052602e60248201527f57546f6b656e427269646765496e746567726174696f6e3a207a65726f20572060448201526d746f6b656e20726567697374727960901b6064820152608490fd5b865162461bcd60e51b8152808601859052602d60248201527f57546f6b656e427269646765496e746567726174696f6e3a207a65726f20627260448201526c6964676520726567697374727960981b6064820152608490fd5b865162461bcd60e51b8152808601859052602b60248201527f57546f6b656e427269646765496e746567726174696f6e3a207a65726f20746f60448201526a6b656e20666163746f727960a81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200042f57565b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff16620004db57818052816020526040822081835260205260408220600160ff19825416179055339160008051602062001c4b8339815191528180a4600190565b5090565b6001600160a01b031660008181527f85597e26f9de67b0101b574c01128315915f014d091114801759e10c42edea1d60205260408120549091907f4cd574fef1cb11b5eaa1dc084d509b9450f597adb468262ed211e16aef345d089060ff166200057c57808352826020526040832082845260205260408320600160ff1982541617905560008051602062001c4b833981519152339380a4600190565b50509056fe60a06040818152600460805260805136101561001a57600080fd5b600091823560e01c90816301ffc9a714611092575080631ae6abc014610ff8578063248a9ca314610fcd5780632f2ff15d14610fb05780632fe70c6714610ec5578063316be17114610e9d57806336568abe14610e605780633721a50c14610e2e5780633956ad4b14610e0f5780633ea4138414610de7578063402c394414610dc95780634566d31614610cbc578063701997a414610c8f57806391d1485414610c565780639b32cfe214610c265780639eb8f6201461090f578063a217fddf146108f5578063ab04113c1461051c578063c414b918146104fe578063d2d2e8b3146104dd578063d36deda3146104a2578063d547741f1461046e578063dbe8168a14610438578063e77772fe14610410578063ee4aedfe146103d65763f62b64511461014657600080fd5b346103d25760c03660031901126103d2576080513567ffffffffffffffff908181116103ce5761017b90369060805101611256565b906024359081116103ce5761019590369060805101611172565b906044359160643560843560ff81168091036103c957604491849160a435916101bc6114fe565b60018060a01b039788600354168a5195868092636204891b60e11b82528160209a8b9a8b958660805183015261020281519d8e92836024860152019d8e8585019061144f565b601f01601f191681010301915afa80156103bf578a918d91610381575b501698891561032b57908b9493929161023a89511515611305565b610245821515611362565b610251828410156113f8565b61025f6127108611156112ad565b6002541690813b1561032757858b81958e51978896879586946363c841d360e11b86526080518601526024850152604484015260c060648401526102a78d60c4850190611472565b91608484015260a483015203925af1801561031d57610305575b50506102ea6102ff9160008051602061167483398151915295885192839283925192839161144f565b81010390209551928284938452830190611472565b0390a380f35b61030e9061110e565b6103195786386102c1565b8680fd5b88513d84823e3d90fd5b8580fd5b8a5162461bcd60e51b81526080518101889052602860248201527f57546f6b656e427269646765496e746567726174696f6e3a20746f6b656e206e6044820152671bdd08199bdd5b9960c21b6064820152608490fd5b809250888092503d83116103b8575b61039a8183611138565b810103126103b4575189811681036103b45789903861021f565b8b80fd5b503d610390565b8b513d8e823e3d90fd5b600080fd5b8380fd5b5080fd5b50346103d257816003193601126103d257602090517f4cd574fef1cb11b5eaa1dc084d509b9450f597adb468262ed211e16aef345d088152f35b50346103d257816003193601126103d25760015490516001600160a01b039091168152602090f35b823461046b57602036600319011261046b57608051356104566114a6565b610465608051548210156113f8565b60055580f35b80fd5b50346103d257600161049e91610499610486366110e8565b939092838752866020528620015461155a565b6115fe565b5080f35b50346103d25760203660031901126103d257608051359160085483101561046b57506104cf60209261121f565b91905490519160031b1c8152f35b50346103d257816003193601126103d25760209060ff600654169051908152f35b50346103d257816003193601126103d2576020906005549051908152f35b50346103d257602090816003193601126108f157608051359167ffffffffffffffff908184116108ed57366023850112156108ed57836080510135946024926105648761115a565b9561057186519788611138565b878752838701908560059960051b820101923684116108ed57868201925b8484106108c75750505050506105a36114fe565b805b855181101561049e576105b881876113e4565b516105c16114fe565b60085460095491828201928383116108b2579087916105f76105e28661115a565b956105ef8c519788611138565b80875261115a565b601f199490850136878b01378790885b81811061087957505087905b82821061084257505050608051548b549060065460ff16600754906106366114fe565b8c8b600160a01b6001900398896003541692519283808093636204891b60e11b8252856080518301528b51809d830152858c019c8d81604485016106799261144f565b601f0116810103604401915afa908115610838579088918c916107fe575b50169687156107a9576106ac89511515611305565b6106b7841515611362565b6106c3848610156113f8565b6106d16127108411156112ad565b6002541691823b156107a5578a888f938f938397969551988997889687956363c841d360e11b8752608051870152850152604484015260c0606484015261071c8d60c4850190611472565b91608484015260a483015203925af1801561079b57908791610787575b505061077e610767600196959493600080516020611674833981519152938c5192839283925192839161144f565b8101039020938a519182918a83528a830190611472565b0390a3016105a5565b6107909061110e565b610327578538610739565b8a513d89823e3d90fd5b8a80fd5b8d5162461bcd60e51b815260805181018d90526028818f01527f57546f6b656e427269646765496e746567726174696f6e3a20746f6b656e206e6044820152671bdd08199bdd5b9960c21b6064820152608490fd5b8092508d8092503d8311610831575b6108178183611138565b810103126107a5575187811681036107a557879038610697565b503d61080d565b8e513d8d823e3d90fd5b61086e9293945090600191610856826111d2565b949054610862836113bf565b9560031b1c91896113e4565b520189939291610613565b6108a5939495506001919261088d8261121f565b959054610899836113bf565b9660031b1c918a6113e4565b5201908a94939291610607565b634e487b7160e01b8652608051601190528786fd5b83358281116103195787916108e283928b3691880101611256565b81520193019261058f565b8480fd5b8280fd5b50346103d257816003193601126103d25751908152602090f35b50346103d2576020806003193601126108f1576080513567ffffffffffffffff81116103ce5761094490369060805101611256565b9061094d6114fe565b6008549060095480830192838111610c105761098061096b8561115a565b9461097888519687611138565b80865261115a565b601f190136858501378690875b818110610be157505086905b828210610bb15750505080608051549360055460ff6006541690600754916109bf6114fe565b60018060a01b03978860035416868b518092636204891b60e11b825282608051830152816044818b610a0181519e8f92836024860152019e8f8585019061144f565b601f01601f191681010301915afa80156103bf578a918d91610b77575b5016988915610b2157908b939291610a388a511515611305565b610a43821515611362565b610a4f828510156113f8565b610a5d6127108711156112ad565b6002541691823b156108ed578a85918d51978896879586946363c841d360e11b86526080518601526024850152604484015260c06064840152610aa48d60c4850190611472565b91608484015260a483015203925af18015610b1757610ae8575b506102ea6000805160206116748339815191529493926102ff92885192839283925192839161144f565b6000805160206116748339815191529493926102ff9298610b0b6102ea9361110e565b98925092939450610abe565b87513d8a823e3d90fd5b8a5162461bcd60e51b81526080518101899052602860248201527f57546f6b656e427269646765496e746567726174696f6e3a20746f6b656e206e6044820152671bdd08199bdd5b9960c21b6064820152608490fd5b809250898092503d8311610baa575b610b908183611138565b810103126103b4575189811681036103b457899038610a1e565b503d610b86565b81600191610bc1610bd9946111d2565b949054610bcd836113bf565b9560031b1c91886113e4565b520190610999565b80610c0993610bf160019361121f565b959054610bfd836113bf565b9660031b1c91896113e4565b520161098d565b634e487b7160e01b875260805160119052602487fd5b823461046b57602036600319011261046b5760805135610c446114a6565b610c4f811515611362565b6080515580f35b50346103d25760ff81602093610c6b366110e8565b9082528186528282206001600160a01b039091168252855220549151911615158152f35b50346103d25760203660031901126103d257608051359160095483101561046b57506104cf6020926111d2565b823461046b576020806003193601126103d257608051359067ffffffffffffffff918281116103ce57610cf490369060805101611172565b610cfc6114a6565b610d0881511515611305565b8051928311610db357600160401b8311610db35760085483600855808410610d73575b506020019060088452835b838110610d41578480f35b82517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee382015591810191600101610d36565b837ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee391820191015b818110610da85750610d2b565b858155600101610d9b565b634e487b7160e01b845260805160419052602484fd5b50346103d257816003193601126103d2576020906007549051908152f35b50346103d257816003193601126103d25760035490516001600160a01b039091168152602090f35b50346103d257816003193601126103d257602090608051549051908152f35b823461046b57602036600319011261046b5760805135610e4c6114a6565b610e5a6127108211156112ad565b60075580f35b50903461046b57610e70366110e8565b90336001600160a01b03831603610e8b579061049e916115fe565b835163334bd91960e11b815260805190fd5b50346103d257816003193601126103d25760025490516001600160a01b039091168152602090f35b823461046b576020806003193601126103d257608051359067ffffffffffffffff918281116103ce57610efd90369060805101611172565b610f056114a6565b8051928311610db357600160401b8311610db35760095483600955808410610f70575b506020019060098452835b838110610f3e578480f35b82517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af82015591810191600101610f33565b837f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af91820191015b818110610fa55750610f28565b858155600101610f98565b50346103d257600161049e91610fc8610486366110e8565b611580565b50346103d25760203660031901126103d2576001816020936080513581528085522001549051908152f35b50346103d25760203660031901126103d257608051359060ff82168092036108f1576110226114a6565b60ff8211611039575060ff19600654161760065580f35b5162461bcd60e51b8152608051602090820152602b60248201527f57546f6b656e427269646765496e746567726174696f6e3a20696e76616c696460448201526a081c9a5cdac81b195d995b60aa1b6064820152608490fd5b8390346103d25760203660031901126103d2576080513563ffffffff60e01b81168091036108f15760209250637965db0b60e01b81149081156110d7575b5015158152f35b6301ffc9a760e01b149050836110d0565b60409060031901126103c957600435906024356001600160a01b03811681036103c95790565b67ffffffffffffffff811161112257604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761112257604052565b67ffffffffffffffff81116111225760051b60200190565b9080601f830112156103c957602090823561118c8161115a565b9361119a6040519586611138565b81855260208086019260051b8201019283116103c957602001905b8282106111c3575050505090565b813581529083019083016111b5565b6009548110156112095760096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0190600090565b634e487b7160e01b600052603260045260246000fd5b6008548110156112095760086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30190600090565b81601f820112156103c95780359067ffffffffffffffff8211611122576040519261128b601f8401601f191660200185611138565b828452602083830101116103c957816000926020809301838601378301015290565b156112b457565b60405162461bcd60e51b815260206004820152602360248201527f57546f6b656e427269646765496e746567726174696f6e3a20666565203e203160448201526230302560e81b6064820152608490fd5b1561130c57565b60405162461bcd60e51b815260206004820152602860248201527f57546f6b656e427269646765496e746567726174696f6e3a206e6f2064657374604482015267696e6174696f6e7360c01b6064820152608490fd5b1561136957565b60405162461bcd60e51b815260206004820152602860248201527f57546f6b656e427269646765496e746567726174696f6e3a207a65726f206d696044820152671b88185b5bdd5b9d60c21b6064820152608490fd5b60001981146113ce5760010190565b634e487b7160e01b600052601160045260246000fd5b80518210156112095760209160051b010190565b156113ff57565b60405162461bcd60e51b815260206004820152602260248201527f57546f6b656e427269646765496e746567726174696f6e3a206d6178203c206d60448201526134b760f11b6064820152608490fd5b60005b8381106114625750506000910152565b8181015183820152602001611452565b90815180825260208080930193019160005b828110611492575050505090565b835185529381019392810192600101611484565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff16156114e05750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527f85597e26f9de67b0101b574c01128315915f014d091114801759e10c42edea1d60205260409020547f4cd574fef1cb11b5eaa1dc084d509b9450f597adb468262ed211e16aef345d089060ff16156114e05750565b80600052600060205260406000203360005260205260ff60406000205416156114e05750565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416156000146115f957808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146115f95780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a460019056fef274c2c7f3229027beeee0a62f7daa18c1d9d5075412c9d72dad3276e004678aa26469706673582212208216a26203e6f2c477e7ba02d09787c41282cffe3cde3d851d819258a2143bcf64736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
"deployedBytecode": "0x60a06040818152600460805260805136101561001a57600080fd5b600091823560e01c90816301ffc9a714611092575080631ae6abc014610ff8578063248a9ca314610fcd5780632f2ff15d14610fb05780632fe70c6714610ec5578063316be17114610e9d57806336568abe14610e605780633721a50c14610e2e5780633956ad4b14610e0f5780633ea4138414610de7578063402c394414610dc95780634566d31614610cbc578063701997a414610c8f57806391d1485414610c565780639b32cfe214610c265780639eb8f6201461090f578063a217fddf146108f5578063ab04113c1461051c578063c414b918146104fe578063d2d2e8b3146104dd578063d36deda3146104a2578063d547741f1461046e578063dbe8168a14610438578063e77772fe14610410578063ee4aedfe146103d65763f62b64511461014657600080fd5b346103d25760c03660031901126103d2576080513567ffffffffffffffff908181116103ce5761017b90369060805101611256565b906024359081116103ce5761019590369060805101611172565b906044359160643560843560ff81168091036103c957604491849160a435916101bc6114fe565b60018060a01b039788600354168a5195868092636204891b60e11b82528160209a8b9a8b958660805183015261020281519d8e92836024860152019d8e8585019061144f565b601f01601f191681010301915afa80156103bf578a918d91610381575b501698891561032b57908b9493929161023a89511515611305565b610245821515611362565b610251828410156113f8565b61025f6127108611156112ad565b6002541690813b1561032757858b81958e51978896879586946363c841d360e11b86526080518601526024850152604484015260c060648401526102a78d60c4850190611472565b91608484015260a483015203925af1801561031d57610305575b50506102ea6102ff9160008051602061167483398151915295885192839283925192839161144f565b81010390209551928284938452830190611472565b0390a380f35b61030e9061110e565b6103195786386102c1565b8680fd5b88513d84823e3d90fd5b8580fd5b8a5162461bcd60e51b81526080518101889052602860248201527f57546f6b656e427269646765496e746567726174696f6e3a20746f6b656e206e6044820152671bdd08199bdd5b9960c21b6064820152608490fd5b809250888092503d83116103b8575b61039a8183611138565b810103126103b4575189811681036103b45789903861021f565b8b80fd5b503d610390565b8b513d8e823e3d90fd5b600080fd5b8380fd5b5080fd5b50346103d257816003193601126103d257602090517f4cd574fef1cb11b5eaa1dc084d509b9450f597adb468262ed211e16aef345d088152f35b50346103d257816003193601126103d25760015490516001600160a01b039091168152602090f35b823461046b57602036600319011261046b57608051356104566114a6565b610465608051548210156113f8565b60055580f35b80fd5b50346103d257600161049e91610499610486366110e8565b939092838752866020528620015461155a565b6115fe565b5080f35b50346103d25760203660031901126103d257608051359160085483101561046b57506104cf60209261121f565b91905490519160031b1c8152f35b50346103d257816003193601126103d25760209060ff600654169051908152f35b50346103d257816003193601126103d2576020906005549051908152f35b50346103d257602090816003193601126108f157608051359167ffffffffffffffff908184116108ed57366023850112156108ed57836080510135946024926105648761115a565b9561057186519788611138565b878752838701908560059960051b820101923684116108ed57868201925b8484106108c75750505050506105a36114fe565b805b855181101561049e576105b881876113e4565b516105c16114fe565b60085460095491828201928383116108b2579087916105f76105e28661115a565b956105ef8c519788611138565b80875261115a565b601f199490850136878b01378790885b81811061087957505087905b82821061084257505050608051548b549060065460ff16600754906106366114fe565b8c8b600160a01b6001900398896003541692519283808093636204891b60e11b8252856080518301528b51809d830152858c019c8d81604485016106799261144f565b601f0116810103604401915afa908115610838579088918c916107fe575b50169687156107a9576106ac89511515611305565b6106b7841515611362565b6106c3848610156113f8565b6106d16127108411156112ad565b6002541691823b156107a5578a888f938f938397969551988997889687956363c841d360e11b8752608051870152850152604484015260c0606484015261071c8d60c4850190611472565b91608484015260a483015203925af1801561079b57908791610787575b505061077e610767600196959493600080516020611674833981519152938c5192839283925192839161144f565b8101039020938a519182918a83528a830190611472565b0390a3016105a5565b6107909061110e565b610327578538610739565b8a513d89823e3d90fd5b8a80fd5b8d5162461bcd60e51b815260805181018d90526028818f01527f57546f6b656e427269646765496e746567726174696f6e3a20746f6b656e206e6044820152671bdd08199bdd5b9960c21b6064820152608490fd5b8092508d8092503d8311610831575b6108178183611138565b810103126107a5575187811681036107a557879038610697565b503d61080d565b8e513d8d823e3d90fd5b61086e9293945090600191610856826111d2565b949054610862836113bf565b9560031b1c91896113e4565b520189939291610613565b6108a5939495506001919261088d8261121f565b959054610899836113bf565b9660031b1c918a6113e4565b5201908a94939291610607565b634e487b7160e01b8652608051601190528786fd5b83358281116103195787916108e283928b3691880101611256565b81520193019261058f565b8480fd5b8280fd5b50346103d257816003193601126103d25751908152602090f35b50346103d2576020806003193601126108f1576080513567ffffffffffffffff81116103ce5761094490369060805101611256565b9061094d6114fe565b6008549060095480830192838111610c105761098061096b8561115a565b9461097888519687611138565b80865261115a565b601f190136858501378690875b818110610be157505086905b828210610bb15750505080608051549360055460ff6006541690600754916109bf6114fe565b60018060a01b03978860035416868b518092636204891b60e11b825282608051830152816044818b610a0181519e8f92836024860152019e8f8585019061144f565b601f01601f191681010301915afa80156103bf578a918d91610b77575b5016988915610b2157908b939291610a388a511515611305565b610a43821515611362565b610a4f828510156113f8565b610a5d6127108711156112ad565b6002541691823b156108ed578a85918d51978896879586946363c841d360e11b86526080518601526024850152604484015260c06064840152610aa48d60c4850190611472565b91608484015260a483015203925af18015610b1757610ae8575b506102ea6000805160206116748339815191529493926102ff92885192839283925192839161144f565b6000805160206116748339815191529493926102ff9298610b0b6102ea9361110e565b98925092939450610abe565b87513d8a823e3d90fd5b8a5162461bcd60e51b81526080518101899052602860248201527f57546f6b656e427269646765496e746567726174696f6e3a20746f6b656e206e6044820152671bdd08199bdd5b9960c21b6064820152608490fd5b809250898092503d8311610baa575b610b908183611138565b810103126103b4575189811681036103b457899038610a1e565b503d610b86565b81600191610bc1610bd9946111d2565b949054610bcd836113bf565b9560031b1c91886113e4565b520190610999565b80610c0993610bf160019361121f565b959054610bfd836113bf565b9660031b1c91896113e4565b520161098d565b634e487b7160e01b875260805160119052602487fd5b823461046b57602036600319011261046b5760805135610c446114a6565b610c4f811515611362565b6080515580f35b50346103d25760ff81602093610c6b366110e8565b9082528186528282206001600160a01b039091168252855220549151911615158152f35b50346103d25760203660031901126103d257608051359160095483101561046b57506104cf6020926111d2565b823461046b576020806003193601126103d257608051359067ffffffffffffffff918281116103ce57610cf490369060805101611172565b610cfc6114a6565b610d0881511515611305565b8051928311610db357600160401b8311610db35760085483600855808410610d73575b506020019060088452835b838110610d41578480f35b82517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee382015591810191600101610d36565b837ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee391820191015b818110610da85750610d2b565b858155600101610d9b565b634e487b7160e01b845260805160419052602484fd5b50346103d257816003193601126103d2576020906007549051908152f35b50346103d257816003193601126103d25760035490516001600160a01b039091168152602090f35b50346103d257816003193601126103d257602090608051549051908152f35b823461046b57602036600319011261046b5760805135610e4c6114a6565b610e5a6127108211156112ad565b60075580f35b50903461046b57610e70366110e8565b90336001600160a01b03831603610e8b579061049e916115fe565b835163334bd91960e11b815260805190fd5b50346103d257816003193601126103d25760025490516001600160a01b039091168152602090f35b823461046b576020806003193601126103d257608051359067ffffffffffffffff918281116103ce57610efd90369060805101611172565b610f056114a6565b8051928311610db357600160401b8311610db35760095483600955808410610f70575b506020019060098452835b838110610f3e578480f35b82517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af82015591810191600101610f33565b837f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af91820191015b818110610fa55750610f28565b858155600101610f98565b50346103d257600161049e91610fc8610486366110e8565b611580565b50346103d25760203660031901126103d2576001816020936080513581528085522001549051908152f35b50346103d25760203660031901126103d257608051359060ff82168092036108f1576110226114a6565b60ff8211611039575060ff19600654161760065580f35b5162461bcd60e51b8152608051602090820152602b60248201527f57546f6b656e427269646765496e746567726174696f6e3a20696e76616c696460448201526a081c9a5cdac81b195d995b60aa1b6064820152608490fd5b8390346103d25760203660031901126103d2576080513563ffffffff60e01b81168091036108f15760209250637965db0b60e01b81149081156110d7575b5015158152f35b6301ffc9a760e01b149050836110d0565b60409060031901126103c957600435906024356001600160a01b03811681036103c95790565b67ffffffffffffffff811161112257604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761112257604052565b67ffffffffffffffff81116111225760051b60200190565b9080601f830112156103c957602090823561118c8161115a565b9361119a6040519586611138565b81855260208086019260051b8201019283116103c957602001905b8282106111c3575050505090565b813581529083019083016111b5565b6009548110156112095760096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0190600090565b634e487b7160e01b600052603260045260246000fd5b6008548110156112095760086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30190600090565b81601f820112156103c95780359067ffffffffffffffff8211611122576040519261128b601f8401601f191660200185611138565b828452602083830101116103c957816000926020809301838601378301015290565b156112b457565b60405162461bcd60e51b815260206004820152602360248201527f57546f6b656e427269646765496e746567726174696f6e3a20666565203e203160448201526230302560e81b6064820152608490fd5b1561130c57565b60405162461bcd60e51b815260206004820152602860248201527f57546f6b656e427269646765496e746567726174696f6e3a206e6f2064657374604482015267696e6174696f6e7360c01b6064820152608490fd5b1561136957565b60405162461bcd60e51b815260206004820152602860248201527f57546f6b656e427269646765496e746567726174696f6e3a207a65726f206d696044820152671b88185b5bdd5b9d60c21b6064820152608490fd5b60001981146113ce5760010190565b634e487b7160e01b600052601160045260246000fd5b80518210156112095760209160051b010190565b156113ff57565b60405162461bcd60e51b815260206004820152602260248201527f57546f6b656e427269646765496e746567726174696f6e3a206d6178203c206d60448201526134b760f11b6064820152608490fd5b60005b8381106114625750506000910152565b8181015183820152602001611452565b90815180825260208080930193019160005b828110611492575050505090565b835185529381019392810192600101611484565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff16156114e05750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527f85597e26f9de67b0101b574c01128315915f014d091114801759e10c42edea1d60205260409020547f4cd574fef1cb11b5eaa1dc084d509b9450f597adb468262ed211e16aef345d089060ff16156114e05750565b80600052600060205260406000203360005260205260ff60406000205416156114e05750565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416156000146115f957808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146115f95780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a460019056fef274c2c7f3229027beeee0a62f7daa18c1d9d5075412c9d72dad3276e004678aa26469706673582212208216a26203e6f2c477e7ba02d09787c41282cffe3cde3d851d819258a2143bcf64736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}