Files
smom-dbis-138/artifacts/contracts/bridge/integration/WTokenReserveVerifier.sol/WTokenReserveVerifier.json
2026-03-02 12:14:09 -08:00

553 lines
26 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "WTokenReserveVerifier",
"sourceName": "contracts/bridge/integration/WTokenReserveVerifier.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
},
{
"internalType": "address",
"name": "bridgeEscrowVault_",
"type": "address"
},
{
"internalType": "address",
"name": "reserveOracle_",
"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": [],
"name": "InsufficientReserve",
"type": "error"
},
{
"inputs": [],
"name": "InvalidToken",
"type": "error"
},
{
"inputs": [],
"name": "TokenNotVerified",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "reserve",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "supply",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "bridgeAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "sufficient",
"type": "bool"
}
],
"name": "ReserveVerified",
"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": "verified",
"type": "bool"
}
],
"name": "TokenVerified",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_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": "VERIFIER_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": "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": "isTokenVerified",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "registerToken",
"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": [],
"name": "reserveOracle",
"outputs": [
{
"internalType": "contract ReserveOracle",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "reserveThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"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": "threshold",
"type": "uint256"
}
],
"name": "setReserveThreshold",
"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": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "unregisterToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "verifiedTokens",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "bridgeAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "destinationReserve",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "destinationSupply",
"type": "uint256"
}
],
"name": "verifyDestinationReserve",
"outputs": [
{
"internalType": "bool",
"name": "verified",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "bridgeAmount",
"type": "uint256"
}
],
"name": "verifyReserveBeforeBridge",
"outputs": [
{
"internalType": "bool",
"name": "verified",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "bridgeAmount",
"type": "uint256"
}
],
"name": "verifyReserveWithOracle",
"outputs": [
{
"internalType": "bool",
"name": "verified",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6080346200017a57601f6200108238819003918201601f19168301916001600160401b038311848410176200017f578084926060946040528339810103126200017a576200004d8162000195565b90620000936200006e6040620000666020850162000195565b930162000195565b926127106004556200008081620001aa565b506200008c816200022a565b50620002cc565b506001600160a01b039081169182156200012a5716908115620000da5760018060a01b0319908160015416176001556002541617600255604051610cf890816200036a8239f35b60405162461bcd60e51b815260206004820152602260248201527f57546f6b656e5265736572766556657269666965723a207a65726f206f7261636044820152616c6560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602260248201527f57546f6b656e5265736572766556657269666965723a207a65726f2062726964604482015261676560f01b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200017a57565b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff166200022657818052816020526040822081835260205260408220600160ff198254161790553391600080516020620010628339815191528180a4600190565b5090565b6001600160a01b031660008181527f1da0b5176dfe03406af5a6eed66ca01dda9b45ac4da671c3fa379cb93717ef8160205260408120549091907f0ce23c3e399818cfee81a7ab0880f714e53d7672b08df0fa62f2843416e1ea099060ff16620002c757808352826020526040832082845260205260408320600160ff1982541617905560008051602062001062833981519152339380a4600190565b505090565b6001600160a01b031660008181527fee57cd81e84075558e8fcc182a1f4393f91fc97f963a136e66b7f949a62f319f60205260408120549091907f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060ff16620002c757808352826020526040832082845260205260408320600160ff1982541617905560008051602062001062833981519152339380a460019056fe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146109ae5750816309824a80146108a55781631baaaffe1461087a578163248a9ca3146108505781632ca6be1f146107405781632e2ad079146107225781632f2ff15d146106f85781633578528d1461063957816336568abe146105f357816368fa5844146105ca5781636efe2c3d1461050e57816377860cdd146104a4578163816bc90b1461047b57816391d1485414610435578163a217fddf1461041a578163b8724996146101f8578163d547741f146101b557508063e7705db61461017b578063ec867b271461013e5763f5b541a61461010157600080fd5b3461013a578160031936011261013a57602090517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b5080fd5b503461013a57602036600319011261013a5760209160ff9082906001600160a01b03610168610a01565b1681526003855220541690519015158152f35b503461013a578160031936011261013a57602090517f0ce23c3e399818cfee81a7ab0880f714e53d7672b08df0fa62f2843416e1ea098152f35b919050346101f457806003193601126101f4576101f091356101eb60016101da610a1c565b938387528660205286200154610ba9565b610c4d565b5080f35b8280fd5b919050346101f457806003193601126101f457610213610a01565b6001600160a01b039081168085526003602090815283862054909591926024359160ff161561040a57845163e102e5e360e01b81529083828881885afa9182156104005761029e939289898994829489946103d7575b509060449160025416938651988996879586946331c1153760e21b865285015282519283918260248701528686019101610a6a565b601f01601f191681010301915afa9182156103cd57839261039e575b5084516318160ddd60e01b815287818881885afa93841561039357809461035e575b50506127106102f66102ee8386610b22565b885490610af9565b04821095861596610350575084519182526020820192909252604081019190915283151560608201527fc00efefb484738c5c17f845c5f9d6ba400f5ddb691d25c371826842a9196df1f9080608081015b0390a251908152f35b85516328b35f2160e01b8152fd5b909193508782813d831161038c575b6103778183610a32565b810103126103895750519138806102dc565b80fd5b503d61036d565b8651903d90823e3d90fd5b9091508481813d83116103c6575b6103b68183610a32565b810103126101f4575190386102ba565b503d6103ac565b85513d85823e3d90fd5b6044929194506103f8903d808c833e6103f08183610a32565b810190610a8d565b939091610269565b86513d86823e3d90fd5b845163394d39d560e21b81528690fd5b50503461013a578160031936011261013a5751908152602090f35b9050346101f457816003193601126101f4578160209360ff92610456610a1c565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b50503461013a578160031936011261013a5760025490516001600160a01b039091168152602090f35b50503461013a57602036600319011261013a577fd128f4457567637d4d9a19a54a44a6e47ba1ed0cc875b3cff7b762c8bb27b41660206104e2610a01565b6104ea610b2f565b6001600160a01b031680855260038252838520805460ff191690559251848152a280f35b919050346101f457806003193601126101f457610529610a01565b6001600160a01b031680845260036020908152828520549094906024359060ff16156105ba57835163fb13278b60e01b81529086828781875afa9182156103cd5783926105a3575084516318160ddd60e01b815287818881885afa93841561039357809461035e5750506127106102f66102ee8386610b22565b9091508681813d83116103c6576103b68183610a32565b5050505163394d39d560e21b8152fd5b50503461013a578160031936011261013a5760015490516001600160a01b039091168152602090f35b83833461013a578060031936011261013a5761060d610a1c565b90336001600160a01b0383160361062a57506101f0919235610c4d565b5163334bd91960e11b81528390fd5b919050346101f45760803660031901126101f457610655610a01565b6024359060443591606435958187018097116106e5575061271061067a865488610af9565b048310948515956106d757508351928352602083810196909652604083015283151560608301526001600160a01b0316907fc00efefb484738c5c17f845c5f9d6ba400f5ddb691d25c371826842a9196df1f908060808101610347565b84516328b35f2160e01b8152fd5b634e487b7160e01b815260118652602490fd5b919050346101f457806003193601126101f4576101f0913561071d60016101da610a1c565b610bcf565b9050346101f457826003193601126101f45760209250549051908152f35b9050346101f45760203660031901126101f4578035918380528360205280842033855260205260ff818520541615610833576127108084116107e057831061078757505580f35b906020608492519162461bcd60e51b8352820152602d60248201527f57546f6b656e5265736572766556657269666965723a207468726573686f6c6460448201526c206d757374206265203130302560981b6064820152fd5b815162461bcd60e51b8152602081850152602760248201527f57546f6b656e5265736572766556657269666965723a207468726573686f6c64604482015266203e203130302560c81b6064820152608490fd5b9083604492519163e2517d3f60e01b835233908301526024820152fd5b9050346101f45760203660031901126101f457816020936001923581528085522001549051908152f35b50503461013a57602036600319011261013a5760209160ff9082906001600160a01b03610168610a01565b828434610389576020366003190112610389576108c0610a01565b6108c8610b2f565b6001600160a01b0316801561096157825163e102e5e360e01b815282818681855afa9081610947575b506109055750505163c1ab6dc160e01b8152fd5b7fd128f4457567637d4d9a19a54a44a6e47ba1ed0cc875b3cff7b762c8bb27b41660208483855260038252808520600160ff198254161790555160018152a280f35b61095a903d8086833e6103f08183610a32565b50856108f1565b825162461bcd60e51b8152602081860152602160248201527f57546f6b656e5265736572766556657269666965723a207a65726f20746f6b656044820152603760f91b6064820152608490fd5b8491346101f45760203660031901126101f4573563ffffffff60e01b81168091036101f45760209250637965db0b60e01b81149081156109f0575b5015158152f35b6301ffc9a760e01b149050836109e9565b600435906001600160a01b0382168203610a1757565b600080fd5b602435906001600160a01b0382168203610a1757565b90601f8019910116810190811067ffffffffffffffff821117610a5457604052565b634e487b7160e01b600052604160045260246000fd5b60005b838110610a7d5750506000910152565b8181015183820152602001610a6d565b602081830312610a1757805167ffffffffffffffff91828211610a1757019082601f83011215610a17578151908111610a545760405192610ad8601f8301601f191660200185610a32565b81845260208284010111610a1757610af69160208085019101610a6a565b90565b81810292918115918404141715610b0c57565b634e487b7160e01b600052601160045260246000fd5b91908203918211610b0c57565b3360009081527fee57cd81e84075558e8fcc182a1f4393f91fc97f963a136e66b7f949a62f319f60205260409020547f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060ff1615610b8b5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff6040600020541615610b8b5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541615600014610c4857808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416600014610c485780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a460019056fea26469706673582212204d13f1a74f18f04f7b5fbc4705698630a81abb9ab1d612eba1ff8c931f018a5b64736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
"deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146109ae5750816309824a80146108a55781631baaaffe1461087a578163248a9ca3146108505781632ca6be1f146107405781632e2ad079146107225781632f2ff15d146106f85781633578528d1461063957816336568abe146105f357816368fa5844146105ca5781636efe2c3d1461050e57816377860cdd146104a4578163816bc90b1461047b57816391d1485414610435578163a217fddf1461041a578163b8724996146101f8578163d547741f146101b557508063e7705db61461017b578063ec867b271461013e5763f5b541a61461010157600080fd5b3461013a578160031936011261013a57602090517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b5080fd5b503461013a57602036600319011261013a5760209160ff9082906001600160a01b03610168610a01565b1681526003855220541690519015158152f35b503461013a578160031936011261013a57602090517f0ce23c3e399818cfee81a7ab0880f714e53d7672b08df0fa62f2843416e1ea098152f35b919050346101f457806003193601126101f4576101f091356101eb60016101da610a1c565b938387528660205286200154610ba9565b610c4d565b5080f35b8280fd5b919050346101f457806003193601126101f457610213610a01565b6001600160a01b039081168085526003602090815283862054909591926024359160ff161561040a57845163e102e5e360e01b81529083828881885afa9182156104005761029e939289898994829489946103d7575b509060449160025416938651988996879586946331c1153760e21b865285015282519283918260248701528686019101610a6a565b601f01601f191681010301915afa9182156103cd57839261039e575b5084516318160ddd60e01b815287818881885afa93841561039357809461035e575b50506127106102f66102ee8386610b22565b885490610af9565b04821095861596610350575084519182526020820192909252604081019190915283151560608201527fc00efefb484738c5c17f845c5f9d6ba400f5ddb691d25c371826842a9196df1f9080608081015b0390a251908152f35b85516328b35f2160e01b8152fd5b909193508782813d831161038c575b6103778183610a32565b810103126103895750519138806102dc565b80fd5b503d61036d565b8651903d90823e3d90fd5b9091508481813d83116103c6575b6103b68183610a32565b810103126101f4575190386102ba565b503d6103ac565b85513d85823e3d90fd5b6044929194506103f8903d808c833e6103f08183610a32565b810190610a8d565b939091610269565b86513d86823e3d90fd5b845163394d39d560e21b81528690fd5b50503461013a578160031936011261013a5751908152602090f35b9050346101f457816003193601126101f4578160209360ff92610456610a1c565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b50503461013a578160031936011261013a5760025490516001600160a01b039091168152602090f35b50503461013a57602036600319011261013a577fd128f4457567637d4d9a19a54a44a6e47ba1ed0cc875b3cff7b762c8bb27b41660206104e2610a01565b6104ea610b2f565b6001600160a01b031680855260038252838520805460ff191690559251848152a280f35b919050346101f457806003193601126101f457610529610a01565b6001600160a01b031680845260036020908152828520549094906024359060ff16156105ba57835163fb13278b60e01b81529086828781875afa9182156103cd5783926105a3575084516318160ddd60e01b815287818881885afa93841561039357809461035e5750506127106102f66102ee8386610b22565b9091508681813d83116103c6576103b68183610a32565b5050505163394d39d560e21b8152fd5b50503461013a578160031936011261013a5760015490516001600160a01b039091168152602090f35b83833461013a578060031936011261013a5761060d610a1c565b90336001600160a01b0383160361062a57506101f0919235610c4d565b5163334bd91960e11b81528390fd5b919050346101f45760803660031901126101f457610655610a01565b6024359060443591606435958187018097116106e5575061271061067a865488610af9565b048310948515956106d757508351928352602083810196909652604083015283151560608301526001600160a01b0316907fc00efefb484738c5c17f845c5f9d6ba400f5ddb691d25c371826842a9196df1f908060808101610347565b84516328b35f2160e01b8152fd5b634e487b7160e01b815260118652602490fd5b919050346101f457806003193601126101f4576101f0913561071d60016101da610a1c565b610bcf565b9050346101f457826003193601126101f45760209250549051908152f35b9050346101f45760203660031901126101f4578035918380528360205280842033855260205260ff818520541615610833576127108084116107e057831061078757505580f35b906020608492519162461bcd60e51b8352820152602d60248201527f57546f6b656e5265736572766556657269666965723a207468726573686f6c6460448201526c206d757374206265203130302560981b6064820152fd5b815162461bcd60e51b8152602081850152602760248201527f57546f6b656e5265736572766556657269666965723a207468726573686f6c64604482015266203e203130302560c81b6064820152608490fd5b9083604492519163e2517d3f60e01b835233908301526024820152fd5b9050346101f45760203660031901126101f457816020936001923581528085522001549051908152f35b50503461013a57602036600319011261013a5760209160ff9082906001600160a01b03610168610a01565b828434610389576020366003190112610389576108c0610a01565b6108c8610b2f565b6001600160a01b0316801561096157825163e102e5e360e01b815282818681855afa9081610947575b506109055750505163c1ab6dc160e01b8152fd5b7fd128f4457567637d4d9a19a54a44a6e47ba1ed0cc875b3cff7b762c8bb27b41660208483855260038252808520600160ff198254161790555160018152a280f35b61095a903d8086833e6103f08183610a32565b50856108f1565b825162461bcd60e51b8152602081860152602160248201527f57546f6b656e5265736572766556657269666965723a207a65726f20746f6b656044820152603760f91b6064820152608490fd5b8491346101f45760203660031901126101f4573563ffffffff60e01b81168091036101f45760209250637965db0b60e01b81149081156109f0575b5015158152f35b6301ffc9a760e01b149050836109e9565b600435906001600160a01b0382168203610a1757565b600080fd5b602435906001600160a01b0382168203610a1757565b90601f8019910116810190811067ffffffffffffffff821117610a5457604052565b634e487b7160e01b600052604160045260246000fd5b60005b838110610a7d5750506000910152565b8181015183820152602001610a6d565b602081830312610a1757805167ffffffffffffffff91828211610a1757019082601f83011215610a17578151908111610a545760405192610ad8601f8301601f191660200185610a32565b81845260208284010111610a1757610af69160208085019101610a6a565b90565b81810292918115918404141715610b0c57565b634e487b7160e01b600052601160045260246000fd5b91908203918211610b0c57565b3360009081527fee57cd81e84075558e8fcc182a1f4393f91fc97f963a136e66b7f949a62f319f60205260409020547f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060ff1615610b8b5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff6040600020541615610b8b5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541615600014610c4857808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416600014610c485780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a460019056fea26469706673582212204d13f1a74f18f04f7b5fbc4705698630a81abb9ab1d612eba1ff8c931f018a5b64736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}