diff --git a/deploy/deploy-FeeTaker-zksync.js b/deploy/deploy-FeeTaker-zksync.js index 13037cc8..4149f1dc 100644 --- a/deploy/deploy-FeeTaker-zksync.js +++ b/deploy/deploy-FeeTaker-zksync.js @@ -7,7 +7,7 @@ const WETH = { }; const ROUTER_V6_ADDR = '0x6fd4383cB451173D5f9304F041C7BCBf27d561fF'; -const ACCESS_TOKEN_ADDR = '0xC2c4fE863EC835D7DdbFE91Fe33cf1C7Df45Fa7C'; +const ACCESS_TOKEN_ADDR = '0x46B64318C4f764F6Fe81dFd1F26282A52E0f1680'; module.exports = async ({ deployments, getNamedAccounts }) => { const networkName = hre.network.name; diff --git a/deploy/deploy-FeeTaker.js b/deploy/deploy-FeeTaker.js index 1dbccbc8..fe665b28 100644 --- a/deploy/deploy-FeeTaker.js +++ b/deploy/deploy-FeeTaker.js @@ -16,11 +16,13 @@ const WETH = { 8217: '0xe4f05A66Ec68B54A58B17c22107b02e0232cC817', // Klaytn 8453: '0x4200000000000000000000000000000000000006', // Base 31337: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', // Hardhat + 59144: '0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f', // Linea }; const ROUTER_V6_ADDR = '0x111111125421ca6dc452d289314280a0f8842a65'; -const ACCESS_TOKEN_ADDR = '0xACCe550000159e70908C0499a1119D04e7039C28'; +const ACCESS_TOKEN_ADDR = '0xAccE550000863572B867E661647CD7D97b72C507'; +const create3Deployer = '0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65'; const FEE_TAKER_SALT = ethers.keccak256(ethers.toUtf8Bytes('FeeTaker')); module.exports = async ({ deployments, getNamedAccounts }) => { @@ -42,7 +44,7 @@ module.exports = async ({ deployments, getNamedAccounts }) => { await deployAndGetContractWithCreate3({ contractName: 'FeeTaker', constructorArgs: [ROUTER_V6_ADDR, ACCESS_TOKEN_ADDR, WETH[chainId], deployer], - create3Deployer: (await deployments.get('Create3Deployer')).address, + create3Deployer, salt: FEE_TAKER_SALT, deployments, }); diff --git a/deployments/arbitrum/FeeTaker.json b/deployments/arbitrum/FeeTaker.json new file mode 100644 index 00000000..b1c583b8 --- /dev/null +++ b/deployments/arbitrum/FeeTaker.json @@ -0,0 +1,484 @@ +{ + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "SafeTransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "postInteraction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "transactionHash": "0x7ade315a821a527384bc37e52226cb7508a160aabddc4aa6d3d8ad0ee0423636", + "receipt": { + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 2, + "gasUsed": "1924763", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000000000008000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x5a72422e21c765c8b73f8dd72c7ff13f3692f6c31cdc06aaf37e6a7a532d1bd2", + "transactionHash": "0x7ade315a821a527384bc37e52226cb7508a160aabddc4aa6d3d8ad0ee0423636", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0x5a72422e21c765c8b73f8dd72c7ff13f3692f6c31cdc06aaf37e6a7a532d1bd2", + "blockNumber": 301624873, + "data": "0x", + "index": 1, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0x7ade315a821a527384bc37e52226cb7508a160aabddc4aa6d3d8ad0ee0423636", + "transactionIndex": 2 + } + ], + "blockNumber": 301624873, + "cumulativeGasUsed": "2004770", + "status": 1 + }, + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 1, + "bytecode": "0x60e0346200011157601f6200177738819003918201601f19168301916001600160401b03831184841017620001155780849260809460405283398101031262000111576200004d8162000129565b60208201516001600160a01b0392909183831683036200011157836200008460606200007c6040860162000129565b940162000129565b168015620000f9575f80546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c05261163890816200013f8239608051816104b1015260a051816105fc015260c051816109860152f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b0382168203620001115756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033" +} \ No newline at end of file diff --git a/deployments/aurora/FeeTaker.json b/deployments/aurora/FeeTaker.json new file mode 100644 index 00000000..eb1b2307 --- /dev/null +++ b/deployments/aurora/FeeTaker.json @@ -0,0 +1,484 @@ +{ + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "SafeTransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "postInteraction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "transactionHash": "0x0b09a3e703007ecac9bd2fd85205cf232948352cea8df8db8a39c9c3a5580130", + "receipt": { + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 0, + "gasUsed": "1352434", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000000000008000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0xb1a2c9cc04ac9aafae5ed4bfe3fa90ecfda1809c37569c77be7da943c10699db", + "transactionHash": "0x0b09a3e703007ecac9bd2fd85205cf232948352cea8df8db8a39c9c3a5580130", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0xb1a2c9cc04ac9aafae5ed4bfe3fa90ecfda1809c37569c77be7da943c10699db", + "blockNumber": 138736308, + "data": "0x", + "index": 0, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0x0b09a3e703007ecac9bd2fd85205cf232948352cea8df8db8a39c9c3a5580130", + "transactionIndex": 0 + } + ], + "blockNumber": 138736308, + "cumulativeGasUsed": "0", + "status": 1 + }, + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 1, + "bytecode": "0x60e0346200011157601f6200177738819003918201601f19168301916001600160401b03831184841017620001155780849260809460405283398101031262000111576200004d8162000129565b60208201516001600160a01b0392909183831683036200011157836200008460606200007c6040860162000129565b940162000129565b168015620000f9575f80546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c05261163890816200013f8239608051816104b1015260a051816105fc015260c051816109860152f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b0382168203620001115756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033" +} \ No newline at end of file diff --git a/deployments/avax/FeeTaker.json b/deployments/avax/FeeTaker.json new file mode 100644 index 00000000..c289ea74 --- /dev/null +++ b/deployments/avax/FeeTaker.json @@ -0,0 +1,484 @@ +{ + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "SafeTransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "postInteraction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "transactionHash": "0xe97ead534d6cbf7af898d7f19af91d9cc31094b237b74de1d202f985860a6f6d", + "receipt": { + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 9, + "gasUsed": "1390501", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000000000008000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0xb6ec46a5b845e3d5b140a728eb8591ce835f1ef881b30e7b3742720ed6ea137c", + "transactionHash": "0xe97ead534d6cbf7af898d7f19af91d9cc31094b237b74de1d202f985860a6f6d", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0xb6ec46a5b845e3d5b140a728eb8591ce835f1ef881b30e7b3742720ed6ea137c", + "blockNumber": 56676812, + "data": "0x", + "index": 53, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0xe97ead534d6cbf7af898d7f19af91d9cc31094b237b74de1d202f985860a6f6d", + "transactionIndex": 9 + } + ], + "blockNumber": 56676812, + "cumulativeGasUsed": "5017124", + "status": 1 + }, + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 1, + "bytecode": "0x60e0346200011357601f6200183038819003918201601f19168301916001600160401b03831184841017620001185780849260809460405283398101031262000113576200004d816200012e565b60208201516001600160a01b0392909183831683036200011357836200008460606200007c604086016200012e565b94016200012e565b168015620000fa57600080546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c0526116ec9081620001448239608051816104bb015260a05181610607015260c0518161099a0152f35b604051631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001135756fe6080604052600436101561001b575b361561001957600080fd5b005b6000803560e01c80631d9671c314610b02578063462ebde214610401578063715018a61461036457806378e3214f1461023e5780638da5cb5b146101ed578063d7ff8a80146101605763f2fde38b14610074575061000e565b3461015d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff808216809203610158576100cd610d1a565b811561012757600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b600080fd5b80fd5b503461015d5761019361018561017536610b7d565b849394919a98999295979a610f8c565b99945097929b9150996115f4565b91620186a0910181016101a681846113fa565b9209151581018091116101be57602090604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461015d5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff811690818103610360576024359161029c610d1a565b826102a5578380f35b8015908115610342575b5015610331575080471061030757818080809333611388f16102cf610d6b565b50156102dd575b3880808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b9061033d913390611517565b6102d6565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee915014386102af565b8280fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5761039b610d1a565b600073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461015d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e08112610afe576101001361015d576101043567ffffffffffffffff8111610afe5761045c903690600401610b4f565b9073ffffffffffffffffffffffffffffffffffffffff610144351661014435036103605767ffffffffffffffff6101c43511610360576104a2366101c435600401610b4f565b909173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610ad4578115610aa75781601511610813578160291161081357602983017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f01000000000000000000000000000000000000000000000000000000000000008087351614610a12575b5090610573916101443591610f8c565b9594979397969290961580610937575b61090d576105b6886105ac6105a5620186a0868f9d0101809361018435611483565b9384611362565b9361018435611483565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108cf5773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168114806108a3575b15610847575061065893829182610831575b828203610817575b500390610184350303906115b1565b6014821015610665578380f35b61066f8284610c27565b60601c918060141161081357823b15610813577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec956107ac86926107309660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610cdb565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610cdb565b03925af18015610808576107c3575b818180808380f35b67ffffffffffffffff81116107db57604052386107bb565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d84823e3d90fd5b8480fd5b61082b90601584840391013560601c6115b1565b38610649565b61084283600183013560601c6115b1565b610641565b929161086c9481928261088c575b828203610871575b50039061018435030391611517565b610658565b61088690601584840391013560601c87611517565b3861085d565b61089e83600183013560601c88611517565b610855565b507e8000000000000000000000000000000000000000000000000000000000000060e43516151561062f565b5092955050819003016108e3578492610658565b60046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a07578b916109d1575b5015610583565b90506020813d6020116109ff575b816109ec60209383610c6b565b810103126109fb5751386109ca565b8a80fd5b3d91506109df565b6040513d8d823e3d90fd5b9350610a469150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298501610c27565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd78101601411610aa357603d8401907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610573610563565b8580fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b503461015d576020610b47610b3e620186a0610b30610b2036610b7d565b849394919b98999295979b610f8c565b99945097929c9150996111a8565b920101906112a3565b604051908152f35b9181601f840112156101585782359167ffffffffffffffff8311610158576020838186019501011161015857565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015857610100136101585760049167ffffffffffffffff90610104358281116101585781610bd791600401610b4f565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101585792610164359261018435926101a43591821161015857610c2391600401610b4f565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c5c57505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610cac57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff600054163303610d3b57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610dc4573d9067ffffffffffffffff8211610cac5760405191610db860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c6b565b82523d6000602084013e565b606090565b9291909160009369ffffffffffffffffffff60009316908415610e9e57803560f81c90600a82600a02600194818601808711610e9a578910610e96578184018601988290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019793849087015b868610610e48575050505050505050565b838511610afe57803560b01c8314610e8a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff685899201940195019492610e37565b50959950505050505050565b8780fd5b8880fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610f0057505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610f4457505050565b60010360031b82901b16169150565b8115610f5d570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b91610f978284610ecb565b60f01c928260021161015857610fd27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610f0f565b60f81c92606484116110d25780600311610158576110157ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610ecb565b60f01c9281600511610158576110507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610f0f565b60f81c92606484116110a857826006116101585760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa61109394019101610dc9565b919690928761109f5750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111a59a989599979461117d9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610cdb565b97610120860152166101408401526101608301526101808201526101a0818503910152610cdb565b90565b9097949693959492939060148410611287576111c48483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b03915afa90811561127b5760009161124c575090565b90506020813d602011611273575b8161126760209383610c6b565b81010312610158575190565b3d915061125a565b6040513d6000823e3d90fd5b96955050505050506111a5925060a060c0830135920135611483565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b5050906111a59250610f53565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff838209908280831092039180830392146113f05781606411156113dd577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b7160005260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8184099082808310920391808303921461147757620186a090828211156113dd577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b916044602092600092604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af1908161158e575b501561156457565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156115a95750600160005114601f3d11165b3861155c565b3b15156115a3565b600080809381935af16115c2610d6b565b50156115ca57565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b9097949693959492939060148410611682576116108483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b975050505050505060a060c0830135920135906116a0828285611483565b928215610f5d5709151581018091116101be579056fea2646970667358221220df294adbee57dd587581109e214d3d14e41fd0be9d81df6f6d4f8d1e8dc7078864736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001b575b361561001957600080fd5b005b6000803560e01c80631d9671c314610b02578063462ebde214610401578063715018a61461036457806378e3214f1461023e5780638da5cb5b146101ed578063d7ff8a80146101605763f2fde38b14610074575061000e565b3461015d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff808216809203610158576100cd610d1a565b811561012757600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b600080fd5b80fd5b503461015d5761019361018561017536610b7d565b849394919a98999295979a610f8c565b99945097929b9150996115f4565b91620186a0910181016101a681846113fa565b9209151581018091116101be57602090604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461015d5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff811690818103610360576024359161029c610d1a565b826102a5578380f35b8015908115610342575b5015610331575080471061030757818080809333611388f16102cf610d6b565b50156102dd575b3880808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b9061033d913390611517565b6102d6565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee915014386102af565b8280fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5761039b610d1a565b600073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461015d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e08112610afe576101001361015d576101043567ffffffffffffffff8111610afe5761045c903690600401610b4f565b9073ffffffffffffffffffffffffffffffffffffffff610144351661014435036103605767ffffffffffffffff6101c43511610360576104a2366101c435600401610b4f565b909173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610ad4578115610aa75781601511610813578160291161081357602983017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f01000000000000000000000000000000000000000000000000000000000000008087351614610a12575b5090610573916101443591610f8c565b9594979397969290961580610937575b61090d576105b6886105ac6105a5620186a0868f9d0101809361018435611483565b9384611362565b9361018435611483565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108cf5773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168114806108a3575b15610847575061065893829182610831575b828203610817575b500390610184350303906115b1565b6014821015610665578380f35b61066f8284610c27565b60601c918060141161081357823b15610813577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec956107ac86926107309660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610cdb565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610cdb565b03925af18015610808576107c3575b818180808380f35b67ffffffffffffffff81116107db57604052386107bb565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d84823e3d90fd5b8480fd5b61082b90601584840391013560601c6115b1565b38610649565b61084283600183013560601c6115b1565b610641565b929161086c9481928261088c575b828203610871575b50039061018435030391611517565b610658565b61088690601584840391013560601c87611517565b3861085d565b61089e83600183013560601c88611517565b610855565b507e8000000000000000000000000000000000000000000000000000000000000060e43516151561062f565b5092955050819003016108e3578492610658565b60046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a07578b916109d1575b5015610583565b90506020813d6020116109ff575b816109ec60209383610c6b565b810103126109fb5751386109ca565b8a80fd5b3d91506109df565b6040513d8d823e3d90fd5b9350610a469150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298501610c27565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd78101601411610aa357603d8401907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610573610563565b8580fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b503461015d576020610b47610b3e620186a0610b30610b2036610b7d565b849394919b98999295979b610f8c565b99945097929c9150996111a8565b920101906112a3565b604051908152f35b9181601f840112156101585782359167ffffffffffffffff8311610158576020838186019501011161015857565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015857610100136101585760049167ffffffffffffffff90610104358281116101585781610bd791600401610b4f565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101585792610164359261018435926101a43591821161015857610c2391600401610b4f565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c5c57505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610cac57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff600054163303610d3b57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610dc4573d9067ffffffffffffffff8211610cac5760405191610db860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c6b565b82523d6000602084013e565b606090565b9291909160009369ffffffffffffffffffff60009316908415610e9e57803560f81c90600a82600a02600194818601808711610e9a578910610e96578184018601988290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019793849087015b868610610e48575050505050505050565b838511610afe57803560b01c8314610e8a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff685899201940195019492610e37565b50959950505050505050565b8780fd5b8880fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610f0057505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610f4457505050565b60010360031b82901b16169150565b8115610f5d570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b91610f978284610ecb565b60f01c928260021161015857610fd27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610f0f565b60f81c92606484116110d25780600311610158576110157ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610ecb565b60f01c9281600511610158576110507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610f0f565b60f81c92606484116110a857826006116101585760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa61109394019101610dc9565b919690928761109f5750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111a59a989599979461117d9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610cdb565b97610120860152166101408401526101608301526101808201526101a0818503910152610cdb565b90565b9097949693959492939060148410611287576111c48483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b03915afa90811561127b5760009161124c575090565b90506020813d602011611273575b8161126760209383610c6b565b81010312610158575190565b3d915061125a565b6040513d6000823e3d90fd5b96955050505050506111a5925060a060c0830135920135611483565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b5050906111a59250610f53565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff838209908280831092039180830392146113f05781606411156113dd577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b7160005260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8184099082808310920391808303921461147757620186a090828211156113dd577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b916044602092600092604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af1908161158e575b501561156457565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156115a95750600160005114601f3d11165b3861155c565b3b15156115a3565b600080809381935af16115c2610d6b565b50156115ca57565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b9097949693959492939060148410611682576116108483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b975050505050505060a060c0830135920135906116a0828285611483565b928215610f5d5709151581018091116101be579056fea2646970667358221220df294adbee57dd587581109e214d3d14e41fd0be9d81df6f6d4f8d1e8dc7078864736f6c63430008170033" +} \ No newline at end of file diff --git a/deployments/base/FeeTaker.json b/deployments/base/FeeTaker.json new file mode 100644 index 00000000..a0c18017 --- /dev/null +++ b/deployments/base/FeeTaker.json @@ -0,0 +1,484 @@ +{ + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "SafeTransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "postInteraction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "transactionHash": "0xeaf46697940a7181d1c470577b073be1091a3d66895b8b0a80780c7c701cbd2a", + "receipt": { + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 88, + "gasUsed": "1352218", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000000000008000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0xecfbf253069eacbd90e99ce24276a4cff759bf58a3453a84bddfae10cfe33739", + "transactionHash": "0xeaf46697940a7181d1c470577b073be1091a3d66895b8b0a80780c7c701cbd2a", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0xecfbf253069eacbd90e99ce24276a4cff759bf58a3453a84bddfae10cfe33739", + "blockNumber": 25825644, + "data": "0x", + "index": 187, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0xeaf46697940a7181d1c470577b073be1091a3d66895b8b0a80780c7c701cbd2a", + "transactionIndex": 88 + } + ], + "blockNumber": 25825644, + "cumulativeGasUsed": "22481727", + "status": 1 + }, + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0x4200000000000000000000000000000000000006", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 1, + "bytecode": "0x60e0346200011157601f6200177738819003918201601f19168301916001600160401b03831184841017620001155780849260809460405283398101031262000111576200004d8162000129565b60208201516001600160a01b0392909183831683036200011157836200008460606200007c6040860162000129565b940162000129565b168015620000f9575f80546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c05261163890816200013f8239608051816104b1015260a051816105fc015260c051816109860152f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b0382168203620001115756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033" +} \ No newline at end of file diff --git a/deployments/bsc/FeeTaker.json b/deployments/bsc/FeeTaker.json new file mode 100644 index 00000000..0aac849f --- /dev/null +++ b/deployments/bsc/FeeTaker.json @@ -0,0 +1,484 @@ +{ + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "SafeTransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "postInteraction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "transactionHash": "0x0bbd08e139fcac97c5feb1b7c4ad799ccdeb99c8b199cd6b1e79a8f5ebf58799", + "receipt": { + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 56, + "gasUsed": "1352434", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000000000008000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x65ccee10c424878cf59acf34dc07650554884bb5c328a225dbdaa94895821f93", + "transactionHash": "0x0bbd08e139fcac97c5feb1b7c4ad799ccdeb99c8b199cd6b1e79a8f5ebf58799", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0x65ccee10c424878cf59acf34dc07650554884bb5c328a225dbdaa94895821f93", + "blockNumber": 46286519, + "data": "0x", + "index": 141, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0x0bbd08e139fcac97c5feb1b7c4ad799ccdeb99c8b199cd6b1e79a8f5ebf58799", + "transactionIndex": 56 + } + ], + "blockNumber": 46286519, + "cumulativeGasUsed": "7677635", + "status": 1 + }, + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 2, + "bytecode": "0x60e0346200011157601f6200177738819003918201601f19168301916001600160401b03831184841017620001155780849260809460405283398101031262000111576200004d8162000129565b60208201516001600160a01b0392909183831683036200011157836200008460606200007c6040860162000129565b940162000129565b168015620000f9575f80546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c05261163890816200013f8239608051816104b1015260a051816105fc015260c051816109860152f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b0382168203620001115756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033" +} \ No newline at end of file diff --git a/deployments/fantom/FeeTaker.json b/deployments/fantom/FeeTaker.json new file mode 100644 index 00000000..a04a3546 --- /dev/null +++ b/deployments/fantom/FeeTaker.json @@ -0,0 +1,484 @@ +{ + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "SafeTransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "postInteraction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "transactionHash": "0xc29fc00a7b29d0d4cd157832092d3ddf6b9f9ea4e6797aea98c45b768519c4c5", + "receipt": { + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 9, + "gasUsed": "1393464", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000000000008000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x00050c49000010f5a654250a53760f7c5744b15f6577315658db23439cd9ab41", + "transactionHash": "0xc29fc00a7b29d0d4cd157832092d3ddf6b9f9ea4e6797aea98c45b768519c4c5", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0x00050c49000010f5a654250a53760f7c5744b15f6577315658db23439cd9ab41", + "blockNumber": 103898719, + "data": "0x", + "index": 0, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0xc29fc00a7b29d0d4cd157832092d3ddf6b9f9ea4e6797aea98c45b768519c4c5", + "transactionIndex": 9 + } + ], + "blockNumber": 103898719, + "cumulativeGasUsed": "2824138", + "status": 1 + }, + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 1, + "bytecode": "0x60e0346200011357601f6200183038819003918201601f19168301916001600160401b03831184841017620001185780849260809460405283398101031262000113576200004d816200012e565b60208201516001600160a01b0392909183831683036200011357836200008460606200007c604086016200012e565b94016200012e565b168015620000fa57600080546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c0526116ec9081620001448239608051816104bb015260a05181610607015260c0518161099a0152f35b604051631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001135756fe6080604052600436101561001b575b361561001957600080fd5b005b6000803560e01c80631d9671c314610b02578063462ebde214610401578063715018a61461036457806378e3214f1461023e5780638da5cb5b146101ed578063d7ff8a80146101605763f2fde38b14610074575061000e565b3461015d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff808216809203610158576100cd610d1a565b811561012757600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b600080fd5b80fd5b503461015d5761019361018561017536610b7d565b849394919a98999295979a610f8c565b99945097929b9150996115f4565b91620186a0910181016101a681846113fa565b9209151581018091116101be57602090604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461015d5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff811690818103610360576024359161029c610d1a565b826102a5578380f35b8015908115610342575b5015610331575080471061030757818080809333611388f16102cf610d6b565b50156102dd575b3880808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b9061033d913390611517565b6102d6565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee915014386102af565b8280fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5761039b610d1a565b600073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461015d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e08112610afe576101001361015d576101043567ffffffffffffffff8111610afe5761045c903690600401610b4f565b9073ffffffffffffffffffffffffffffffffffffffff610144351661014435036103605767ffffffffffffffff6101c43511610360576104a2366101c435600401610b4f565b909173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610ad4578115610aa75781601511610813578160291161081357602983017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f01000000000000000000000000000000000000000000000000000000000000008087351614610a12575b5090610573916101443591610f8c565b9594979397969290961580610937575b61090d576105b6886105ac6105a5620186a0868f9d0101809361018435611483565b9384611362565b9361018435611483565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108cf5773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168114806108a3575b15610847575061065893829182610831575b828203610817575b500390610184350303906115b1565b6014821015610665578380f35b61066f8284610c27565b60601c918060141161081357823b15610813577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec956107ac86926107309660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610cdb565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610cdb565b03925af18015610808576107c3575b818180808380f35b67ffffffffffffffff81116107db57604052386107bb565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d84823e3d90fd5b8480fd5b61082b90601584840391013560601c6115b1565b38610649565b61084283600183013560601c6115b1565b610641565b929161086c9481928261088c575b828203610871575b50039061018435030391611517565b610658565b61088690601584840391013560601c87611517565b3861085d565b61089e83600183013560601c88611517565b610855565b507e8000000000000000000000000000000000000000000000000000000000000060e43516151561062f565b5092955050819003016108e3578492610658565b60046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a07578b916109d1575b5015610583565b90506020813d6020116109ff575b816109ec60209383610c6b565b810103126109fb5751386109ca565b8a80fd5b3d91506109df565b6040513d8d823e3d90fd5b9350610a469150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298501610c27565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd78101601411610aa357603d8401907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610573610563565b8580fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b503461015d576020610b47610b3e620186a0610b30610b2036610b7d565b849394919b98999295979b610f8c565b99945097929c9150996111a8565b920101906112a3565b604051908152f35b9181601f840112156101585782359167ffffffffffffffff8311610158576020838186019501011161015857565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015857610100136101585760049167ffffffffffffffff90610104358281116101585781610bd791600401610b4f565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101585792610164359261018435926101a43591821161015857610c2391600401610b4f565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c5c57505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610cac57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff600054163303610d3b57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610dc4573d9067ffffffffffffffff8211610cac5760405191610db860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c6b565b82523d6000602084013e565b606090565b9291909160009369ffffffffffffffffffff60009316908415610e9e57803560f81c90600a82600a02600194818601808711610e9a578910610e96578184018601988290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019793849087015b868610610e48575050505050505050565b838511610afe57803560b01c8314610e8a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff685899201940195019492610e37565b50959950505050505050565b8780fd5b8880fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610f0057505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610f4457505050565b60010360031b82901b16169150565b8115610f5d570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b91610f978284610ecb565b60f01c928260021161015857610fd27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610f0f565b60f81c92606484116110d25780600311610158576110157ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610ecb565b60f01c9281600511610158576110507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610f0f565b60f81c92606484116110a857826006116101585760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa61109394019101610dc9565b919690928761109f5750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111a59a989599979461117d9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610cdb565b97610120860152166101408401526101608301526101808201526101a0818503910152610cdb565b90565b9097949693959492939060148410611287576111c48483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b03915afa90811561127b5760009161124c575090565b90506020813d602011611273575b8161126760209383610c6b565b81010312610158575190565b3d915061125a565b6040513d6000823e3d90fd5b96955050505050506111a5925060a060c0830135920135611483565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b5050906111a59250610f53565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff838209908280831092039180830392146113f05781606411156113dd577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b7160005260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8184099082808310920391808303921461147757620186a090828211156113dd577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b916044602092600092604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af1908161158e575b501561156457565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156115a95750600160005114601f3d11165b3861155c565b3b15156115a3565b600080809381935af16115c2610d6b565b50156115ca57565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b9097949693959492939060148410611682576116108483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b975050505050505060a060c0830135920135906116a0828285611483565b928215610f5d5709151581018091116101be579056fea2646970667358221220df294adbee57dd587581109e214d3d14e41fd0be9d81df6f6d4f8d1e8dc7078864736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001b575b361561001957600080fd5b005b6000803560e01c80631d9671c314610b02578063462ebde214610401578063715018a61461036457806378e3214f1461023e5780638da5cb5b146101ed578063d7ff8a80146101605763f2fde38b14610074575061000e565b3461015d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff808216809203610158576100cd610d1a565b811561012757600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b600080fd5b80fd5b503461015d5761019361018561017536610b7d565b849394919a98999295979a610f8c565b99945097929b9150996115f4565b91620186a0910181016101a681846113fa565b9209151581018091116101be57602090604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461015d5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff811690818103610360576024359161029c610d1a565b826102a5578380f35b8015908115610342575b5015610331575080471061030757818080809333611388f16102cf610d6b565b50156102dd575b3880808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b9061033d913390611517565b6102d6565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee915014386102af565b8280fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5761039b610d1a565b600073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461015d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e08112610afe576101001361015d576101043567ffffffffffffffff8111610afe5761045c903690600401610b4f565b9073ffffffffffffffffffffffffffffffffffffffff610144351661014435036103605767ffffffffffffffff6101c43511610360576104a2366101c435600401610b4f565b909173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610ad4578115610aa75781601511610813578160291161081357602983017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f01000000000000000000000000000000000000000000000000000000000000008087351614610a12575b5090610573916101443591610f8c565b9594979397969290961580610937575b61090d576105b6886105ac6105a5620186a0868f9d0101809361018435611483565b9384611362565b9361018435611483565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108cf5773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168114806108a3575b15610847575061065893829182610831575b828203610817575b500390610184350303906115b1565b6014821015610665578380f35b61066f8284610c27565b60601c918060141161081357823b15610813577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec956107ac86926107309660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610cdb565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610cdb565b03925af18015610808576107c3575b818180808380f35b67ffffffffffffffff81116107db57604052386107bb565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d84823e3d90fd5b8480fd5b61082b90601584840391013560601c6115b1565b38610649565b61084283600183013560601c6115b1565b610641565b929161086c9481928261088c575b828203610871575b50039061018435030391611517565b610658565b61088690601584840391013560601c87611517565b3861085d565b61089e83600183013560601c88611517565b610855565b507e8000000000000000000000000000000000000000000000000000000000000060e43516151561062f565b5092955050819003016108e3578492610658565b60046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a07578b916109d1575b5015610583565b90506020813d6020116109ff575b816109ec60209383610c6b565b810103126109fb5751386109ca565b8a80fd5b3d91506109df565b6040513d8d823e3d90fd5b9350610a469150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298501610c27565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd78101601411610aa357603d8401907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610573610563565b8580fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b503461015d576020610b47610b3e620186a0610b30610b2036610b7d565b849394919b98999295979b610f8c565b99945097929c9150996111a8565b920101906112a3565b604051908152f35b9181601f840112156101585782359167ffffffffffffffff8311610158576020838186019501011161015857565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015857610100136101585760049167ffffffffffffffff90610104358281116101585781610bd791600401610b4f565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101585792610164359261018435926101a43591821161015857610c2391600401610b4f565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c5c57505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610cac57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff600054163303610d3b57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610dc4573d9067ffffffffffffffff8211610cac5760405191610db860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c6b565b82523d6000602084013e565b606090565b9291909160009369ffffffffffffffffffff60009316908415610e9e57803560f81c90600a82600a02600194818601808711610e9a578910610e96578184018601988290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019793849087015b868610610e48575050505050505050565b838511610afe57803560b01c8314610e8a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff685899201940195019492610e37565b50959950505050505050565b8780fd5b8880fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610f0057505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610f4457505050565b60010360031b82901b16169150565b8115610f5d570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b91610f978284610ecb565b60f01c928260021161015857610fd27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610f0f565b60f81c92606484116110d25780600311610158576110157ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610ecb565b60f01c9281600511610158576110507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610f0f565b60f81c92606484116110a857826006116101585760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa61109394019101610dc9565b919690928761109f5750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111a59a989599979461117d9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610cdb565b97610120860152166101408401526101608301526101808201526101a0818503910152610cdb565b90565b9097949693959492939060148410611287576111c48483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b03915afa90811561127b5760009161124c575090565b90506020813d602011611273575b8161126760209383610c6b565b81010312610158575190565b3d915061125a565b6040513d6000823e3d90fd5b96955050505050506111a5925060a060c0830135920135611483565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b5050906111a59250610f53565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff838209908280831092039180830392146113f05781606411156113dd577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b7160005260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8184099082808310920391808303921461147757620186a090828211156113dd577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b916044602092600092604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af1908161158e575b501561156457565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156115a95750600160005114601f3d11165b3861155c565b3b15156115a3565b600080809381935af16115c2610d6b565b50156115ca57565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b9097949693959492939060148410611682576116108483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b975050505050505060a060c0830135920135906116a0828285611483565b928215610f5d5709151581018091116101be579056fea2646970667358221220df294adbee57dd587581109e214d3d14e41fd0be9d81df6f6d4f8d1e8dc7078864736f6c63430008170033" +} \ No newline at end of file diff --git a/deployments/klaytn/FeeTaker.json b/deployments/klaytn/FeeTaker.json new file mode 100644 index 00000000..1c234d22 --- /dev/null +++ b/deployments/klaytn/FeeTaker.json @@ -0,0 +1,484 @@ +{ + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "SafeTransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "postInteraction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "transactionHash": "0xae017681c87a5e750d334c8f2a6be3cfd053ffc3dcc5decb6a06d2159c987e85", + "receipt": { + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 8, + "gasUsed": "1944061", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000000000008000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x55097adbc22149ec1442d4bffc223fab827560c0ad4aa2cd60aa3968ebe964eb", + "transactionHash": "0xae017681c87a5e750d334c8f2a6be3cfd053ffc3dcc5decb6a06d2159c987e85", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0x55097adbc22149ec1442d4bffc223fab827560c0ad4aa2cd60aa3968ebe964eb", + "blockNumber": 176416716, + "data": "0x", + "index": 0, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0xae017681c87a5e750d334c8f2a6be3cfd053ffc3dcc5decb6a06d2159c987e85", + "transactionIndex": 8 + } + ], + "blockNumber": 176416716, + "cumulativeGasUsed": "3918037", + "status": 1 + }, + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0xe4f05A66Ec68B54A58B17c22107b02e0232cC817", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 1, + "bytecode": "0x60e0346200011357601f6200183038819003918201601f19168301916001600160401b03831184841017620001185780849260809460405283398101031262000113576200004d816200012e565b60208201516001600160a01b0392909183831683036200011357836200008460606200007c604086016200012e565b94016200012e565b168015620000fa57600080546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c0526116ec9081620001448239608051816104bb015260a05181610607015260c0518161099a0152f35b604051631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001135756fe6080604052600436101561001b575b361561001957600080fd5b005b6000803560e01c80631d9671c314610b02578063462ebde214610401578063715018a61461036457806378e3214f1461023e5780638da5cb5b146101ed578063d7ff8a80146101605763f2fde38b14610074575061000e565b3461015d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff808216809203610158576100cd610d1a565b811561012757600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b600080fd5b80fd5b503461015d5761019361018561017536610b7d565b849394919a98999295979a610f8c565b99945097929b9150996115f4565b91620186a0910181016101a681846113fa565b9209151581018091116101be57602090604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461015d5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff811690818103610360576024359161029c610d1a565b826102a5578380f35b8015908115610342575b5015610331575080471061030757818080809333611388f16102cf610d6b565b50156102dd575b3880808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b9061033d913390611517565b6102d6565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee915014386102af565b8280fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5761039b610d1a565b600073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461015d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e08112610afe576101001361015d576101043567ffffffffffffffff8111610afe5761045c903690600401610b4f565b9073ffffffffffffffffffffffffffffffffffffffff610144351661014435036103605767ffffffffffffffff6101c43511610360576104a2366101c435600401610b4f565b909173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610ad4578115610aa75781601511610813578160291161081357602983017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f01000000000000000000000000000000000000000000000000000000000000008087351614610a12575b5090610573916101443591610f8c565b9594979397969290961580610937575b61090d576105b6886105ac6105a5620186a0868f9d0101809361018435611483565b9384611362565b9361018435611483565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108cf5773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168114806108a3575b15610847575061065893829182610831575b828203610817575b500390610184350303906115b1565b6014821015610665578380f35b61066f8284610c27565b60601c918060141161081357823b15610813577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec956107ac86926107309660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610cdb565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610cdb565b03925af18015610808576107c3575b818180808380f35b67ffffffffffffffff81116107db57604052386107bb565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d84823e3d90fd5b8480fd5b61082b90601584840391013560601c6115b1565b38610649565b61084283600183013560601c6115b1565b610641565b929161086c9481928261088c575b828203610871575b50039061018435030391611517565b610658565b61088690601584840391013560601c87611517565b3861085d565b61089e83600183013560601c88611517565b610855565b507e8000000000000000000000000000000000000000000000000000000000000060e43516151561062f565b5092955050819003016108e3578492610658565b60046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a07578b916109d1575b5015610583565b90506020813d6020116109ff575b816109ec60209383610c6b565b810103126109fb5751386109ca565b8a80fd5b3d91506109df565b6040513d8d823e3d90fd5b9350610a469150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298501610c27565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd78101601411610aa357603d8401907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610573610563565b8580fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b503461015d576020610b47610b3e620186a0610b30610b2036610b7d565b849394919b98999295979b610f8c565b99945097929c9150996111a8565b920101906112a3565b604051908152f35b9181601f840112156101585782359167ffffffffffffffff8311610158576020838186019501011161015857565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015857610100136101585760049167ffffffffffffffff90610104358281116101585781610bd791600401610b4f565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101585792610164359261018435926101a43591821161015857610c2391600401610b4f565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c5c57505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610cac57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff600054163303610d3b57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610dc4573d9067ffffffffffffffff8211610cac5760405191610db860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c6b565b82523d6000602084013e565b606090565b9291909160009369ffffffffffffffffffff60009316908415610e9e57803560f81c90600a82600a02600194818601808711610e9a578910610e96578184018601988290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019793849087015b868610610e48575050505050505050565b838511610afe57803560b01c8314610e8a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff685899201940195019492610e37565b50959950505050505050565b8780fd5b8880fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610f0057505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610f4457505050565b60010360031b82901b16169150565b8115610f5d570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b91610f978284610ecb565b60f01c928260021161015857610fd27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610f0f565b60f81c92606484116110d25780600311610158576110157ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610ecb565b60f01c9281600511610158576110507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610f0f565b60f81c92606484116110a857826006116101585760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa61109394019101610dc9565b919690928761109f5750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111a59a989599979461117d9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610cdb565b97610120860152166101408401526101608301526101808201526101a0818503910152610cdb565b90565b9097949693959492939060148410611287576111c48483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b03915afa90811561127b5760009161124c575090565b90506020813d602011611273575b8161126760209383610c6b565b81010312610158575190565b3d915061125a565b6040513d6000823e3d90fd5b96955050505050506111a5925060a060c0830135920135611483565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b5050906111a59250610f53565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff838209908280831092039180830392146113f05781606411156113dd577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b7160005260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8184099082808310920391808303921461147757620186a090828211156113dd577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b916044602092600092604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af1908161158e575b501561156457565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156115a95750600160005114601f3d11165b3861155c565b3b15156115a3565b600080809381935af16115c2610d6b565b50156115ca57565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b9097949693959492939060148410611682576116108483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b975050505050505060a060c0830135920135906116a0828285611483565b928215610f5d5709151581018091116101be579056fea2646970667358221220df294adbee57dd587581109e214d3d14e41fd0be9d81df6f6d4f8d1e8dc7078864736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001b575b361561001957600080fd5b005b6000803560e01c80631d9671c314610b02578063462ebde214610401578063715018a61461036457806378e3214f1461023e5780638da5cb5b146101ed578063d7ff8a80146101605763f2fde38b14610074575061000e565b3461015d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff808216809203610158576100cd610d1a565b811561012757600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b600080fd5b80fd5b503461015d5761019361018561017536610b7d565b849394919a98999295979a610f8c565b99945097929b9150996115f4565b91620186a0910181016101a681846113fa565b9209151581018091116101be57602090604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461015d5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff811690818103610360576024359161029c610d1a565b826102a5578380f35b8015908115610342575b5015610331575080471061030757818080809333611388f16102cf610d6b565b50156102dd575b3880808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b9061033d913390611517565b6102d6565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee915014386102af565b8280fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5761039b610d1a565b600073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461015d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e08112610afe576101001361015d576101043567ffffffffffffffff8111610afe5761045c903690600401610b4f565b9073ffffffffffffffffffffffffffffffffffffffff610144351661014435036103605767ffffffffffffffff6101c43511610360576104a2366101c435600401610b4f565b909173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610ad4578115610aa75781601511610813578160291161081357602983017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f01000000000000000000000000000000000000000000000000000000000000008087351614610a12575b5090610573916101443591610f8c565b9594979397969290961580610937575b61090d576105b6886105ac6105a5620186a0868f9d0101809361018435611483565b9384611362565b9361018435611483565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108cf5773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168114806108a3575b15610847575061065893829182610831575b828203610817575b500390610184350303906115b1565b6014821015610665578380f35b61066f8284610c27565b60601c918060141161081357823b15610813577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec956107ac86926107309660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610cdb565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610cdb565b03925af18015610808576107c3575b818180808380f35b67ffffffffffffffff81116107db57604052386107bb565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d84823e3d90fd5b8480fd5b61082b90601584840391013560601c6115b1565b38610649565b61084283600183013560601c6115b1565b610641565b929161086c9481928261088c575b828203610871575b50039061018435030391611517565b610658565b61088690601584840391013560601c87611517565b3861085d565b61089e83600183013560601c88611517565b610855565b507e8000000000000000000000000000000000000000000000000000000000000060e43516151561062f565b5092955050819003016108e3578492610658565b60046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a07578b916109d1575b5015610583565b90506020813d6020116109ff575b816109ec60209383610c6b565b810103126109fb5751386109ca565b8a80fd5b3d91506109df565b6040513d8d823e3d90fd5b9350610a469150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298501610c27565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd78101601411610aa357603d8401907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610573610563565b8580fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b503461015d576020610b47610b3e620186a0610b30610b2036610b7d565b849394919b98999295979b610f8c565b99945097929c9150996111a8565b920101906112a3565b604051908152f35b9181601f840112156101585782359167ffffffffffffffff8311610158576020838186019501011161015857565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015857610100136101585760049167ffffffffffffffff90610104358281116101585781610bd791600401610b4f565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101585792610164359261018435926101a43591821161015857610c2391600401610b4f565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c5c57505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610cac57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff600054163303610d3b57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610dc4573d9067ffffffffffffffff8211610cac5760405191610db860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c6b565b82523d6000602084013e565b606090565b9291909160009369ffffffffffffffffffff60009316908415610e9e57803560f81c90600a82600a02600194818601808711610e9a578910610e96578184018601988290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019793849087015b868610610e48575050505050505050565b838511610afe57803560b01c8314610e8a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff685899201940195019492610e37565b50959950505050505050565b8780fd5b8880fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610f0057505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610f4457505050565b60010360031b82901b16169150565b8115610f5d570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b91610f978284610ecb565b60f01c928260021161015857610fd27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610f0f565b60f81c92606484116110d25780600311610158576110157ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610ecb565b60f01c9281600511610158576110507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610f0f565b60f81c92606484116110a857826006116101585760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa61109394019101610dc9565b919690928761109f5750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111a59a989599979461117d9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610cdb565b97610120860152166101408401526101608301526101808201526101a0818503910152610cdb565b90565b9097949693959492939060148410611287576111c48483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b03915afa90811561127b5760009161124c575090565b90506020813d602011611273575b8161126760209383610c6b565b81010312610158575190565b3d915061125a565b6040513d6000823e3d90fd5b96955050505050506111a5925060a060c0830135920135611483565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b5050906111a59250610f53565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff838209908280831092039180830392146113f05781606411156113dd577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b7160005260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8184099082808310920391808303921461147757620186a090828211156113dd577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b916044602092600092604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af1908161158e575b501561156457565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156115a95750600160005114601f3d11165b3861155c565b3b15156115a3565b600080809381935af16115c2610d6b565b50156115ca57565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b9097949693959492939060148410611682576116108483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b975050505050505060a060c0830135920135906116a0828285611483565b928215610f5d5709151581018091116101be579056fea2646970667358221220df294adbee57dd587581109e214d3d14e41fd0be9d81df6f6d4f8d1e8dc7078864736f6c63430008170033" +} \ No newline at end of file diff --git a/deployments/linea/FeeTaker.json b/deployments/linea/FeeTaker.json new file mode 100644 index 00000000..210e2b87 --- /dev/null +++ b/deployments/linea/FeeTaker.json @@ -0,0 +1,484 @@ +{ + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "SafeTransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "postInteraction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "transactionHash": "0xb186106780e2c452efbf0bbe95163599d67a3846c5920e7efb67f720928ee43d", + "receipt": { + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 1, + "gasUsed": "1390103", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000000000008000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x43d482fc485924b77866f8a881ba4b40513d9a0729bce08a8828e28193fec62f", + "transactionHash": "0xb186106780e2c452efbf0bbe95163599d67a3846c5920e7efb67f720928ee43d", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0x43d482fc485924b77866f8a881ba4b40513d9a0729bce08a8828e28193fec62f", + "blockNumber": 15312044, + "data": "0x", + "index": 8, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0xb186106780e2c452efbf0bbe95163599d67a3846c5920e7efb67f720928ee43d", + "transactionIndex": 1 + } + ], + "blockNumber": 15312044, + "cumulativeGasUsed": "1660383", + "status": 1 + }, + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 1, + "bytecode": "0x60e0346200011357601f6200183038819003918201601f19168301916001600160401b03831184841017620001185780849260809460405283398101031262000113576200004d816200012e565b60208201516001600160a01b0392909183831683036200011357836200008460606200007c604086016200012e565b94016200012e565b168015620000fa57600080546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c0526116ec9081620001448239608051816104bb015260a05181610607015260c0518161099a0152f35b604051631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001135756fe6080604052600436101561001b575b361561001957600080fd5b005b6000803560e01c80631d9671c314610b02578063462ebde214610401578063715018a61461036457806378e3214f1461023e5780638da5cb5b146101ed578063d7ff8a80146101605763f2fde38b14610074575061000e565b3461015d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff808216809203610158576100cd610d1a565b811561012757600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b600080fd5b80fd5b503461015d5761019361018561017536610b7d565b849394919a98999295979a610f8c565b99945097929b9150996115f4565b91620186a0910181016101a681846113fa565b9209151581018091116101be57602090604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461015d5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff811690818103610360576024359161029c610d1a565b826102a5578380f35b8015908115610342575b5015610331575080471061030757818080809333611388f16102cf610d6b565b50156102dd575b3880808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b9061033d913390611517565b6102d6565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee915014386102af565b8280fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5761039b610d1a565b600073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461015d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e08112610afe576101001361015d576101043567ffffffffffffffff8111610afe5761045c903690600401610b4f565b9073ffffffffffffffffffffffffffffffffffffffff610144351661014435036103605767ffffffffffffffff6101c43511610360576104a2366101c435600401610b4f565b909173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610ad4578115610aa75781601511610813578160291161081357602983017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f01000000000000000000000000000000000000000000000000000000000000008087351614610a12575b5090610573916101443591610f8c565b9594979397969290961580610937575b61090d576105b6886105ac6105a5620186a0868f9d0101809361018435611483565b9384611362565b9361018435611483565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108cf5773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168114806108a3575b15610847575061065893829182610831575b828203610817575b500390610184350303906115b1565b6014821015610665578380f35b61066f8284610c27565b60601c918060141161081357823b15610813577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec956107ac86926107309660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610cdb565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610cdb565b03925af18015610808576107c3575b818180808380f35b67ffffffffffffffff81116107db57604052386107bb565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d84823e3d90fd5b8480fd5b61082b90601584840391013560601c6115b1565b38610649565b61084283600183013560601c6115b1565b610641565b929161086c9481928261088c575b828203610871575b50039061018435030391611517565b610658565b61088690601584840391013560601c87611517565b3861085d565b61089e83600183013560601c88611517565b610855565b507e8000000000000000000000000000000000000000000000000000000000000060e43516151561062f565b5092955050819003016108e3578492610658565b60046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a07578b916109d1575b5015610583565b90506020813d6020116109ff575b816109ec60209383610c6b565b810103126109fb5751386109ca565b8a80fd5b3d91506109df565b6040513d8d823e3d90fd5b9350610a469150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298501610c27565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd78101601411610aa357603d8401907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610573610563565b8580fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b503461015d576020610b47610b3e620186a0610b30610b2036610b7d565b849394919b98999295979b610f8c565b99945097929c9150996111a8565b920101906112a3565b604051908152f35b9181601f840112156101585782359167ffffffffffffffff8311610158576020838186019501011161015857565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015857610100136101585760049167ffffffffffffffff90610104358281116101585781610bd791600401610b4f565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101585792610164359261018435926101a43591821161015857610c2391600401610b4f565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c5c57505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610cac57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff600054163303610d3b57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610dc4573d9067ffffffffffffffff8211610cac5760405191610db860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c6b565b82523d6000602084013e565b606090565b9291909160009369ffffffffffffffffffff60009316908415610e9e57803560f81c90600a82600a02600194818601808711610e9a578910610e96578184018601988290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019793849087015b868610610e48575050505050505050565b838511610afe57803560b01c8314610e8a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff685899201940195019492610e37565b50959950505050505050565b8780fd5b8880fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610f0057505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610f4457505050565b60010360031b82901b16169150565b8115610f5d570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b91610f978284610ecb565b60f01c928260021161015857610fd27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610f0f565b60f81c92606484116110d25780600311610158576110157ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610ecb565b60f01c9281600511610158576110507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610f0f565b60f81c92606484116110a857826006116101585760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa61109394019101610dc9565b919690928761109f5750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111a59a989599979461117d9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610cdb565b97610120860152166101408401526101608301526101808201526101a0818503910152610cdb565b90565b9097949693959492939060148410611287576111c48483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b03915afa90811561127b5760009161124c575090565b90506020813d602011611273575b8161126760209383610c6b565b81010312610158575190565b3d915061125a565b6040513d6000823e3d90fd5b96955050505050506111a5925060a060c0830135920135611483565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b5050906111a59250610f53565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff838209908280831092039180830392146113f05781606411156113dd577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b7160005260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8184099082808310920391808303921461147757620186a090828211156113dd577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b916044602092600092604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af1908161158e575b501561156457565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156115a95750600160005114601f3d11165b3861155c565b3b15156115a3565b600080809381935af16115c2610d6b565b50156115ca57565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b9097949693959492939060148410611682576116108483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b975050505050505060a060c0830135920135906116a0828285611483565b928215610f5d5709151581018091116101be579056fea26469706673582212201563b484be625cd33db6ce289204a491a6985da5c3ca04b65773a53d46bf0f9a64736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001b575b361561001957600080fd5b005b6000803560e01c80631d9671c314610b02578063462ebde214610401578063715018a61461036457806378e3214f1461023e5780638da5cb5b146101ed578063d7ff8a80146101605763f2fde38b14610074575061000e565b3461015d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff808216809203610158576100cd610d1a565b811561012757600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b600080fd5b80fd5b503461015d5761019361018561017536610b7d565b849394919a98999295979a610f8c565b99945097929b9150996115f4565b91620186a0910181016101a681846113fa565b9209151581018091116101be57602090604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461015d5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5760043573ffffffffffffffffffffffffffffffffffffffff811690818103610360576024359161029c610d1a565b826102a5578380f35b8015908115610342575b5015610331575080471061030757818080809333611388f16102cf610d6b565b50156102dd575b3880808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b9061033d913390611517565b6102d6565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee915014386102af565b8280fd5b503461015d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015d5761039b610d1a565b600073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461015d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e08112610afe576101001361015d576101043567ffffffffffffffff8111610afe5761045c903690600401610b4f565b9073ffffffffffffffffffffffffffffffffffffffff610144351661014435036103605767ffffffffffffffff6101c43511610360576104a2366101c435600401610b4f565b909173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610ad4578115610aa75781601511610813578160291161081357602983017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f01000000000000000000000000000000000000000000000000000000000000008087351614610a12575b5090610573916101443591610f8c565b9594979397969290961580610937575b61090d576105b6886105ac6105a5620186a0868f9d0101809361018435611483565b9384611362565b9361018435611483565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108cf5773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168114806108a3575b15610847575061065893829182610831575b828203610817575b500390610184350303906115b1565b6014821015610665578380f35b61066f8284610c27565b60601c918060141161081357823b15610813577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec956107ac86926107309660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610cdb565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610cdb565b03925af18015610808576107c3575b818180808380f35b67ffffffffffffffff81116107db57604052386107bb565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d84823e3d90fd5b8480fd5b61082b90601584840391013560601c6115b1565b38610649565b61084283600183013560601c6115b1565b610641565b929161086c9481928261088c575b828203610871575b50039061018435030391611517565b610658565b61088690601584840391013560601c87611517565b3861085d565b61089e83600183013560601c88611517565b610855565b507e8000000000000000000000000000000000000000000000000000000000000060e43516151561062f565b5092955050819003016108e3578492610658565b60046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a07578b916109d1575b5015610583565b90506020813d6020116109ff575b816109ec60209383610c6b565b810103126109fb5751386109ca565b8a80fd5b3d91506109df565b6040513d8d823e3d90fd5b9350610a469150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298501610c27565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd78101601411610aa357603d8401907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610573610563565b8580fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b503461015d576020610b47610b3e620186a0610b30610b2036610b7d565b849394919b98999295979b610f8c565b99945097929c9150996111a8565b920101906112a3565b604051908152f35b9181601f840112156101585782359167ffffffffffffffff8311610158576020838186019501011161015857565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015857610100136101585760049167ffffffffffffffff90610104358281116101585781610bd791600401610b4f565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101585792610164359261018435926101a43591821161015857610c2391600401610b4f565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c5c57505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610cac57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff600054163303610d3b57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610dc4573d9067ffffffffffffffff8211610cac5760405191610db860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c6b565b82523d6000602084013e565b606090565b9291909160009369ffffffffffffffffffff60009316908415610e9e57803560f81c90600a82600a02600194818601808711610e9a578910610e96578184018601988290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019793849087015b868610610e48575050505050505050565b838511610afe57803560b01c8314610e8a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff685899201940195019492610e37565b50959950505050505050565b8780fd5b8880fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610f0057505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610f4457505050565b60010360031b82901b16169150565b8115610f5d570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b91610f978284610ecb565b60f01c928260021161015857610fd27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610f0f565b60f81c92606484116110d25780600311610158576110157ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610ecb565b60f01c9281600511610158576110507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610f0f565b60f81c92606484116110a857826006116101585760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa61109394019101610dc9565b919690928761109f5750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111a59a989599979461117d9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610cdb565b97610120860152166101408401526101608301526101808201526101a0818503910152610cdb565b90565b9097949693959492939060148410611287576111c48483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b03915afa90811561127b5760009161124c575090565b90506020813d602011611273575b8161126760209383610c6b565b81010312610158575190565b3d915061125a565b6040513d6000823e3d90fd5b96955050505050506111a5925060a060c0830135920135611483565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b5050906111a59250610f53565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff838209908280831092039180830392146113f05781606411156113dd577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b7160005260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8184099082808310920391808303921461147757620186a090828211156113dd577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039514611355578483111561133c579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b916044602092600092604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af1908161158e575b501561156457565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156115a95750600160005114601f3d11165b3861155c565b3b15156115a3565b600080809381935af16115c2610d6b565b50156115ca57565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b9097949693959492939060148410611682576116108483610c27565b60601c9584601411610158576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611236966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b016110fc565b975050505050505060a060c0830135920135906116a0828285611483565b928215610f5d5709151581018091116101be579056fea26469706673582212201563b484be625cd33db6ce289204a491a6985da5c3ca04b65773a53d46bf0f9a64736f6c63430008170033" +} \ No newline at end of file diff --git a/deployments/mainnet/FeeTaker.json b/deployments/mainnet/FeeTaker.json index a5b6d000..66855eab 100644 --- a/deployments/mainnet/FeeTaker.json +++ b/deployments/mainnet/FeeTaker.json @@ -1,11 +1,118 @@ { - "address": "0x1c30a1aeeaFAb7f5Edb1A09a7A4a0b8BeD8eE401", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, { "inputs": [], "name": "SafeTransferFailed", "type": "error" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, { "inputs": [ { @@ -57,23 +164,218 @@ }, { "internalType": "bytes", - "name": "", + "name": "extension", "type": "bytes" }, { "internalType": "bytes32", - "name": "", + "name": "orderHash", "type": "bytes32" }, { "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", "type": "address" }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" }, { "internalType": "uint256", @@ -82,7 +384,7 @@ }, { "internalType": "uint256", - "name": "", + "name": "remainingMakingAmount", "type": "uint256" }, { @@ -95,50 +397,88 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ], - "transactionHash": "0x5fe7683efbdb699d501f7e6f1c95adeefaddeaef98b85f40f977b8f6788ccf41", + "transactionHash": "0xcfd339bb25f6263a762529f4c7def9a2596f711a398d845068baa86d03c1eaa8", "receipt": { - "to": null, - "from": "0x11799622F4D98A24514011E8527B969f7488eF47", - "contractAddress": "0x1c30a1aeeaFAb7f5Edb1A09a7A4a0b8BeD8eE401", - "transactionIndex": 104, - "gasUsed": "202948", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockHash": "0x59a90aa4eb2bae74e6c4c082220133154bb0ee3acff308cd471146b214da2264", - "transactionHash": "0x5fe7683efbdb699d501f7e6f1c95adeefaddeaef98b85f40f977b8f6788ccf41", - "logs": [], - "blockNumber": 19339328, - "cumulativeGasUsed": "9197070", - "status": 1, - "byzantium": true - }, - "args": [], - "numDeployments": 1, - "solcInputHash": "7fa511b698a321843f172bec30dea8ab", - "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"SafeTransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"maker\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"receiver\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"makerAsset\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"takerAsset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"makingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"takingAmount\",\"type\":\"uint256\"},{\"internalType\":\"MakerTraits\",\"name\":\"makerTraits\",\"type\":\"uint256\"}],\"internalType\":\"struct IOrderMixin.Order\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"takingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"postInteraction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"postInteraction((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,uint256,bytes)\":{\"details\":\"Takes the fee in taking tokens and transfers the rest to the maker. `extraData` consists of: 3 bytes \\u2014 fee percentage (in 1e7) 20 bytes \\u2014 fee recipient 20 bytes \\u2014 receiver of taking tokens (optional, if not set, maker is used)\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"postInteraction((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,uint256,bytes)\":{\"notice\":\"See {IPostInteraction-postInteraction}.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/extensions/FeeTaker.sol\":\"FeeTaker\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@1inch/solidity-utils/contracts/interfaces/IDaiLikePermit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\ninterface IDaiLikePermit {\\n function permit(\\n address holder,\\n address spender,\\n uint256 nonce,\\n uint256 expiry,\\n bool allowed,\\n uint8 v,\\n bytes32 r,\\n bytes32 s\\n ) external;\\n}\\n\",\"keccak256\":\"0xbbb219886412a339a7f84b0850f700311dd2b3a106919ae54fa0a215d847a3b2\",\"license\":\"MIT\"},\"@1inch/solidity-utils/contracts/interfaces/IPermit2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\ninterface IPermit2 {\\n struct PermitDetails {\\n // ERC20 token address\\n address token;\\n // the maximum amount allowed to spend\\n uint160 amount;\\n // timestamp at which a spender's token allowances become invalid\\n uint48 expiration;\\n // an incrementing value indexed per owner,token,and spender for each signature\\n uint48 nonce;\\n }\\n /// @notice The permit message signed for a single token allownce\\n struct PermitSingle {\\n // the permit data for a single token alownce\\n PermitDetails details;\\n // address permissioned on the allowed tokens\\n address spender;\\n // deadline on the permit signature\\n uint256 sigDeadline;\\n }\\n /// @notice Packed allowance\\n struct PackedAllowance {\\n // amount allowed\\n uint160 amount;\\n // permission expiry\\n uint48 expiration;\\n // an incrementing value indexed per owner,token,and spender for each signature\\n uint48 nonce;\\n }\\n\\n function transferFrom(address user, address spender, uint160 amount, address token) external;\\n\\n function permit(address owner, PermitSingle memory permitSingle, bytes calldata signature) external;\\n\\n function allowance(address user, address token, address spender) external view returns (PackedAllowance memory);\\n}\\n\",\"keccak256\":\"0x63209a082f66ecb584b86e412b3dd0010e9675bc19bc1f80a75437311df7ec11\",\"license\":\"MIT\"},\"@1inch/solidity-utils/contracts/interfaces/IWETH.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/IERC20.sol\\\";\\n\\ninterface IWETH is IERC20 {\\n event Deposit(address indexed dst, uint256 wad);\\n\\n event Withdrawal(address indexed src, uint256 wad);\\n\\n function deposit() external payable;\\n\\n function withdraw(uint256 amount) external;\\n}\\n\",\"keccak256\":\"0x00eeab44dfd24ef7c27fcdfdf7b4d4df54a17650662522c1bf85950965892a3a\",\"license\":\"MIT\"},\"@1inch/solidity-utils/contracts/libraries/AddressLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\ntype Address is uint256;\\n\\n/**\\n* @dev Library for working with addresses encoded as uint256 values, which can include flags in the highest bits.\\n*/\\nlibrary AddressLib {\\n uint256 private constant _LOW_160_BIT_MASK = (1 << 160) - 1;\\n\\n /**\\n * @notice Returns the address representation of a uint256.\\n * @param a The uint256 value to convert to an address.\\n * @return The address representation of the provided uint256 value.\\n */\\n function get(Address a) internal pure returns (address) {\\n return address(uint160(Address.unwrap(a) & _LOW_160_BIT_MASK));\\n }\\n\\n /**\\n * @notice Checks if a given flag is set for the provided address.\\n * @param a The address to check for the flag.\\n * @param flag The flag to check for in the provided address.\\n * @return True if the provided flag is set in the address, false otherwise.\\n */\\n function getFlag(Address a, uint256 flag) internal pure returns (bool) {\\n return (Address.unwrap(a) & flag) != 0;\\n }\\n\\n /**\\n * @notice Returns a uint32 value stored at a specific bit offset in the provided address.\\n * @param a The address containing the uint32 value.\\n * @param offset The bit offset at which the uint32 value is stored.\\n * @return The uint32 value stored in the address at the specified bit offset.\\n */\\n function getUint32(Address a, uint256 offset) internal pure returns (uint32) {\\n return uint32(Address.unwrap(a) >> offset);\\n }\\n\\n /**\\n * @notice Returns a uint64 value stored at a specific bit offset in the provided address.\\n * @param a The address containing the uint64 value.\\n * @param offset The bit offset at which the uint64 value is stored.\\n * @return The uint64 value stored in the address at the specified bit offset.\\n */\\n function getUint64(Address a, uint256 offset) internal pure returns (uint64) {\\n return uint64(Address.unwrap(a) >> offset);\\n }\\n}\\n\",\"keccak256\":\"0x45c4340cbefe825cb4be111058427351cb4d5f95260e630a453eae0430ba29bd\",\"license\":\"MIT\"},\"@1inch/solidity-utils/contracts/libraries/RevertReasonForwarder.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\n/// @title Revert reason forwarder.\\nlibrary RevertReasonForwarder {\\n /// @dev Forwards latest externall call revert.\\n function reRevert() internal pure {\\n // bubble up revert reason from latest external call\\n assembly (\\\"memory-safe\\\") { // solhint-disable-line no-inline-assembly\\n let ptr := mload(0x40)\\n returndatacopy(ptr, 0, returndatasize())\\n revert(ptr, returndatasize())\\n }\\n }\\n\\n /// @dev Returns latest external call revert reason.\\n function reReason() internal pure returns (bytes memory reason) {\\n assembly (\\\"memory-safe\\\") { // solhint-disable-line no-inline-assembly\\n reason := mload(0x40)\\n let length := returndatasize()\\n mstore(reason, length)\\n returndatacopy(add(reason, 0x20), 0, length)\\n mstore(0x40, add(reason, add(0x20, length)))\\n }\\n }\\n}\\n\",\"keccak256\":\"0x09986dc39ef02966c542275678f75c830a3e17992fba050b32a7fd8e2d210699\",\"license\":\"MIT\"},\"@1inch/solidity-utils/contracts/libraries/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/IERC20.sol\\\";\\nimport \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\\\";\\nimport \\\"../interfaces/IDaiLikePermit.sol\\\";\\nimport \\\"../interfaces/IPermit2.sol\\\";\\nimport \\\"../interfaces/IWETH.sol\\\";\\nimport \\\"../libraries/RevertReasonForwarder.sol\\\";\\n\\n/**\\n * @title Implements efficient safe methods for ERC20 interface.\\n * @notice Compared to the standard ERC20, this implementation offers several enhancements:\\n * 1. more gas-efficient, providing significant savings in transaction costs.\\n * 2. support for different permit implementations\\n * 3. forceApprove functionality\\n * 4. support for WETH deposit and withdraw\\n */\\nlibrary SafeERC20 {\\n error SafeTransferFailed();\\n error SafeTransferFromFailed();\\n error ForceApproveFailed();\\n error SafeIncreaseAllowanceFailed();\\n error SafeDecreaseAllowanceFailed();\\n error SafePermitBadLength();\\n error Permit2TransferAmountTooHigh();\\n\\n // Uniswap Permit2 address\\n address private constant _PERMIT2 = 0x000000000022D473030F116dDEE9F6B43aC78BA3;\\n bytes4 private constant _PERMIT_LENGTH_ERROR = 0x68275857; // SafePermitBadLength.selector\\n uint256 private constant _RAW_CALL_GAS_LIMIT = 5000;\\n\\n /**\\n * @notice Fetches the balance of a specific ERC20 token held by an account.\\n * Consumes less gas then regular `ERC20.balanceOf`.\\n * @dev Note that the implementation does not perform dirty bits cleaning, so it is the\\n * responsibility of the caller to make sure that the higher 96 bits of the `account` parameter are clean.\\n * @param token The IERC20 token contract for which the balance will be fetched.\\n * @param account The address of the account whose token balance will be fetched.\\n * @return tokenBalance The balance of the specified ERC20 token held by the account.\\n */\\n function safeBalanceOf(\\n IERC20 token,\\n address account\\n ) internal view returns(uint256 tokenBalance) {\\n bytes4 selector = IERC20.balanceOf.selector;\\n assembly (\\\"memory-safe\\\") { // solhint-disable-line no-inline-assembly\\n mstore(0x00, selector)\\n mstore(0x04, account)\\n let success := staticcall(gas(), token, 0x00, 0x24, 0x00, 0x20)\\n tokenBalance := mload(0)\\n\\n if or(iszero(success), lt(returndatasize(), 0x20)) {\\n let ptr := mload(0x40)\\n returndatacopy(ptr, 0, returndatasize())\\n revert(ptr, returndatasize())\\n }\\n }\\n }\\n\\n /**\\n * @notice Attempts to safely transfer tokens from one address to another.\\n * @dev If permit2 is true, uses the Permit2 standard; otherwise uses the standard ERC20 transferFrom.\\n * Either requires `true` in return data, or requires target to be smart-contract and empty return data.\\n * Note that the implementation does not perform dirty bits cleaning, so it is the responsibility of\\n * the caller to make sure that the higher 96 bits of the `from` and `to` parameters are clean.\\n * @param token The IERC20 token contract from which the tokens will be transferred.\\n * @param from The address from which the tokens will be transferred.\\n * @param to The address to which the tokens will be transferred.\\n * @param amount The amount of tokens to transfer.\\n * @param permit2 If true, uses the Permit2 standard for the transfer; otherwise uses the standard ERC20 transferFrom.\\n */\\n function safeTransferFromUniversal(\\n IERC20 token,\\n address from,\\n address to,\\n uint256 amount,\\n bool permit2\\n ) internal {\\n if (permit2) {\\n safeTransferFromPermit2(token, from, to, amount);\\n } else {\\n safeTransferFrom(token, from, to, amount);\\n }\\n }\\n\\n /**\\n * @notice Attempts to safely transfer tokens from one address to another using the ERC20 standard.\\n * @dev Either requires `true` in return data, or requires target to be smart-contract and empty return data.\\n * Note that the implementation does not perform dirty bits cleaning, so it is the responsibility of\\n * the caller to make sure that the higher 96 bits of the `from` and `to` parameters are clean.\\n * @param token The IERC20 token contract from which the tokens will be transferred.\\n * @param from The address from which the tokens will be transferred.\\n * @param to The address to which the tokens will be transferred.\\n * @param amount The amount of tokens to transfer.\\n */\\n function safeTransferFrom(\\n IERC20 token,\\n address from,\\n address to,\\n uint256 amount\\n ) internal {\\n bytes4 selector = token.transferFrom.selector;\\n bool success;\\n assembly (\\\"memory-safe\\\") { // solhint-disable-line no-inline-assembly\\n let data := mload(0x40)\\n\\n mstore(data, selector)\\n mstore(add(data, 0x04), from)\\n mstore(add(data, 0x24), to)\\n mstore(add(data, 0x44), amount)\\n success := call(gas(), token, 0, data, 100, 0x0, 0x20)\\n if success {\\n switch returndatasize()\\n case 0 {\\n success := gt(extcodesize(token), 0)\\n }\\n default {\\n success := and(gt(returndatasize(), 31), eq(mload(0), 1))\\n }\\n }\\n }\\n if (!success) revert SafeTransferFromFailed();\\n }\\n\\n /**\\n * @notice Attempts to safely transfer tokens from one address to another using the Permit2 standard.\\n * @dev Either requires `true` in return data, or requires target to be smart-contract and empty return data.\\n * Note that the implementation does not perform dirty bits cleaning, so it is the responsibility of\\n * the caller to make sure that the higher 96 bits of the `from` and `to` parameters are clean.\\n * @param token The IERC20 token contract from which the tokens will be transferred.\\n * @param from The address from which the tokens will be transferred.\\n * @param to The address to which the tokens will be transferred.\\n * @param amount The amount of tokens to transfer.\\n */\\n function safeTransferFromPermit2(\\n IERC20 token,\\n address from,\\n address to,\\n uint256 amount\\n ) internal {\\n if (amount > type(uint160).max) revert Permit2TransferAmountTooHigh();\\n bytes4 selector = IPermit2.transferFrom.selector;\\n bool success;\\n assembly (\\\"memory-safe\\\") { // solhint-disable-line no-inline-assembly\\n let data := mload(0x40)\\n\\n mstore(data, selector)\\n mstore(add(data, 0x04), from)\\n mstore(add(data, 0x24), to)\\n mstore(add(data, 0x44), amount)\\n mstore(add(data, 0x64), token)\\n success := call(gas(), _PERMIT2, 0, data, 0x84, 0x0, 0x0)\\n if success {\\n success := gt(extcodesize(_PERMIT2), 0)\\n }\\n }\\n if (!success) revert SafeTransferFromFailed();\\n }\\n\\n /**\\n * @notice Attempts to safely transfer tokens to another address.\\n * @dev Either requires `true` in return data, or requires target to be smart-contract and empty return data.\\n * Note that the implementation does not perform dirty bits cleaning, so it is the responsibility of\\n * the caller to make sure that the higher 96 bits of the `to` parameter are clean.\\n * @param token The IERC20 token contract from which the tokens will be transferred.\\n * @param to The address to which the tokens will be transferred.\\n * @param value The amount of tokens to transfer.\\n */\\n function safeTransfer(\\n IERC20 token,\\n address to,\\n uint256 value\\n ) internal {\\n if (!_makeCall(token, token.transfer.selector, to, value)) {\\n revert SafeTransferFailed();\\n }\\n }\\n\\n /**\\n * @notice Attempts to approve a spender to spend a certain amount of tokens.\\n * @dev If `approve(from, to, amount)` fails, it tries to set the allowance to zero, and retries the `approve` call.\\n * Note that the implementation does not perform dirty bits cleaning, so it is the responsibility of\\n * the caller to make sure that the higher 96 bits of the `spender` parameter are clean.\\n * @param token The IERC20 token contract on which the call will be made.\\n * @param spender The address which will spend the funds.\\n * @param value The amount of tokens to be spent.\\n */\\n function forceApprove(\\n IERC20 token,\\n address spender,\\n uint256 value\\n ) internal {\\n if (!_makeCall(token, token.approve.selector, spender, value)) {\\n if (\\n !_makeCall(token, token.approve.selector, spender, 0) ||\\n !_makeCall(token, token.approve.selector, spender, value)\\n ) {\\n revert ForceApproveFailed();\\n }\\n }\\n }\\n\\n /**\\n * @notice Safely increases the allowance of a spender.\\n * @dev Increases with safe math check. Checks if the increased allowance will overflow, if yes, then it reverts the transaction.\\n * Then uses `forceApprove` to increase the allowance.\\n * Note that the implementation does not perform dirty bits cleaning, so it is the responsibility of\\n * the caller to make sure that the higher 96 bits of the `spender` parameter are clean.\\n * @param token The IERC20 token contract on which the call will be made.\\n * @param spender The address which will spend the funds.\\n * @param value The amount of tokens to increase the allowance by.\\n */\\n function safeIncreaseAllowance(\\n IERC20 token,\\n address spender,\\n uint256 value\\n ) internal {\\n uint256 allowance = token.allowance(address(this), spender);\\n if (value > type(uint256).max - allowance) revert SafeIncreaseAllowanceFailed();\\n forceApprove(token, spender, allowance + value);\\n }\\n\\n /**\\n * @notice Safely decreases the allowance of a spender.\\n * @dev Decreases with safe math check. Checks if the decreased allowance will underflow, if yes, then it reverts the transaction.\\n * Then uses `forceApprove` to increase the allowance.\\n * Note that the implementation does not perform dirty bits cleaning, so it is the responsibility of\\n * the caller to make sure that the higher 96 bits of the `spender` parameter are clean.\\n * @param token The IERC20 token contract on which the call will be made.\\n * @param spender The address which will spend the funds.\\n * @param value The amount of tokens to decrease the allowance by.\\n */\\n function safeDecreaseAllowance(\\n IERC20 token,\\n address spender,\\n uint256 value\\n ) internal {\\n uint256 allowance = token.allowance(address(this), spender);\\n if (value > allowance) revert SafeDecreaseAllowanceFailed();\\n forceApprove(token, spender, allowance - value);\\n }\\n\\n /**\\n * @notice Attempts to execute the `permit` function on the provided token with the sender and contract as parameters.\\n * Permit type is determined automatically based on permit calldata (IERC20Permit, IDaiLikePermit, and IPermit2).\\n * @dev Wraps `tryPermit` function and forwards revert reason if permit fails.\\n * @param token The IERC20 token to execute the permit function on.\\n * @param permit The permit data to be used in the function call.\\n */\\n function safePermit(IERC20 token, bytes calldata permit) internal {\\n if (!tryPermit(token, msg.sender, address(this), permit)) RevertReasonForwarder.reRevert();\\n }\\n\\n /**\\n * @notice Attempts to execute the `permit` function on the provided token with custom owner and spender parameters.\\n * Permit type is determined automatically based on permit calldata (IERC20Permit, IDaiLikePermit, and IPermit2).\\n * @dev Wraps `tryPermit` function and forwards revert reason if permit fails.\\n * Note that the implementation does not perform dirty bits cleaning, so it is the responsibility of\\n * the caller to make sure that the higher 96 bits of the `owner` and `spender` parameters are clean.\\n * @param token The IERC20 token to execute the permit function on.\\n * @param owner The owner of the tokens for which the permit is made.\\n * @param spender The spender allowed to spend the tokens by the permit.\\n * @param permit The permit data to be used in the function call.\\n */\\n function safePermit(IERC20 token, address owner, address spender, bytes calldata permit) internal {\\n if (!tryPermit(token, owner, spender, permit)) RevertReasonForwarder.reRevert();\\n }\\n\\n /**\\n * @notice Attempts to execute the `permit` function on the provided token with the sender and contract as parameters.\\n * @dev Invokes `tryPermit` with sender as owner and contract as spender.\\n * @param token The IERC20 token to execute the permit function on.\\n * @param permit The permit data to be used in the function call.\\n * @return success Returns true if the permit function was successfully executed, false otherwise.\\n */\\n function tryPermit(IERC20 token, bytes calldata permit) internal returns(bool success) {\\n return tryPermit(token, msg.sender, address(this), permit);\\n }\\n\\n /**\\n * @notice The function attempts to call the permit function on a given ERC20 token.\\n * @dev The function is designed to support a variety of permit functions, namely: IERC20Permit, IDaiLikePermit, and IPermit2.\\n * It accommodates both Compact and Full formats of these permit types.\\n * Please note, it is expected that the `expiration` parameter for the compact Permit2 and the `deadline` parameter\\n * for the compact Permit are to be incremented by one before invoking this function. This approach is motivated by\\n * gas efficiency considerations; as the unlimited expiration period is likely to be the most common scenario, and\\n * zeros are cheaper to pass in terms of gas cost. Thus, callers should increment the expiration or deadline by one\\n * before invocation for optimized performance.\\n * Note that the implementation does not perform dirty bits cleaning, so it is the responsibility of\\n * the caller to make sure that the higher 96 bits of the `owner` and `spender` parameters are clean.\\n * @param token The address of the ERC20 token on which to call the permit function.\\n * @param owner The owner of the tokens. This address should have signed the off-chain permit.\\n * @param spender The address which will be approved for transfer of tokens.\\n * @param permit The off-chain permit data, containing different fields depending on the type of permit function.\\n * @return success A boolean indicating whether the permit call was successful.\\n */\\n function tryPermit(IERC20 token, address owner, address spender, bytes calldata permit) internal returns(bool success) {\\n // load function selectors for different permit standards\\n bytes4 permitSelector = IERC20Permit.permit.selector;\\n bytes4 daiPermitSelector = IDaiLikePermit.permit.selector;\\n bytes4 permit2Selector = IPermit2.permit.selector;\\n assembly (\\\"memory-safe\\\") { // solhint-disable-line no-inline-assembly\\n let ptr := mload(0x40)\\n\\n // Switch case for different permit lengths, indicating different permit standards\\n switch permit.length\\n // Compact IERC20Permit\\n case 100 {\\n mstore(ptr, permitSelector) // store selector\\n mstore(add(ptr, 0x04), owner) // store owner\\n mstore(add(ptr, 0x24), spender) // store spender\\n\\n // Compact IERC20Permit.permit(uint256 value, uint32 deadline, uint256 r, uint256 vs)\\n { // stack too deep\\n let deadline := shr(224, calldataload(add(permit.offset, 0x20))) // loads permit.offset 0x20..0x23\\n let vs := calldataload(add(permit.offset, 0x44)) // loads permit.offset 0x44..0x63\\n\\n calldatacopy(add(ptr, 0x44), permit.offset, 0x20) // store value = copy permit.offset 0x00..0x19\\n mstore(add(ptr, 0x64), sub(deadline, 1)) // store deadline = deadline - 1\\n mstore(add(ptr, 0x84), add(27, shr(255, vs))) // store v = most significant bit of vs + 27 (27 or 28)\\n calldatacopy(add(ptr, 0xa4), add(permit.offset, 0x24), 0x20) // store r = copy permit.offset 0x24..0x43\\n mstore(add(ptr, 0xc4), shr(1, shl(1, vs))) // store s = vs without most significant bit\\n }\\n // IERC20Permit.permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)\\n success := call(gas(), token, 0, ptr, 0xe4, 0, 0)\\n }\\n // Compact IDaiLikePermit\\n case 72 {\\n mstore(ptr, daiPermitSelector) // store selector\\n mstore(add(ptr, 0x04), owner) // store owner\\n mstore(add(ptr, 0x24), spender) // store spender\\n\\n // Compact IDaiLikePermit.permit(uint32 nonce, uint32 expiry, uint256 r, uint256 vs)\\n { // stack too deep\\n let expiry := shr(224, calldataload(add(permit.offset, 0x04))) // loads permit.offset 0x04..0x07\\n let vs := calldataload(add(permit.offset, 0x28)) // loads permit.offset 0x28..0x47\\n\\n mstore(add(ptr, 0x44), shr(224, calldataload(permit.offset))) // store nonce = copy permit.offset 0x00..0x03\\n mstore(add(ptr, 0x64), sub(expiry, 1)) // store expiry = expiry - 1\\n mstore(add(ptr, 0x84), true) // store allowed = true\\n mstore(add(ptr, 0xa4), add(27, shr(255, vs))) // store v = most significant bit of vs + 27 (27 or 28)\\n calldatacopy(add(ptr, 0xc4), add(permit.offset, 0x08), 0x20) // store r = copy permit.offset 0x08..0x27\\n mstore(add(ptr, 0xe4), shr(1, shl(1, vs))) // store s = vs without most significant bit\\n }\\n // IDaiLikePermit.permit(address holder, address spender, uint256 nonce, uint256 expiry, bool allowed, uint8 v, bytes32 r, bytes32 s)\\n success := call(gas(), token, 0, ptr, 0x104, 0, 0)\\n }\\n // IERC20Permit\\n case 224 {\\n mstore(ptr, permitSelector)\\n calldatacopy(add(ptr, 0x04), permit.offset, permit.length) // copy permit calldata\\n // IERC20Permit.permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)\\n success := call(gas(), token, 0, ptr, 0xe4, 0, 0)\\n }\\n // IDaiLikePermit\\n case 256 {\\n mstore(ptr, daiPermitSelector)\\n calldatacopy(add(ptr, 0x04), permit.offset, permit.length) // copy permit calldata\\n // IDaiLikePermit.permit(address holder, address spender, uint256 nonce, uint256 expiry, bool allowed, uint8 v, bytes32 r, bytes32 s)\\n success := call(gas(), token, 0, ptr, 0x104, 0, 0)\\n }\\n // Compact IPermit2\\n case 96 {\\n // Compact IPermit2.permit(uint160 amount, uint32 expiration, uint32 nonce, uint32 sigDeadline, uint256 r, uint256 vs)\\n mstore(ptr, permit2Selector) // store selector\\n mstore(add(ptr, 0x04), owner) // store owner\\n mstore(add(ptr, 0x24), token) // store token\\n\\n calldatacopy(add(ptr, 0x50), permit.offset, 0x14) // store amount = copy permit.offset 0x00..0x13\\n // and(0xffffffffffff, ...) - conversion to uint48\\n mstore(add(ptr, 0x64), and(0xffffffffffff, sub(shr(224, calldataload(add(permit.offset, 0x14))), 1))) // store expiration = ((permit.offset 0x14..0x17 - 1) & 0xffffffffffff)\\n mstore(add(ptr, 0x84), shr(224, calldataload(add(permit.offset, 0x18)))) // store nonce = copy permit.offset 0x18..0x1b\\n mstore(add(ptr, 0xa4), spender) // store spender\\n // and(0xffffffffffff, ...) - conversion to uint48\\n mstore(add(ptr, 0xc4), and(0xffffffffffff, sub(shr(224, calldataload(add(permit.offset, 0x1c))), 1))) // store sigDeadline = ((permit.offset 0x1c..0x1f - 1) & 0xffffffffffff)\\n mstore(add(ptr, 0xe4), 0x100) // store offset = 256\\n mstore(add(ptr, 0x104), 0x40) // store length = 64\\n calldatacopy(add(ptr, 0x124), add(permit.offset, 0x20), 0x20) // store r = copy permit.offset 0x20..0x3f\\n calldatacopy(add(ptr, 0x144), add(permit.offset, 0x40), 0x20) // store vs = copy permit.offset 0x40..0x5f\\n // IPermit2.permit(address owner, PermitSingle calldata permitSingle, bytes calldata signature)\\n success := call(gas(), _PERMIT2, 0, ptr, 0x164, 0, 0)\\n }\\n // IPermit2\\n case 352 {\\n mstore(ptr, permit2Selector)\\n calldatacopy(add(ptr, 0x04), permit.offset, permit.length) // copy permit calldata\\n // IPermit2.permit(address owner, PermitSingle calldata permitSingle, bytes calldata signature)\\n success := call(gas(), _PERMIT2, 0, ptr, 0x164, 0, 0)\\n }\\n // Unknown\\n default {\\n mstore(ptr, _PERMIT_LENGTH_ERROR)\\n revert(ptr, 4)\\n }\\n }\\n }\\n\\n /**\\n * @dev Executes a low level call to a token contract, making it resistant to reversion and erroneous boolean returns.\\n * @param token The IERC20 token contract on which the call will be made.\\n * @param selector The function signature that is to be called on the token contract.\\n * @param to The address to which the token amount will be transferred.\\n * @param amount The token amount to be transferred.\\n * @return success A boolean indicating if the call was successful. Returns 'true' on success and 'false' on failure.\\n * In case of success but no returned data, validates that the contract code exists.\\n * In case of returned data, ensures that it's a boolean `true`.\\n */\\n function _makeCall(\\n IERC20 token,\\n bytes4 selector,\\n address to,\\n uint256 amount\\n ) private returns (bool success) {\\n assembly (\\\"memory-safe\\\") { // solhint-disable-line no-inline-assembly\\n let data := mload(0x40)\\n\\n mstore(data, selector)\\n mstore(add(data, 0x04), to)\\n mstore(add(data, 0x24), amount)\\n success := call(gas(), token, 0, data, 0x44, 0x0, 0x20)\\n if success {\\n switch returndatasize()\\n case 0 {\\n success := gt(extcodesize(token), 0)\\n }\\n default {\\n success := and(gt(returndatasize(), 31), eq(mload(0), 1))\\n }\\n }\\n }\\n }\\n\\n /**\\n * @notice Safely deposits a specified amount of Ether into the IWETH contract. Consumes less gas then regular `IWETH.deposit`.\\n * @param weth The IWETH token contract.\\n * @param amount The amount of Ether to deposit into the IWETH contract.\\n */\\n function safeDeposit(IWETH weth, uint256 amount) internal {\\n if (amount > 0) {\\n bytes4 selector = IWETH.deposit.selector;\\n assembly (\\\"memory-safe\\\") { // solhint-disable-line no-inline-assembly\\n mstore(0, selector)\\n if iszero(call(gas(), weth, amount, 0, 4, 0, 0)) {\\n let ptr := mload(0x40)\\n returndatacopy(ptr, 0, returndatasize())\\n revert(ptr, returndatasize())\\n }\\n }\\n }\\n }\\n\\n /**\\n * @notice Safely withdraws a specified amount of wrapped Ether from the IWETH contract. Consumes less gas then regular `IWETH.withdraw`.\\n * @dev Uses inline assembly to interact with the IWETH contract.\\n * @param weth The IWETH token contract.\\n * @param amount The amount of wrapped Ether to withdraw from the IWETH contract.\\n */\\n function safeWithdraw(IWETH weth, uint256 amount) internal {\\n bytes4 selector = IWETH.withdraw.selector;\\n assembly (\\\"memory-safe\\\") { // solhint-disable-line no-inline-assembly\\n mstore(0, selector)\\n mstore(4, amount)\\n if iszero(call(gas(), weth, 0, 0, 0x24, 0, 0)) {\\n let ptr := mload(0x40)\\n returndatacopy(ptr, 0, returndatasize())\\n revert(ptr, returndatasize())\\n }\\n }\\n }\\n\\n /**\\n * @notice Safely withdraws a specified amount of wrapped Ether from the IWETH contract to a specified recipient.\\n * Consumes less gas then regular `IWETH.withdraw`.\\n * @param weth The IWETH token contract.\\n * @param amount The amount of wrapped Ether to withdraw from the IWETH contract.\\n * @param to The recipient of the withdrawn Ether.\\n */\\n function safeWithdrawTo(IWETH weth, uint256 amount, address to) internal {\\n safeWithdraw(weth, amount);\\n if (to != address(this)) {\\n assembly (\\\"memory-safe\\\") { // solhint-disable-line no-inline-assembly\\n if iszero(call(_RAW_CALL_GAS_LIMIT, to, amount, 0, 0, 0, 0)) {\\n let ptr := mload(0x40)\\n returndatacopy(ptr, 0, returndatasize())\\n revert(ptr, returndatasize())\\n }\\n }\\n }\\n }\\n}\\n\",\"keccak256\":\"0x7f1f5a6cc86c27c64a5e18ff33a683df22b5ab00b9a409f9b1fc13b32462d1b4\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the value of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the value of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\\n * allowance mechanism. `value` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 value) external returns (bool);\\n}\\n\",\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n * doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n * token.safeTransferFrom(msg.sender, address(this), value);\\n * ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n /**\\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n * given ``owner``'s signed approval.\\n *\\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n * ordering also apply here.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `deadline` must be a timestamp in the future.\\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n * over the EIP712-formatted function arguments.\\n * - the signature must use ``owner``'s current nonce (see {nonces}).\\n *\\n * For more information on the signature format, see the\\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n * section].\\n *\\n * CAUTION: See Security Considerations above.\\n */\\n function permit(\\n address owner,\\n address spender,\\n uint256 value,\\n uint256 deadline,\\n uint8 v,\\n bytes32 r,\\n bytes32 s\\n ) external;\\n\\n /**\\n * @dev Returns the current nonce for `owner`. This value must be\\n * included whenever a signature is generated for {permit}.\\n *\\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n * prevents a signature from being used multiple times.\\n */\\n function nonces(address owner) external view returns (uint256);\\n\\n /**\\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n */\\n // solhint-disable-next-line func-name-mixedcase\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\"},\"contracts/extensions/FeeTaker.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.23;\\n\\nimport { Address, AddressLib } from \\\"@1inch/solidity-utils/contracts/libraries/AddressLib.sol\\\";\\nimport { SafeERC20 } from \\\"@1inch/solidity-utils/contracts/libraries/SafeERC20.sol\\\";\\nimport { IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/IERC20.sol\\\";\\n\\nimport { IOrderMixin } from \\\"../interfaces/IOrderMixin.sol\\\";\\nimport { IPostInteraction } from \\\"../interfaces/IPostInteraction.sol\\\";\\n\\ncontract FeeTaker is IPostInteraction {\\n using AddressLib for Address;\\n using SafeERC20 for IERC20;\\n\\n uint256 internal constant _FEE_BASE = 1e7;\\n\\n /**\\n * @notice See {IPostInteraction-postInteraction}.\\n * @dev Takes the fee in taking tokens and transfers the rest to the maker.\\n * `extraData` consists of:\\n * 3 bytes \\u2014 fee percentage (in 1e7)\\n * 20 bytes \\u2014 fee recipient\\n * 20 bytes \\u2014 receiver of taking tokens (optional, if not set, maker is used)\\n */\\n function postInteraction(\\n IOrderMixin.Order calldata order,\\n bytes calldata /* extension */,\\n bytes32 /* orderHash */,\\n address /* taker */,\\n uint256 /* makingAmount */,\\n uint256 takingAmount,\\n uint256 /* remainingMakingAmount */,\\n bytes calldata extraData\\n ) external {\\n uint256 fee = takingAmount * uint256(uint24(bytes3(extraData))) / _FEE_BASE;\\n address feeRecipient = address(bytes20(extraData[3:23]));\\n\\n address receiver = order.maker.get();\\n if (extraData.length > 23) {\\n receiver = address(bytes20(extraData[23:43]));\\n }\\n\\n if (fee > 0) {\\n IERC20(order.takerAsset.get()).safeTransfer(feeRecipient, fee);\\n }\\n\\n unchecked {\\n IERC20(order.takerAsset.get()).safeTransfer(receiver, takingAmount - fee);\\n }\\n }\\n}\\n\",\"keccak256\":\"0xbb3efd7a72a24a12e00ba8af48407cd536a4628ce322dd21bb75e7be59dc34df\",\"license\":\"MIT\"},\"contracts/interfaces/IOrderMixin.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@1inch/solidity-utils/contracts/libraries/AddressLib.sol\\\";\\nimport \\\"../libraries/MakerTraitsLib.sol\\\";\\nimport \\\"../libraries/TakerTraitsLib.sol\\\";\\n\\ninterface IOrderMixin {\\n struct Order {\\n uint256 salt;\\n Address maker;\\n Address receiver;\\n Address makerAsset;\\n Address takerAsset;\\n uint256 makingAmount;\\n uint256 takingAmount;\\n MakerTraits makerTraits;\\n }\\n\\n error InvalidatedOrder();\\n error TakingAmountExceeded();\\n error PrivateOrder();\\n error BadSignature();\\n error OrderExpired();\\n error WrongSeriesNonce();\\n error SwapWithZeroAmount();\\n error PartialFillNotAllowed();\\n error OrderIsNotSuitableForMassInvalidation();\\n error EpochManagerAndBitInvalidatorsAreIncompatible();\\n error ReentrancyDetected();\\n error PredicateIsNotTrue();\\n error TakingAmountTooHigh();\\n error MakingAmountTooLow();\\n error TransferFromMakerToTakerFailed();\\n error TransferFromTakerToMakerFailed();\\n error MismatchArraysLengths();\\n error InvalidPermit2Transfer();\\n error SimulationResults(bool success, bytes res);\\n\\n /**\\n * @notice Emitted when order gets filled\\n * @param orderHash Hash of the order\\n * @param remainingAmount Amount of the maker asset that remains to be filled\\n */\\n event OrderFilled(\\n bytes32 orderHash,\\n uint256 remainingAmount\\n );\\n\\n /**\\n * @notice Emitted when order without `useBitInvalidator` gets cancelled\\n * @param orderHash Hash of the order\\n */\\n event OrderCancelled(\\n bytes32 orderHash\\n );\\n\\n /**\\n * @notice Emitted when order with `useBitInvalidator` gets cancelled\\n * @param maker Maker address\\n * @param slotIndex Slot index that was updated\\n * @param slotValue New slot value\\n */\\n event BitInvalidatorUpdated(\\n address indexed maker,\\n uint256 slotIndex,\\n uint256 slotValue\\n );\\n\\n /**\\n * @notice Returns bitmask for double-spend invalidators based on lowest byte of order.info and filled quotes\\n * @param maker Maker address\\n * @param slot Slot number to return bitmask for\\n * @return result Each bit represents whether corresponding was already invalidated\\n */\\n function bitInvalidatorForOrder(address maker, uint256 slot) external view returns(uint256 result);\\n\\n /**\\n * @notice Returns bitmask for double-spend invalidators based on lowest byte of order.info and filled quotes\\n * @param orderHash Hash of the order\\n * @return remaining Remaining amount of the order\\n */\\n function remainingInvalidatorForOrder(address maker, bytes32 orderHash) external view returns(uint256 remaining);\\n\\n /**\\n * @notice Returns bitmask for double-spend invalidators based on lowest byte of order.info and filled quotes\\n * @param orderHash Hash of the order\\n * @return remainingRaw Inverse of the remaining amount of the order if order was filled at least once, otherwise 0\\n */\\n function rawRemainingInvalidatorForOrder(address maker, bytes32 orderHash) external view returns(uint256 remainingRaw);\\n\\n /**\\n * @notice Cancels order's quote\\n * @param makerTraits Order makerTraits\\n * @param orderHash Hash of the order to cancel\\n */\\n function cancelOrder(MakerTraits makerTraits, bytes32 orderHash) external;\\n\\n /**\\n * @notice Cancels orders' quotes\\n * @param makerTraits Orders makerTraits\\n * @param orderHashes Hashes of the orders to cancel\\n */\\n function cancelOrders(MakerTraits[] calldata makerTraits, bytes32[] calldata orderHashes) external;\\n\\n /**\\n * @notice Cancels all quotes of the maker (works for bit-invalidating orders only)\\n * @param makerTraits Order makerTraits\\n * @param additionalMask Additional bitmask to invalidate orders\\n */\\n function bitsInvalidateForOrder(MakerTraits makerTraits, uint256 additionalMask) external;\\n\\n /**\\n * @notice Returns order hash, hashed with limit order protocol contract EIP712\\n * @param order Order\\n * @return orderHash Hash of the order\\n */\\n function hashOrder(IOrderMixin.Order calldata order) external view returns(bytes32 orderHash);\\n\\n /**\\n * @notice Delegates execution to custom implementation. Could be used to validate if `transferFrom` works properly\\n * @dev The function always reverts and returns the simulation results in revert data.\\n * @param target Addresses that will be delegated\\n * @param data Data that will be passed to delegatee\\n */\\n function simulate(address target, bytes calldata data) external;\\n\\n /**\\n * @notice Fills order's quote, fully or partially (whichever is possible).\\n * @param order Order quote to fill\\n * @param r R component of signature\\n * @param vs VS component of signature\\n * @param amount Taker amount to fill\\n * @param takerTraits Specifies threshold as maximum allowed takingAmount when takingAmount is zero, otherwise specifies\\n * minimum allowed makingAmount. The 2nd (0 based index) highest bit specifies whether taker wants to skip maker's permit.\\n * @return makingAmount Actual amount transferred from maker to taker\\n * @return takingAmount Actual amount transferred from taker to maker\\n * @return orderHash Hash of the filled order\\n */\\n function fillOrder(\\n Order calldata order,\\n bytes32 r,\\n bytes32 vs,\\n uint256 amount,\\n TakerTraits takerTraits\\n ) external payable returns(uint256 makingAmount, uint256 takingAmount, bytes32 orderHash);\\n\\n /**\\n * @notice Same as `fillOrder` but allows to specify arguments that are used by the taker.\\n * @param order Order quote to fill\\n * @param r R component of signature\\n * @param vs VS component of signature\\n * @param amount Taker amount to fill\\n * @param takerTraits Specifies threshold as maximum allowed takingAmount when takingAmount is zero, otherwise specifies\\n * minimum allowed makingAmount. The 2nd (0 based index) highest bit specifies whether taker wants to skip maker's permit.\\n * @param args Arguments that are used by the taker (target, extension, interaction, permit)\\n * @return makingAmount Actual amount transferred from maker to taker\\n * @return takingAmount Actual amount transferred from taker to maker\\n * @return orderHash Hash of the filled order\\n */\\n function fillOrderArgs(\\n IOrderMixin.Order calldata order,\\n bytes32 r,\\n bytes32 vs,\\n uint256 amount,\\n TakerTraits takerTraits,\\n bytes calldata args\\n ) external payable returns(uint256 makingAmount, uint256 takingAmount, bytes32 orderHash);\\n\\n /**\\n * @notice Same as `fillOrder` but uses contract-based signatures.\\n * @param order Order quote to fill\\n * @param signature Signature to confirm quote ownership\\n * @param amount Taker amount to fill\\n * @param takerTraits Specifies threshold as maximum allowed takingAmount when takingAmount is zero, otherwise specifies\\n * minimum allowed makingAmount. The 2nd (0 based index) highest bit specifies whether taker wants to skip maker's permit.\\n * @return makingAmount Actual amount transferred from maker to taker\\n * @return takingAmount Actual amount transferred from taker to maker\\n * @return orderHash Hash of the filled order\\n * @dev See tests for examples\\n */\\n function fillContractOrder(\\n Order calldata order,\\n bytes calldata signature,\\n uint256 amount,\\n TakerTraits takerTraits\\n ) external returns(uint256 makingAmount, uint256 takingAmount, bytes32 orderHash);\\n\\n /**\\n * @notice Same as `fillContractOrder` but allows to specify arguments that are used by the taker.\\n * @param order Order quote to fill\\n * @param signature Signature to confirm quote ownership\\n * @param amount Taker amount to fill\\n * @param takerTraits Specifies threshold as maximum allowed takingAmount when takingAmount is zero, otherwise specifies\\n * minimum allowed makingAmount. The 2nd (0 based index) highest bit specifies whether taker wants to skip maker's permit.\\n * @param args Arguments that are used by the taker (target, extension, interaction, permit)\\n * @return makingAmount Actual amount transferred from maker to taker\\n * @return takingAmount Actual amount transferred from taker to maker\\n * @return orderHash Hash of the filled order\\n * @dev See tests for examples\\n */\\n function fillContractOrderArgs(\\n Order calldata order,\\n bytes calldata signature,\\n uint256 amount,\\n TakerTraits takerTraits,\\n bytes calldata args\\n ) external returns(uint256 makingAmount, uint256 takingAmount, bytes32 orderHash);\\n}\\n\",\"keccak256\":\"0x8f13c59bdb818152a3046a63f1a65f8be1b8c0dbff6407e663bc20d1e6a3a84c\",\"license\":\"MIT\"},\"contracts/interfaces/IPostInteraction.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IOrderMixin.sol\\\";\\n\\ninterface IPostInteraction {\\n /**\\n * @notice Callback method that gets called after all fund transfers\\n * @param order Order being processed\\n * @param extension Order extension data\\n * @param orderHash Hash of the order being processed\\n * @param taker Taker address\\n * @param makingAmount Actual making amount\\n * @param takingAmount Actual taking amount\\n * @param remainingMakingAmount Order remaining making amount\\n * @param extraData Extra data\\n */\\n function postInteraction(\\n IOrderMixin.Order calldata order,\\n bytes calldata extension,\\n bytes32 orderHash,\\n address taker,\\n uint256 makingAmount,\\n uint256 takingAmount,\\n uint256 remainingMakingAmount,\\n bytes calldata extraData\\n ) external;\\n}\\n\",\"keccak256\":\"0x16a7386f4277240ad30942611a576865ce4ef13b38f6cb8d34f1bbb4c1211434\",\"license\":\"MIT\"},\"contracts/libraries/MakerTraitsLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\ntype MakerTraits is uint256;\\n\\n/**\\n * @title MakerTraitsLib\\n * @notice A library to manage and check MakerTraits, which are used to encode the maker's preferences for an order in a single uint256.\\n * @dev\\n * The MakerTraits type is a uint256 and different parts of the number are used to encode different traits.\\n * High bits are used for flags\\n * 255 bit `NO_PARTIAL_FILLS_FLAG` - if set, the order does not allow partial fills\\n * 254 bit `ALLOW_MULTIPLE_FILLS_FLAG` - if set, the order permits multiple fills\\n * 253 bit - unused\\n * 252 bit `PRE_INTERACTION_CALL_FLAG` - if set, the order requires pre-interaction call\\n * 251 bit `POST_INTERACTION_CALL_FLAG` - if set, the order requires post-interaction call\\n * 250 bit `NEED_CHECK_EPOCH_MANAGER_FLAG` - if set, the order requires to check the epoch manager\\n * 249 bit `HAS_EXTENSION_FLAG` - if set, the order has extension(s)\\n * 248 bit `USE_PERMIT2_FLAG` - if set, the order uses permit2\\n * 247 bit `UNWRAP_WETH_FLAG` - if set, the order requires to unwrap WETH\\n\\n * Low 200 bits are used for allowed sender, expiration, nonceOrEpoch, and series\\n * uint80 last 10 bytes of allowed sender address (0 if any)\\n * uint40 expiration timestamp (0 if none)\\n * uint40 nonce or epoch\\n * uint40 series\\n */\\nlibrary MakerTraitsLib {\\n // Low 200 bits are used for allowed sender, expiration, nonceOrEpoch, and series\\n uint256 private constant _ALLOWED_SENDER_MASK = type(uint80).max;\\n uint256 private constant _EXPIRATION_OFFSET = 80;\\n uint256 private constant _EXPIRATION_MASK = type(uint40).max;\\n uint256 private constant _NONCE_OR_EPOCH_OFFSET = 120;\\n uint256 private constant _NONCE_OR_EPOCH_MASK = type(uint40).max;\\n uint256 private constant _SERIES_OFFSET = 160;\\n uint256 private constant _SERIES_MASK = type(uint40).max;\\n\\n uint256 private constant _NO_PARTIAL_FILLS_FLAG = 1 << 255;\\n uint256 private constant _ALLOW_MULTIPLE_FILLS_FLAG = 1 << 254;\\n uint256 private constant _PRE_INTERACTION_CALL_FLAG = 1 << 252;\\n uint256 private constant _POST_INTERACTION_CALL_FLAG = 1 << 251;\\n uint256 private constant _NEED_CHECK_EPOCH_MANAGER_FLAG = 1 << 250;\\n uint256 private constant _HAS_EXTENSION_FLAG = 1 << 249;\\n uint256 private constant _USE_PERMIT2_FLAG = 1 << 248;\\n uint256 private constant _UNWRAP_WETH_FLAG = 1 << 247;\\n\\n /**\\n * @notice Checks if the order has the extension flag set.\\n * @dev If the `HAS_EXTENSION_FLAG` is set in the makerTraits, then the protocol expects that the order has extension(s).\\n * @param makerTraits The traits of the maker.\\n * @return result A boolean indicating whether the flag is set.\\n */\\n function hasExtension(MakerTraits makerTraits) internal pure returns (bool) {\\n return (MakerTraits.unwrap(makerTraits) & _HAS_EXTENSION_FLAG) != 0;\\n }\\n\\n /**\\n * @notice Checks if the maker allows a specific taker to fill the order.\\n * @param makerTraits The traits of the maker.\\n * @param sender The address of the taker to be checked.\\n * @return result A boolean indicating whether the taker is allowed.\\n */\\n function isAllowedSender(MakerTraits makerTraits, address sender) internal pure returns (bool) {\\n uint160 allowedSender = uint160(MakerTraits.unwrap(makerTraits) & _ALLOWED_SENDER_MASK);\\n return allowedSender == 0 || allowedSender == uint160(sender) & _ALLOWED_SENDER_MASK;\\n }\\n\\n /**\\n * @notice Checks if the order has expired.\\n * @param makerTraits The traits of the maker.\\n * @return result A boolean indicating whether the order has expired.\\n */\\n function isExpired(MakerTraits makerTraits) internal view returns (bool) {\\n uint256 expiration = (MakerTraits.unwrap(makerTraits) >> _EXPIRATION_OFFSET) & _EXPIRATION_MASK;\\n return expiration != 0 && expiration < block.timestamp; // solhint-disable-line not-rely-on-time\\n }\\n\\n /**\\n * @notice Returns the nonce or epoch of the order.\\n * @param makerTraits The traits of the maker.\\n * @return result The nonce or epoch of the order.\\n */\\n function nonceOrEpoch(MakerTraits makerTraits) internal pure returns (uint256) {\\n return (MakerTraits.unwrap(makerTraits) >> _NONCE_OR_EPOCH_OFFSET) & _NONCE_OR_EPOCH_MASK;\\n }\\n\\n /**\\n * @notice Returns the series of the order.\\n * @param makerTraits The traits of the maker.\\n * @return result The series of the order.\\n */\\n function series(MakerTraits makerTraits) internal pure returns (uint256) {\\n return (MakerTraits.unwrap(makerTraits) >> _SERIES_OFFSET) & _SERIES_MASK;\\n }\\n\\n /**\\n * @notice Determines if the order allows partial fills.\\n * @dev If the _NO_PARTIAL_FILLS_FLAG is not set in the makerTraits, then the order allows partial fills.\\n * @param makerTraits The traits of the maker, determining their preferences for the order.\\n * @return result A boolean indicating whether the maker allows partial fills.\\n */\\n function allowPartialFills(MakerTraits makerTraits) internal pure returns (bool) {\\n return (MakerTraits.unwrap(makerTraits) & _NO_PARTIAL_FILLS_FLAG) == 0;\\n }\\n\\n /**\\n * @notice Checks if the maker needs pre-interaction call.\\n * @param makerTraits The traits of the maker.\\n * @return result A boolean indicating whether the maker needs a pre-interaction call.\\n */\\n function needPreInteractionCall(MakerTraits makerTraits) internal pure returns (bool) {\\n return (MakerTraits.unwrap(makerTraits) & _PRE_INTERACTION_CALL_FLAG) != 0;\\n }\\n\\n /**\\n * @notice Checks if the maker needs post-interaction call.\\n * @param makerTraits The traits of the maker.\\n * @return result A boolean indicating whether the maker needs a post-interaction call.\\n */\\n function needPostInteractionCall(MakerTraits makerTraits) internal pure returns (bool) {\\n return (MakerTraits.unwrap(makerTraits) & _POST_INTERACTION_CALL_FLAG) != 0;\\n }\\n\\n /**\\n * @notice Determines if the order allows multiple fills.\\n * @dev If the _ALLOW_MULTIPLE_FILLS_FLAG is set in the makerTraits, then the maker allows multiple fills.\\n * @param makerTraits The traits of the maker, determining their preferences for the order.\\n * @return result A boolean indicating whether the maker allows multiple fills.\\n */\\n function allowMultipleFills(MakerTraits makerTraits) internal pure returns (bool) {\\n return (MakerTraits.unwrap(makerTraits) & _ALLOW_MULTIPLE_FILLS_FLAG) != 0;\\n }\\n\\n /**\\n * @notice Determines if an order should use the bit invalidator or remaining amount validator.\\n * @dev The bit invalidator can be used if the order does not allow partial or multiple fills.\\n * @param makerTraits The traits of the maker, determining their preferences for the order.\\n * @return result A boolean indicating whether the bit invalidator should be used.\\n * True if the order requires the use of the bit invalidator.\\n */\\n function useBitInvalidator(MakerTraits makerTraits) internal pure returns (bool) {\\n return !allowPartialFills(makerTraits) || !allowMultipleFills(makerTraits);\\n }\\n\\n /**\\n * @notice Checks if the maker needs to check the epoch.\\n * @param makerTraits The traits of the maker.\\n * @return result A boolean indicating whether the maker needs to check the epoch manager.\\n */\\n function needCheckEpochManager(MakerTraits makerTraits) internal pure returns (bool) {\\n return (MakerTraits.unwrap(makerTraits) & _NEED_CHECK_EPOCH_MANAGER_FLAG) != 0;\\n }\\n\\n /**\\n * @notice Checks if the maker uses permit2.\\n * @param makerTraits The traits of the maker.\\n * @return result A boolean indicating whether the maker uses permit2.\\n */\\n function usePermit2(MakerTraits makerTraits) internal pure returns (bool) {\\n return MakerTraits.unwrap(makerTraits) & _USE_PERMIT2_FLAG != 0;\\n }\\n\\n /**\\n * @notice Checks if the maker needs to unwraps WETH.\\n * @param makerTraits The traits of the maker.\\n * @return result A boolean indicating whether the maker needs to unwrap WETH.\\n */\\n function unwrapWeth(MakerTraits makerTraits) internal pure returns (bool) {\\n return MakerTraits.unwrap(makerTraits) & _UNWRAP_WETH_FLAG != 0;\\n }\\n}\\n\",\"keccak256\":\"0xd0e1f653233823874ede7ac1410dc0b21ca83b4c153bdeff32f6d1f6fd7917e3\",\"license\":\"MIT\"},\"contracts/libraries/TakerTraitsLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\ntype TakerTraits is uint256;\\n\\n/**\\n * @title TakerTraitsLib\\n * @notice This library to manage and check TakerTraits, which are used to encode the taker's preferences for an order in a single uint256.\\n * @dev The TakerTraits are structured as follows:\\n * High bits are used for flags\\n * 255 bit `_MAKER_AMOUNT_FLAG` - If set, the taking amount is calculated based on making amount, otherwise making amount is calculated based on taking amount.\\n * 254 bit `_UNWRAP_WETH_FLAG` - If set, the WETH will be unwrapped into ETH before sending to taker.\\n * 253 bit `_SKIP_ORDER_PERMIT_FLAG` - If set, the order skips maker's permit execution.\\n * 252 bit `_USE_PERMIT2_FLAG` - If set, the order uses the permit2 function for authorization.\\n * 251 bit `_ARGS_HAS_TARGET` - If set, then first 20 bytes of args are treated as target address for maker\\u2019s funds transfer.\\n * 224-247 bits `ARGS_EXTENSION_LENGTH` - The length of the extension calldata in the args.\\n * 200-223 bits `ARGS_INTERACTION_LENGTH` - The length of the interaction calldata in the args.\\n * 0-184 bits - The threshold amount (the maximum amount a taker agrees to give in exchange for a making amount).\\n */\\nlibrary TakerTraitsLib {\\n uint256 private constant _MAKER_AMOUNT_FLAG = 1 << 255;\\n uint256 private constant _UNWRAP_WETH_FLAG = 1 << 254;\\n uint256 private constant _SKIP_ORDER_PERMIT_FLAG = 1 << 253;\\n uint256 private constant _USE_PERMIT2_FLAG = 1 << 252;\\n uint256 private constant _ARGS_HAS_TARGET = 1 << 251;\\n\\n uint256 private constant _ARGS_EXTENSION_LENGTH_OFFSET = 224;\\n uint256 private constant _ARGS_EXTENSION_LENGTH_MASK = 0xffffff;\\n uint256 private constant _ARGS_INTERACTION_LENGTH_OFFSET = 200;\\n uint256 private constant _ARGS_INTERACTION_LENGTH_MASK = 0xffffff;\\n\\n uint256 private constant _AMOUNT_MASK = 0x000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /**\\n * @notice Checks if the args should contain target address.\\n * @param takerTraits The traits of the taker.\\n * @return result A boolean indicating whether the args should contain target address.\\n */\\n function argsHasTarget(TakerTraits takerTraits) internal pure returns (bool) {\\n return (TakerTraits.unwrap(takerTraits) & _ARGS_HAS_TARGET) != 0;\\n }\\n\\n /**\\n * @notice Retrieves the length of the extension calldata from the takerTraits.\\n * @param takerTraits The traits of the taker.\\n * @return result The length of the extension calldata encoded in the takerTraits.\\n */\\n function argsExtensionLength(TakerTraits takerTraits) internal pure returns (uint256) {\\n return (TakerTraits.unwrap(takerTraits) >> _ARGS_EXTENSION_LENGTH_OFFSET) & _ARGS_EXTENSION_LENGTH_MASK;\\n }\\n\\n /**\\n * @notice Retrieves the length of the interaction calldata from the takerTraits.\\n * @param takerTraits The traits of the taker.\\n * @return result The length of the interaction calldata encoded in the takerTraits.\\n */\\n function argsInteractionLength(TakerTraits takerTraits) internal pure returns (uint256) {\\n return (TakerTraits.unwrap(takerTraits) >> _ARGS_INTERACTION_LENGTH_OFFSET) & _ARGS_INTERACTION_LENGTH_MASK;\\n }\\n\\n /**\\n * @notice Checks if the taking amount should be calculated based on making amount.\\n * @param takerTraits The traits of the taker.\\n * @return result A boolean indicating whether the taking amount should be calculated based on making amount.\\n */\\n function isMakingAmount(TakerTraits takerTraits) internal pure returns (bool) {\\n return (TakerTraits.unwrap(takerTraits) & _MAKER_AMOUNT_FLAG) != 0;\\n }\\n\\n /**\\n * @notice Checks if the order should unwrap WETH and send ETH to taker.\\n * @param takerTraits The traits of the taker.\\n * @return result A boolean indicating whether the order should unwrap WETH.\\n */\\n function unwrapWeth(TakerTraits takerTraits) internal pure returns (bool) {\\n return (TakerTraits.unwrap(takerTraits) & _UNWRAP_WETH_FLAG) != 0;\\n }\\n\\n /**\\n * @notice Checks if the order should skip maker's permit execution.\\n * @param takerTraits The traits of the taker.\\n * @return result A boolean indicating whether the order don't apply permit.\\n */\\n function skipMakerPermit(TakerTraits takerTraits) internal pure returns (bool) {\\n return (TakerTraits.unwrap(takerTraits) & _SKIP_ORDER_PERMIT_FLAG) != 0;\\n }\\n\\n /**\\n * @notice Checks if the order uses the permit2 instead of permit.\\n * @param takerTraits The traits of the taker.\\n * @return result A boolean indicating whether the order uses the permit2.\\n */\\n function usePermit2(TakerTraits takerTraits) internal pure returns (bool) {\\n return (TakerTraits.unwrap(takerTraits) & _USE_PERMIT2_FLAG) != 0;\\n }\\n\\n /**\\n * @notice Retrieves the threshold amount from the takerTraits.\\n * The maximum amount a taker agrees to give in exchange for a making amount.\\n * @param takerTraits The traits of the taker.\\n * @return result The threshold amount encoded in the takerTraits.\\n */\\n function threshold(TakerTraits takerTraits) internal pure returns (uint256) {\\n return TakerTraits.unwrap(takerTraits) & _AMOUNT_MASK;\\n }\\n}\\n\",\"keccak256\":\"0x144f154a46e8daa0fec5b8215f1d8d3b694cb939236aa7bf89976b27965c2837\",\"license\":\"MIT\"}},\"version\":1}", - "bytecode": "0x60808060405234610016576102ba908161001b8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c63462ebde214610024575f80fd5b34610178577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e0811261017857610100136101785767ffffffffffffffff610104358181116101785761007f9036906004016101be565b50506101443573ffffffffffffffffffffffffffffffffffffffff90818116036101785761018435916101c435908111610178576100c19036906004016101be565b9281357fffffff000000000000000000000000000000000000000000000000000000000080821691600387106101a9575b505060e81c80820290828204148215171561017c576298968090049084601711610178578360243516926017861161015c575b61013e95508280610140575b50500391608435166101ec565b005b600361015592013560601c86608435166101ec565b5f82610131565b925093602b116101785761013e93601783013560601c92610125565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b908092508660030360031b1b16165f806100f2565b9181601f840112156101785782359167ffffffffffffffff8311610178576020838186019501011161017857565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af19081610262575b501561023857565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d1561027c575060015f5114601f3d11165b5f610230565b3b151561027656fea26469706673582212206cba7390adfef2ad4dc55a6238e9b1bbb8ac493f6a3c849bc1216147ac2ede7864736f6c63430008170033", - "deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c63462ebde214610024575f80fd5b34610178577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e0811261017857610100136101785767ffffffffffffffff610104358181116101785761007f9036906004016101be565b50506101443573ffffffffffffffffffffffffffffffffffffffff90818116036101785761018435916101c435908111610178576100c19036906004016101be565b9281357fffffff000000000000000000000000000000000000000000000000000000000080821691600387106101a9575b505060e81c80820290828204148215171561017c576298968090049084601711610178578360243516926017861161015c575b61013e95508280610140575b50500391608435166101ec565b005b600361015592013560601c86608435166101ec565b5f82610131565b925093602b116101785761013e93601783013560601c92610125565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b908092508660030360031b1b16165f806100f2565b9181601f840112156101785782359167ffffffffffffffff8311610178576020838186019501011161017857565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af19081610262575b501561023857565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d1561027c575060015f5114601f3d11165b5f610230565b3b151561027656fea26469706673582212206cba7390adfef2ad4dc55a6238e9b1bbb8ac493f6a3c849bc1216147ac2ede7864736f6c63430008170033", - "devdoc": { - "kind": "dev", - "methods": { - "postInteraction((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,uint256,bytes)": { - "details": "Takes the fee in taking tokens and transfers the rest to the maker. `extraData` consists of: 3 bytes — fee percentage (in 1e7) 20 bytes — fee recipient 20 bytes — receiver of taking tokens (optional, if not set, maker is used)" + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 95, + "gasUsed": "1352434", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000000000008000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x6e018964cfbef5fd6eee27856514b7af5ce6adce4fbe71515cb33704235d7c28", + "transactionHash": "0xcfd339bb25f6263a762529f4c7def9a2596f711a398d845068baa86d03c1eaa8", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0x6e018964cfbef5fd6eee27856514b7af5ce6adce4fbe71515cb33704235d7c28", + "blockNumber": 21754073, + "data": "0x", + "index": 203, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0xcfd339bb25f6263a762529f4c7def9a2596f711a398d845068baa86d03c1eaa8", + "transactionIndex": 95 } - }, - "version": 1 + ], + "blockNumber": 21754073, + "cumulativeGasUsed": "9691902", + "status": 1 }, - "userdoc": { - "kind": "user", - "methods": { - "postInteraction((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,uint256,bytes)": { - "notice": "See {IPostInteraction-postInteraction}." - } - }, - "version": 1 - }, - "storageLayout": { - "storage": [], - "types": null - } + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 1, + "bytecode": "0x60e0346200011157601f6200177738819003918201601f19168301916001600160401b03831184841017620001155780849260809460405283398101031262000111576200004d8162000129565b60208201516001600160a01b0392909183831683036200011157836200008460606200007c6040860162000129565b940162000129565b168015620000f9575f80546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c05261163890816200013f8239608051816104b1015260a051816105fc015260c051816109860152f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b0382168203620001115756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033" } \ No newline at end of file diff --git a/deployments/matic/FeeTaker.json b/deployments/matic/FeeTaker.json new file mode 100644 index 00000000..30e43d70 --- /dev/null +++ b/deployments/matic/FeeTaker.json @@ -0,0 +1,500 @@ +{ + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "SafeTransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "postInteraction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "transactionHash": "0x8b68ca56ab683f0cfe06d7c9b8a2b7f07e37cbcca0261e9e4a5d3e9f5cab2903", + "receipt": { + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 63, + "gasUsed": "1352434", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000008000008000000000000200000000000000000000000000000000000000800001000000000000000100000000000000000000020000000000000000000800000000000000000080000000000000400000000000000000000080000000000000000000000000000000000000000000200000000002000000000000000000000000000000000000000000000000004000800000000000000001000000008001000000000000000000100000000020000000020000000000000000000000000000000000000000000000000000100000", + "blockHash": "0x1c6cd3322474892a6efb254cfb9bce8bdba8cdfcf1630199da81c3c4ae2946e1", + "transactionHash": "0x8b68ca56ab683f0cfe06d7c9b8a2b7f07e37cbcca0261e9e4a5d3e9f5cab2903", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0x1c6cd3322474892a6efb254cfb9bce8bdba8cdfcf1630199da81c3c4ae2946e1", + "blockNumber": 67421458, + "data": "0x", + "index": 242, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0x8b68ca56ab683f0cfe06d7c9b8a2b7f07e37cbcca0261e9e4a5d3e9f5cab2903", + "transactionIndex": 63 + }, + { + "_type": "log", + "address": "0x0000000000000000000000000000000000001010", + "blockHash": "0x1c6cd3322474892a6efb254cfb9bce8bdba8cdfcf1630199da81c3c4ae2946e1", + "blockNumber": 67421458, + "data": "0x0000000000000000000000000000000000000000000000000096145f14772ddc0000000000000000000000000000000000000000000000070eb1ada2a064d80000000000000000000000000000000000000000000000049de1b3e831fbfa0db00000000000000000000000000000000000000000000000070e1b99438bedaa2400000000000000000000000000000000000000000000049de249fc9110713b8c", + "index": 243, + "topics": [ + "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", + "0x0000000000000000000000000000000000000000000000000000000000001010", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf", + "0x00000000000000000000000067b94473d81d0cd00849d563c94d0432ac988b49" + ], + "transactionHash": "0x8b68ca56ab683f0cfe06d7c9b8a2b7f07e37cbcca0261e9e4a5d3e9f5cab2903", + "transactionIndex": 63 + } + ], + "blockNumber": 67421458, + "cumulativeGasUsed": "7817393", + "status": 1 + }, + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 1, + "bytecode": "0x60e0346200011157601f6200177738819003918201601f19168301916001600160401b03831184841017620001155780849260809460405283398101031262000111576200004d8162000129565b60208201516001600160a01b0392909183831683036200011157836200008460606200007c6040860162000129565b940162000129565b168015620000f9575f80546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c05261163890816200013f8239608051816104b1015260a051816105fc015260c051816109860152f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b0382168203620001115756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033" +} \ No newline at end of file diff --git a/deployments/optimistic/FeeTaker.json b/deployments/optimistic/FeeTaker.json new file mode 100644 index 00000000..073db72c --- /dev/null +++ b/deployments/optimistic/FeeTaker.json @@ -0,0 +1,484 @@ +{ + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "SafeTransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "postInteraction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "transactionHash": "0x0172444fe1c45addcf1ed245cdefb0cc1b88898e7c13492ef9d616c68a13c95f", + "receipt": { + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 17, + "gasUsed": "1352218", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000000000008000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x8bae7df51bf7614f61d14294a22cc4dc49ed4e3c38e854902e736e77fffbadfb", + "transactionHash": "0x0172444fe1c45addcf1ed245cdefb0cc1b88898e7c13492ef9d616c68a13c95f", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0x8bae7df51bf7614f61d14294a22cc4dc49ed4e3c38e854902e736e77fffbadfb", + "blockNumber": 131421635, + "data": "0x", + "index": 89, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0x0172444fe1c45addcf1ed245cdefb0cc1b88898e7c13492ef9d616c68a13c95f", + "transactionIndex": 17 + } + ], + "blockNumber": 131421635, + "cumulativeGasUsed": "8031681", + "status": 1 + }, + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0x4200000000000000000000000000000000000006", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 1, + "bytecode": "0x60e0346200011157601f6200177738819003918201601f19168301916001600160401b03831184841017620001155780849260809460405283398101031262000111576200004d8162000129565b60208201516001600160a01b0392909183831683036200011157836200008460606200007c6040860162000129565b940162000129565b168015620000f9575f80546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c05261163890816200013f8239608051816104b1015260a051816105fc015260c051816109860152f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b0382168203620001115756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033" +} \ No newline at end of file diff --git a/deployments/xdai/FeeTaker.json b/deployments/xdai/FeeTaker.json new file mode 100644 index 00000000..7a9551ac --- /dev/null +++ b/deployments/xdai/FeeTaker.json @@ -0,0 +1,484 @@ +{ + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "limitOrderProtocol", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, + { + "internalType": "address", + "name": "weth", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ETHTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "EthTransferFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyLimitOrderProtocol", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "SafeTransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "postInteraction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "rescueFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "transactionHash": "0x24d308ebd9bee885267a0cca7283f38dd93acb418a43505c1f3ebce7cdf6004f", + "receipt": { + "to": "0xD935a2bb926019E0ed6fb31fbD5b1Bbb7c05bf65", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": null, + "transactionIndex": 8, + "gasUsed": "1352434", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000004000000000000008000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x9ca151765dbf1665a5ddc80f2c9b91b23ad5c4e1734194452915f00dbc9510fe", + "transactionHash": "0x24d308ebd9bee885267a0cca7283f38dd93acb418a43505c1f3ebce7cdf6004f", + "logs": [ + { + "_type": "log", + "address": "0x01e520D4E77DBe6833c8257cb8a05DbD24a4D332", + "blockHash": "0x9ca151765dbf1665a5ddc80f2c9b91b23ad5c4e1734194452915f00dbc9510fe", + "blockNumber": 38344845, + "data": "0x", + "index": 51, + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" + ], + "transactionHash": "0x24d308ebd9bee885267a0cca7283f38dd93acb418a43505c1f3ebce7cdf6004f", + "transactionIndex": 8 + } + ], + "blockNumber": 38344845, + "cumulativeGasUsed": "3943426", + "status": 1 + }, + "args": [ + "0x111111125421ca6dc452d289314280a0f8842a65", + "0xAccE550000863572B867E661647CD7D97b72C507", + "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d", + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" + ], + "numDeployments": 1, + "bytecode": "0x60e0346200011157601f6200177738819003918201601f19168301916001600160401b03831184841017620001155780849260809460405283398101031262000111576200004d8162000129565b60208201516001600160a01b0392909183831683036200011157836200008460606200007c6040860162000129565b940162000129565b168015620000f9575f80546001600160a01b03198116831782556040519616907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05260c05261163890816200013f8239608051816104b1015260a051816105fc015260c051816109860152f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b0382168203620001115756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033", + "deployedBytecode": "0x6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631d9671c314610ad7578063462ebde2146103f8578063715018a61461035c57806378e3214f146102365780638da5cb5b146101e5578063d7ff8a801461015a5763f2fde38b14610072575061000e565b346101575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff808216809203610153576100cb610cbe565b8115610122575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b602483604051907f1e4fbdf70000000000000000000000000000000000000000000000000000000082526004820152fd5b5f80fd5b80fd5b50346101575761018d61017f61016f36610b51565b849394919a98999295979a610eee565b99945097929b915099611540565b91620186a0910181016101a0818461134b565b9209151581018091116101b857602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101575760043573ffffffffffffffffffffffffffffffffffffffff8116908181036103585760243591610294610cbe565b8261029d578380f35b801590811561033a575b501561032957508047106102ff57818080809333611388f16102c7610d0e565b50156102d5575b5f80808380f35b60046040517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b90610335913390611466565b6102ce565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150145f6102a7565b8280fd5b503461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757610393610cbe565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610153577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101e081126101535761010013610153576101043567ffffffffffffffff811161015357610453903690600401610b23565b73ffffffffffffffffffffffffffffffffffffffff610144351661014435036101535767ffffffffffffffff6101c4351161015357610498366101c435600401610b23565b909273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610aad578115610a805781601511610153578160291161015357602984017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830173ffffffffffffffffffffffffffffffffffffffff60243516937f010000000000000000000000000000000000000000000000000000000000000080883516146109ef575b5090610569916101443591610eee565b9894969390969291921580610923575b6108f957806105a161059a620186a0866105ab9501018093610184356113d4565b93846112b4565b93610184356113d4565b019260443573ffffffffffffffffffffffffffffffffffffffff1630036108c35773ffffffffffffffffffffffffffffffffffffffff6084351673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016811480610897575b1561083b575061064d93829182610825575b82820361080b575b500390610184350303906114fe565b601484101561065a578480f35b6106648483610bfb565b60601c908460141161015357813b15610153575f80946107a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec976107269660146040519a8b998a9889977f462ebde200000000000000000000000000000000000000000000000000000000895260043560048a015260243560248a015260443560448a015260643560648a015260843560848a015260a43560a48a015260c43560c48a015260e43560e48a01526101e06101048a01526101e4890191610c80565b936101243561012488015273ffffffffffffffffffffffffffffffffffffffff610144351661014488015261016435610164880152610184356101848801526101a4356101a48801527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc878603016101c4880152019101610c80565b03925af18015610800576107b8575b8080808480f35b905067ffffffffffffffff81116107d3576040525f806107b1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b61081f90601584840391013560601c6114fe565b5f61063e565b61083683600183013560601c6114fe565b610636565b929161086094819282610880575b828203610865575b50039061018435030391611466565b61064d565b61087a90601584840391013560601c87611466565b5f610851565b61089283600183013560601c88611466565b610849565b507e8000000000000000000000000000000000000000000000000000000000000060e435161515610624565b509182915003011561064d5760046040517f679a57eb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0155201f000000000000000000000000000000000000000000000000000000008152fd5b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101443516600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610800575f916109bd575b5015610579565b90506020813d6020116109e7575b816109d860209383610c3f565b8101031261015357515f6109b6565b3d91506109cb565b9350610a239150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7830160298601610bfb565b60601c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7810160141161015357603d8501907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc301610569610559565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517fd25aa106000000000000000000000000000000000000000000000000000000008152fd5b34610153576020610b1b610b12620186a0610b04610af436610b51565b849394919b98999295979b610eee565b99945097929c91509961110a565b920101906111f8565b604051908152f35b9181601f840112156101535782359167ffffffffffffffff8311610153576020838186019501011161015357565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82016101c0811261015357610100136101535760049167ffffffffffffffff90610104358281116101535781610bab91600401610b23565b9390939261012435926101443573ffffffffffffffffffffffffffffffffffffffff811681036101535792610164359261018435926101a43591821161015357610bf791600401610b23565b9091565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110610c3057505050565b60140360031b82901b16169150565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107d357604052565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610cde57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b3d15610d66573d9067ffffffffffffffff82116107d35760405191610d5b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c3f565b82523d5f602084013e565b606090565b90919269ffffffffffffffffffff5f9416918315610a8057600190803560f81c90600a808302848101808611610153578810610153578281018501978190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01965f9386015b858510610de25750505050505050565b82841161015357803560b01c8214610e24577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff684889201930194019391610dd2565b509498505050505050565b7fffff0000000000000000000000000000000000000000000000000000000000009035818116939260028110610e6457505050565b60020360031b82901b16169150565b7fff000000000000000000000000000000000000000000000000000000000000009035818116939260018110610ea857505050565b60010360031b82901b16169150565b8115610ec1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b91610ef98284610e2f565b60f01c928260021161015357610f347ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840160028301610e73565b60f81c9260648411611034578060031161015357610f777ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820160038401610e2f565b60f01c928160051161015357610fb27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb830160058501610e73565b60f81c926064841161100a57826006116101535760067ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa610ff594019101610d6b565b91969092876110015750565b60649194020492565b60046040517f3066a1f1000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc5374e2d000000000000000000000000000000000000000000000000000000008152fd5b949073ffffffffffffffffffffffffffffffffffffffff926111079a98959997946110df9260e06101c09180358b52602081013560208c0152604081013560408c0152606081013560608c0152608081013560808c015260a081013560a08c015260c081013560c08c0152013560e08a0152806101008a0152880191610c80565b97610120860152166101408401526101608301526101808201526101a0818503910152610c80565b90565b90979496939594929390601484106111dc576111268483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7f1d9671c3000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b03915afa908115610800575f916111ad575090565b90506020813d6020116111d4575b816111c860209383610c3f565b81010312610153575190565b3d91506111bb565b9695505050505050611107925060a060c08301359201356113d4565b90620186a090818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906111079250610eb7565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382099082808310920391808303921461134157816064111561132f577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b715f5260116020526024601cfd5b5050606491500490565b90808202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818409908280831092039180830392146113c857620186a0908282111561132f577f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d940990828211900360fb1b910360051c170290565b5050620186a091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146112a7578483111561128f5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b9160446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282855af190816114dc575b50156114b257565b60046040517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156114f6575060015f5114601f3d11165b5f6114aa565b3b15156114f0565b5f80809381935af161150e610d0e565b501561151657565b60046040517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90979496939594929390601484106115ce5761155c8483610bfb565b60601c9584601411610153576020986014987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec97611198966040519d8e9c8d9b8c9b7fd7ff8a80000000000000000000000000000000000000000000000000000000008d520198019660048b0161105e565b975050505050505060a060c0830135920135906115ec8282856113d4565b928215610ec15709151581018091116101b8579056fea2646970667358221220b09891a4d7c09cd992131e5ae893c590631855f6774a8daab79028a3de6ad1f164736f6c63430008170033" +} \ No newline at end of file diff --git a/deployments/zksync/FeeTaker.json b/deployments/zksync/FeeTaker.json index 6fd9d0ad..cb928ff3 100644 --- a/deployments/zksync/FeeTaker.json +++ b/deployments/zksync/FeeTaker.json @@ -1,5 +1,5 @@ { - "address": "0x3AF184d3182D355027f8c52AC7Db5e3F86b5f1a5", + "address": "0x43AC59B1740a1756098CC7A943279aec57E7300E", "abi": [ { "inputs": [ @@ -8,6 +8,11 @@ "name": "limitOrderProtocol", "type": "address" }, + { + "internalType": "contract IERC20", + "name": "accessToken", + "type": "address" + }, { "internalType": "address", "name": "weth", @@ -32,16 +37,36 @@ "name": "EthTransferFailed", "type": "error" }, + { + "inputs": [], + "name": "InconsistentFee", + "type": "error" + }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, + { + "inputs": [], + "name": "InvalidIntegratorShare", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidWhitelistDiscountNumerator", + "type": "error" + }, { "inputs": [], "name": "OnlyLimitOrderProtocol", "type": "error" }, + { + "inputs": [], + "name": "OnlyWhitelistOrAccessToken", + "type": "error" + }, { "inputs": [ { @@ -88,6 +113,188 @@ "name": "OwnershipTransferred", "type": "event" }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getMakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "salt", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "maker", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "receiver", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "makerAsset", + "type": "uint256" + }, + { + "internalType": "Address", + "name": "takerAsset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takingAmount", + "type": "uint256" + }, + { + "internalType": "MakerTraits", + "name": "makerTraits", + "type": "uint256" + } + ], + "internalType": "struct IOrderMixin.Order", + "name": "order", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "extension", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "makingAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "remainingMakingAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "getTakingAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "owner", @@ -152,22 +359,22 @@ }, { "internalType": "bytes", - "name": "", + "name": "extension", "type": "bytes" }, { "internalType": "bytes32", - "name": "", + "name": "orderHash", "type": "bytes32" }, { "internalType": "address", - "name": "", + "name": "taker", "type": "address" }, { "internalType": "uint256", - "name": "", + "name": "makingAmount", "type": "uint256" }, { @@ -177,7 +384,7 @@ }, { "internalType": "uint256", - "name": "", + "name": "remainingMakingAmount", "type": "uint256" }, { @@ -234,127 +441,128 @@ "type": "receive" } ], - "transactionHash": "0xce35fcc50a65b924b449ba96b749f19fc5c6a1a3e9a85f8ea6de875be74e1294", + "transactionHash": "0x620e9039ded8de68afdd5a24e5570fc1c64143244ab51f0b2c66adf64e543b2b", "receipt": { "to": "0x0000000000000000000000000000000000008006", - "from": "0x11799622F4D98A24514011E8527B969f7488eF47", - "contractAddress": "0x3AF184d3182D355027f8c52AC7Db5e3F86b5f1a5", - "transactionIndex": 1, - "gasUsed": "33507145", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockHash": "0x75138040b808967f05cde905cf8c508a967039a2c1b8f4a6aa93dea5d3ace8f7", - "transactionHash": "0xce35fcc50a65b924b449ba96b749f19fc5c6a1a3e9a85f8ea6de875be74e1294", + "from": "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF", + "contractAddress": "0x43AC59B1740a1756098CC7A943279aec57E7300E", + "transactionIndex": 2, + "gasUsed": "6682605", + "logsBloom": "0x000000000004000800000100000000000000000000004000008000000000000000000010000000000000000000050000000000000080000000000000000000000001000000000c000004002800004000040100000000000000000000000008000000000002010000000000001000080000000000000040000000001000000040000000100000000800000400010000000000010000080000000000000000008080000000000210000400000080010000000000000000040000200001000a400000000002008000000000000000000000000010000100000000000000000020000000000000000000000000000000000000000040000000000000400080000000", + "blockHash": "0x015790d1ae7a24297ccddcffbe866efd7e4b45406499d9d4b9f0d78b8ae90ce1", + "transactionHash": "0x620e9039ded8de68afdd5a24e5570fc1c64143244ab51f0b2c66adf64e543b2b", "logs": [ { - "transactionIndex": 1, - "blockNumber": 31159144, - "transactionHash": "0xce35fcc50a65b924b449ba96b749f19fc5c6a1a3e9a85f8ea6de875be74e1294", + "transactionIndex": 2, + "blockNumber": 55046569, + "transactionHash": "0x620e9039ded8de68afdd5a24e5570fc1c64143244ab51f0b2c66adf64e543b2b", "address": "0x000000000000000000000000000000000000800A", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000011799622f4d98a24514011e8527b969f7488ef47", + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf", "0x0000000000000000000000000000000000000000000000000000000000008001" ], - "data": "0x0000000000000000000000000000000000000000000000000004b7694b9ef3c0", - "logIndex": 3, - "blockHash": "0x75138040b808967f05cde905cf8c508a967039a2c1b8f4a6aa93dea5d3ace8f7" + "data": "0x0000000000000000000000000000000000000000000000000001699c75a4a610", + "logIndex": 32, + "blockHash": "0x015790d1ae7a24297ccddcffbe866efd7e4b45406499d9d4b9f0d78b8ae90ce1" }, { - "transactionIndex": 1, - "blockNumber": 31159144, - "transactionHash": "0xce35fcc50a65b924b449ba96b749f19fc5c6a1a3e9a85f8ea6de875be74e1294", + "transactionIndex": 2, + "blockNumber": 55046569, + "transactionHash": "0x620e9039ded8de68afdd5a24e5570fc1c64143244ab51f0b2c66adf64e543b2b", "address": "0x0000000000000000000000000000000000008008", "topics": [ "0x27fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000008820000000000000000000000000000000000000000000000000000000000008008000000000000000000000000000000000000000000000000000000000000800e0dada669d38a8eb92395a2c16edc555309cd787fc8959e6789751b116fc10d50", - "logIndex": 4, - "blockHash": "0x75138040b808967f05cde905cf8c508a967039a2c1b8f4a6aa93dea5d3ace8f7" + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000e960000000000000000000000000000000000000000000000000000000000008008000000000000000000000000000000000000000000000000000000000000800eb832011ce6335933aae9f7808a0806f3f8e4b1a90f7f5846b38f319a4fdd0f17", + "logIndex": 33, + "blockHash": "0x015790d1ae7a24297ccddcffbe866efd7e4b45406499d9d4b9f0d78b8ae90ce1" }, { - "transactionIndex": 1, - "blockNumber": 31159144, - "transactionHash": "0xce35fcc50a65b924b449ba96b749f19fc5c6a1a3e9a85f8ea6de875be74e1294", + "transactionIndex": 2, + "blockNumber": 55046569, + "transactionHash": "0x620e9039ded8de68afdd5a24e5570fc1c64143244ab51f0b2c66adf64e543b2b", "address": "0x0000000000000000000000000000000000008008", "topics": [ "0x3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce241", "0x000000000000000000000000000000000000000000000000000000000000800e", - "0x0dada669d38a8eb92395a2c16edc555309cd787fc8959e6789751b116fc10d50" + "0xb832011ce6335933aae9f7808a0806f3f8e4b1a90f7f5846b38f319a4fdd0f17" ], - "data": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000018fa020c0000000000000000000001950000213d000001950000c13d0000000002000414000000e901000041000003a100010430000000000101043b039f03950000040f0000000006000019000000c0012002100000000002018019000000e90320009c00000000050000190000000101200190000000400100043d000000000707043b0000000102200190000000000343016f000200000001035500000001066000390000000507600210000002f20000613d039f039a0000040f0000000000100439000000ed011001c7000000800010043f000001950000413d000000010200003900000000001004350000000400100443000000000202043b0000000001028019000000e90310009c000000e902000041ffffffffffffffff000000000001042d0000000303000029000003610000213d000002030000013d000000c001100210000000000100041400000008020000290000000803000029000000fd011001c7000000000101004b000003a00001042e000000000103004b000000400110021000000000002104350000000504400210000000000100041a000000000202004b0000000002000416000000e903300197000000600330027000000000030100190000000000310435000000000343019f00000000033501cf000000000535022f0000010003300089000000000505043b000000000434022f00000000043401cf000000000401043300000003033002100000000001140019000000000515034f0000000501100210000000000603004b000000000716004b0000000000780435000000000775034f00000000087400190000000501100272000000020500036700000000041404360000001f0310018f000000400030043f000003610000c13d0000000105500190000000fe0630009c0000000105004039000000000543004b0000000003340019000000400400043d0000003f03300039000000200400008a0000001f03100039000000000301004b000000e901100197000000e90010019d00000060011002700000800902000039000000200130008c000000690000c13d00008002020000390000010401000041000002030000613d000000000003001f0000000000540435000000000565019f00000000055701cf000000000757022f0000010005500089000000000741034f000000000656022f00000000065601cf00000000060404330000000305500210000000000605004b000000000746004b0000000000870435000000000808043b000000000871034f00000005044002720000001f0540018f00000020040080390000000004030019000000200430008c00000000010000310000000801000029000000000300003100000007020000290000000601000029000800000002001d000000eb01100197000002190000013d000000ee0400004100000003030000390000800d02000039000000000010041b0000000402100039000000f9010000410000000002000411000000eb05100197000000040230008a00000044000000000200000200000000eeeeeeeeeeeeeeee000000240000000000000000ffffffff00000000020000190000000202000029000000000001042f00000110011001c7000000000112019f000000c0022002100000000001038019000000e90410009c0000000002038019000000e90420009c000000e9030000410000010b01000041000000fe0310009c000000010110008c0000000001000433000002030000413d000000040240008c000000000161019f0000000001010433000000040330008c000000000032043500000102020000410000010c0110009c0000002001000039000000000221034f0000000804000029000080050200003900000107011001c70000010601000041000000000404043b000000000131004b000000690000613d000001950000613d000000ec0110019700000000010004160000000001000019000000000141034f000001970000c13d000000000325004b000000000201043b000000400020043ff47dc3176cccc6c0f4684b16c7b90eb3b03622bba37bf17c6cb7068b3756f140fb7f5079000000006d963f88000000000000000000000001008000000000000000000000000186a04e487b7100000000ffff0000000000000000000400000080d25aa10600000000ab882de59d99a32eff553aecb10793d015d089f94afb7896310ab089e4439a4c8000000000000000023a8d90e8508b8302500962caba6a1568e884a7374b41e01806aa1896bbf2650000004400000080a9059cbb00000000f4d678b8000000000000000400000000b12d13eb00000000125fc972a6507f396b1951864fbfc14e829bd487b90b72539cc7f708afc6594400000000eeeeeeee00000020000000800000002400000080118cdaa70000000000000000715018a600000000462ebde200000000f2fde38b000000008da5cb5b0000000078e3214f0000000078e3214e1e4fbdf700000000000000c0000001000000000200000000e3b4186f6b6457e019497f9722a3daaf1344cd1fd0a4f2848be0079c531659140200000000000000ffffffff0000000000000001ffffffe00000039f000004320000039d0021042300000398002104210000035a0000013d0000035a0000613d0000037c0000413d000003840000613d000000f101000041000000040010043f0000004101000039000003670000a13d0000010f020000410000035f0000c13d000000020400002900000007033000690000030c0000013d0000030c0000613d000003350000413d0000033d0000613d000003610000813d0000010e0310009c000003530000013d0000034d0000c13d000000070230006b000003580000013d000003150000c13d000000040220008c0000035c0000613d0000031e0000c13d000001630000613d000002000000813d000001630000c13d000002f60000c13d000002d90000613d000002c40000413d000002cb0000613d000001fa0000013d000002f30000c13d0000029a0000613d000002850000413d0000028c0000613d0000030a0000013d000002fd0000c13d0000030e0000413d000002dd0000013d000002af0000c13d00000000004204350000002402100039000003640000013d000000110100003900000109010000410000010801000041000002150000013d000002150000613d000002370000413d0000023f0000613d00000100011001c7000000ff02000041000000000102004b000002200000c13d000000010220018f000000e90510009c00000111020000410000000400200443000001fe0000c13d000001e60000613d000001d10000413d000001d80000613d00000103011001c70000000001048019000000e904000041000002130000013d000002060000c13d0000000704000029000001eb0000013d000000800100043d000001c00000c13d000000040320008c000000a40040043f000000840050043f0000010201000041000000830000013d000000840010043f000000800020043f000000f802000041000000840020043f000000f801000041000000ef01000041000001200010044300000002010000390000010000100443000001a000300443000001800010044300000160001004430000014000000443000000a00030043f0000000703000029000000eb05200197000000c0013002100000000003018019000000e90430009c0000000003000414000700000003001d000000ec01200197000000000200041a0000029e0000013d000002700000c13d000000020300002900000000002304350000002403100039000000030220006a000002570000813d000002670000c13d0000010d011001980000000101100367000000e4010000390000015f0000c13d000000080110006b00000060042002700000000102000029000800eb0030019b00000024001004430000000501000029000800000001001d000000840110037000020060002002780000003a0220003900000004020000290000002a0220008c0000013f0000613d000000160240008c000100000002001d000200eb0030019b000000000303043b00000024031003700000000202200039000000160340008c0003010c303001320000000603000029000002530000c13d000000000343004b00000007545000fa0000000605000029000001290000613d000000070400006b00060007403000bd000000f003300270000000000334016f000000000421034f000000010100036700000020021000390000000003028019000000020140008c00000000031201cf0000010a02000041000000100110008900000003014002100000024f0000c13d000000000112004b0000002400000443000500000001001d0000000001000412000700000007001d000400000008001d000600000004001d00000024011000390000000001280019000000fe0120009c0000000404800039000000000204004b000000000405c019000001050220009c0000000004008019000000000602004b00000105022001970000000005048019000000000532004b00000105040000410000002302800039000000fe0280009c000000000802043b000001c402100370000000000702043b0000018402100370000000eb0220009c0000014402100370000000000232004b00000024022000390000000002420019000000fe0540009c000000000441034f0000000404200039000000000405004b000000000506c019000001050440009c0000000005008019000000000704004b00000105044001970000000006058019000000000634004b00000105050000410000002304200039000000fe0420009c0000010402100370000001e00220008c000000fa010000410000010102000041000001b90000813d0000800a020000390000000001000410000000fc01000041000800000004001d000700000005001d000001ae0000c13d000000fb0110009c0000009e0000613d000000eb01200198000000000104004b0000019c0000c13d000000000315004b0000000001000411000000000401043b0000002401100370000000eb0320009c0000000402100370000000400220008c000000690000013d000000f70120009c000000bd0000613d000000f60420009c000000f1011001c70000000000020435000000f002000041000001740000c13d000000000106004b000000eb0160009c000001000600043d000000eb0130009c000000e00300043d000000eb0120009c000000c00200043d000000600130008c0000000000140435000000000151019f00000000012101cf000000000121022f0000010002200089000000000525022f00000000052501cf0000000005040433000000c00440003900000003022002100000004f0000613d000000000502004b000000380000413d000000000645004b00000001055000390000000000760435000000c006600039000000000761034f0000000506500210000000400000613d00000005043002720000001f0230018f000000ea02200197000000df02300039000000840000043f000000f001000041000001a10000c13d000000000206004b000000eb0110009c000000eb061001970000000401100370000000200220008c000000f50220009c000000b50000613d000000f40420009c000000870000613d000000f30420009c0000006b0000a13d000000f20420009c000000e002200270000000670000413d000000040230008c00000080020000390000002e0000c13d0001000000010355000200000031035500080000000000020003000000000002020b020a0037003600350209020800100207020600b60205020400b5020302020201020001ff01fe01fd01fc0002003400330002008801fb001a01fa000601f901f8000100320087008600b400b301f701f601f5001901f40085000500340033000201f301f200b601f101f001ef000c01ee01ed000f01ec01eb01ea01e901e801e701e6003100b201e501e401e301e201e1000601e001df01de01dd01dc01db001a01da01d9000101d801d7000101d601d5000101d401d3000e01d20030008401d100210020001f002f01d00005002e000200b1002d01cf01ce01cd000200b0002c000200320087008600b400b300af008300040003000b000a0009001800820081008000080007000d00ae01cc003400330002008801cb001a01ca001e01c9000101c801c70032008701c601c501c401c300ad01c201c101c001bf01be01bd01bc001701bb001d00040003000b000a0009002b01ba0016001000150006002a00ac01b9000e01b8007f00b0002c00020032007e001901b7002d003400330002008801b6001a01b5001e01b4000101b301b201b1000801b001af01ae01ad01ac01ab01aa000201a901a800ab01a7000101a601a501a4000101a3001e01a2000101a101a0019f019e019d0001019c019b019a000c01990198019701960195019401930002019200b200b5019100010190018f00ac0001018e007d018d018c00aa0017018b018a001d018900040003000b000a000900a900a80016001000150006007e00860188018700a7018601850184018301820181007c0180017f017e00ab017d017c017b017a017901780177017601750174017300a70172001a017100a60170016f016e001e016d016c016b0029016a0169001a016800a6001e016701660006016500aa00170164001d00a5016300040003000b000a000900a900a80016002a016200100015016101600006007e015f015e015d015c0006015b015a007c00a4007b01590158000e0157015600a300300084015500a20003002a00a1015400a0001c007a0153007d01520151009f008300040150014f014e014d014c0018014b0082008100800007014a000d007900ae001901490148014700a5014601450144014301420141002d00b1000501400019013f00850005013e013d013c0085000500af009f008300040003000b000a00090018008200810080013b013a0019013901380028013701360135001c007a013400280133009e0132001b0078013101300020012f0027012e007d000700370036003500770076007500740073012d000800140072007100700013006f012c006e012b006d0031006c006b006a0069000f0068006700660065006400630012000d00290062002e012a00610017012900040003000b000a0009002b00600016001000150006002c005f0026005e009d009c009b00ad000e0128007f00210127001f00270018005d000c000701260012005c005b005a005901250124005f000e0123003000210020001f002f01220005009a002500580057001100560011005500540053000c0052005100250050004f004e004d004c004b004a01210008001400490048000f00470013004601200045011f00440043004200410040003f003e003d003c003b003a00390038011e011d0019011c00050099001c011b011a000e0119002400a200a30030008401180003002a00a1011700a0001c007a0116007c00a401150028009e0114001b0078011300980097009600950094002f00930092009100290007003700360035007700760075007400730112000800140072007100700013006f0111006e0110006d0031006c006b006a0069000f0068006700660065006400630012000d0062002e010f006100170079001d00040003000b000a0009002b0060001600100015010e00980097009600950094002f0093009200910029000700370036003500770076007500740073010d000800140072007100700013006f010c006e010b006d0031006c006b006a0069000f0068006700660065006400630012000d0062002e010a006100170079001d00040003000b000a0009002b00600016001000150006002c007b010900260090005e01080026005e007b009d009c009b0107002600210020001f00270018005d0024000c00070012005c005b005a00590106000d01050028008f01040103001b0078010200210020001f0027002401010100008f00ff00fe00fd00580057001100560011005500540053000c0052005100250050004f004e004d004c004b004a00fc0008001400490048000f00470013004600fb004500fa00440043004200410040003f003e003d003c003b003a0039003800f9002400f80018005d00f7000c00070012005c005b005a005900f6000d005f000e00f5007f009a00f40099001c00f300f200f1000500580057001100560011005500540053000c0052005100250050004f004e004d004c004b004a00f00008001400490048000f00470013004600ef004500ee00440043004200410040003f003e003d003c003b003a0039003800ed009000ec001b0023008e002300eb001b0023008e002300ea002d000500000000000000000000008d00000000000000e90000008d00220022002200e80000000000e700000000000000e600e500e400e300e2000000e1000000e000000000000000000000008c000000000000000000df00000000000000de00000000000000dd00000000000000dc00000000000000db00000000000000da00d90000000000000000000000d800000000000000d70000000000d6008b008b00d500d400d300d2008a0000008c0000000000000000002200d10000000000000000000000d0000000cf00000000000000ce0000000000000000000000cd000000cc00cb00ca00c900c800000000000000c700c600c500c4008a00000089000000c30000000000000000000000c2000000c100000000000000c000000000000000000000000000bf00be0000000000000000000000bd000000bc000000000000000000000089000000bb00000000000000ba00b900b800b7000000000000", - "logIndex": 5, - "blockHash": "0x75138040b808967f05cde905cf8c508a967039a2c1b8f4a6aa93dea5d3ace8f7" + "data": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000556207350000000000000000000003580000213d000003580000413d000000000202043b0000000006000019000000000101043b000003580000c13d000000000707043bffffffffffffffff0000000002000414000000000500001900000001022001900000000106600039000000050760021000000000040300190000032d0100004100000cb100010430000200000001035500000000001004350caf0caa0000040f0000000002018019000000400100043d00000000002304350caf0ca50000040f000000c0012002100000032d0320009c000000000d0d043b000001000550008900000003055002100000002004008039000000000303043b00000000030100190000000208800089000000000078043500000ad10000613d00000004001004430000000101200190000000000103004b0000032d0330019700000060033002700000000105004039000000200130008c000000000757022f000000000808043b000002aa0000013d0000000000100439000000010110036700000000877800a900000000986700a9000000000756004b0000000901000029000000000003001f00000000055701cf0000001f0540018f000000200430008c0000000003000031000000000505043b0000000007000019000000000404043b00000cb00001042e000000000101004b000000800770021000000349055001970000000003000019000000000114001900000bcf0000213d000000200400008a000002980000613d000000000656022f00000001020000390000000c01000029000000000161019f00000359011001c7000000000b0b043b000000000909043b00000331011001c7000000400110021000000000010280190000032d02000041000000000202004b000000800010043f000000000001042d000002980000013d000000000112019f00000000010380190000032d0410009c0000032d0300004100000000533500a90000032d0420009c00000000060504330000000005520019000000050550021000000000087200190000008008800210000000000585019f000000000858022f00000000085801cf0000000002000019000000000201043b000000000708801900000001010003670000000000310435000000000343019f0000010003300089000000000434022f0000000303300210000000000603004b00000bcf0000c13d000000000334001900000060011002700000800202000039000000000565019f000000000605004b000000c001100210000000000100041400000355010000410000000103300039000000000a0a043b0000032d0310009c0000000000210435000000050440021000000000020004160000000205500089000000c00220021000000000020380190000000000340435000000040330008c000000800440021000000080099002100000034f0970009c0000034e0970009c0000001101000039000000000015043500000000014101cf000000000141022f0000010004400089000000000646022f00000000064601cf0000000304400210000000000151034f000000000604004b000000000771034f00000005053002720000001f0430018f000000400200043d0000034906600197000000010660008a000000010660208a00000349a96000d10000034a0970009c0000000506600210000000000705004b000000000867004b000000010770003900000005087002100000032d0510009c00000000040060190000000005006019000000000651034f00000000033501cf000000000535022f00000000043401cf0000000004010433000000000515034f0000000501100210000000000716004b000000000775034f00000000087400190000000501100272000000020500036700000000041404360000001f0310018f000000400030043f0000000105500190000003410630009c000000000543004b000000400400043d000000000343016f0000003f03100039000000000301004b0000032d011001970000032d0010019d0000800902000039000000010110008c0000000001000433000002980000413d00000360010000410000000000540435000000000741034f00000000065601cf0000000006040433000000000746004b0000000000870435000000000871034f000000050440027200000000010000310000000b020000290000000c02000029000000000441034f000000040230008a0000000001000019000000000761034f000000000100041a00000000857300a90000000001088019000000090200002900000369011001c700000000010104330000000903000029000000080200002900000008030000290000034907700197000000000408801900000000070b801900000001011000390000000005560049000000000cdc004b000000800db00210000003500ca0009c000003490cb0009c000000010aa0008a000003490bb00197000000800a800270000000000778022f000000040880008c000000000b0a8019000000020990008c000000000b900049000000020a00008a0000000009084019000000040a80008c000000020980027000000000020880190000034b01000041000005c60000013d000000400010043f0000001f01400039000000000056043500000000080604330000000506400272000000000131019f00000060011002100000000000030435000000000035043500000080011002100000000001006019000000010300008a000000000981034f000000000a000019000000000606043b00000000010480190000032d040000410000000b01000029000000000300041400000bd20000013d000080050200003900000362011001c70000036101000041000b00000001001d000000000c0c043b000000000c31034f000000000e0b004b000000000805004b0000000e02000029000002010000613d000000000b31034f0000014402100370000000000232004b0000034001000041000003580000613d000003320400004100000003030000390000800d02000039000000000010041b00000000020004110000032f01100197000000400020043f00000044000000000200000200000000eeeeeeeeeeeeeeeefffffffffffffffe000000240000000000000000ffffffff00000000833800a900000000987300a900000c5d0000213d00000c4a0000213d0000034f0960009c00000000060880190000034e0960009c00000080010040390000034d0130009c000000010770008a000000010770208a00000349ba7000d10000034a0a80009c000000010600008a0000033501000041000000040010043f00000b620000613d00000ba10000613d000000000001042f000008f40000c13d0000003901100039000000040240008c000000600420027000000004031000390000000a0400002900000000004604350000000e0500002900000000004304350000000a030000290000035e02000041000000240310003900000001010000290000000b0120006b000000e4021003700000004402100370000000644330011a0000034903300197000000010330008a000000010200403900000000008904350000032d0450009c000000010330208a00000349763000d10000034a0640009c0caf0bd50000040f0000034c01000041000000200010043f000003513130012a0000078c0000213d000000000898019f000007790000213d000000000b6b001900000080040040390000034d0430009c00000000baab00a9000000020bb0008900000000cb9a00a900000000cbbc00a9000000020cc0008900000000dc9b00a9000007000000213d000000000bcb004b000000000cdc019f000006eb0000213d000000010a00008a0000034f0ca0009c000000000a0b80190000034e0ca0009c00000080070040390000034d0730009c00000354011001c700000000273200d900000000437300d90000008005500210000000f002200270000000020660008900000000744700a9000000020770008900000000876400a9000000020770015f00000003876000c9000000000686019f00000080069002100000034906a00197000000000d8d019f000006250000213d00000349088001970000000009b900490000000009a9019f000000000ded004b000000000eae019f000000800ec00210000006120000213d000003500db0009c000003490dc0009c000000010bb0008a000000ff0770018f000000010700008a000000100770008c0000000008074019000000100970008c00000004087002700000000807708270000001000970008c0000001008700270000000200870027000000080020040390000034d0230009c000000120100603900000000613100d90000004001200210000005c60000613d000003490730009c00000000453400d900000012010000390000000006650019000000000557019f000000000889004b000000000858019f000003498670012a0000000007670019000000000787019f00000060022002700000008008500270000003490630009c00000000563b00d900000000253200d9000005d10000813d0000008001000039000000000203004b0000065e0000013d000000800300043d000000200230008c000000600110018f00000080066000390000000000980435000000800880003900000348011001c7000000c00330021000000000030480190000032d0530009c000000000445016f0000008006600210000000010550008a000000040520008c0000000003130019000000000057043500000000055601cf00000000080704330000000007710019000000000676034f0000000507700210000000010220003900000005073002720000001f0530018f0000001405c00039000002240050043f000001000bb00089000000000ebe022f000000000ebe01cf000000000e0d0433000002640dd00039000000030bb00210000000050dd00210000000000ed3004b0000000000fe0435000002640ee00039000000000f0f043b000000050e300210000001840030043f000001c003000039000001640030043f000000e403100370000000000881034f0000010400d0043f000000840d100370000000e400d0043f000000640d100370000000c400d0043f000000440d100370000000a400d0043f000000240d1003700000008400d0043f000000040d1003700000008000d0043f000000010550208a00000349985000d10000034a0860009c000000a40310037000090064303001220000032f02200197000000240010044300000040010000390000000000120435000300000003001d000000050640008c0000000b03000029000000000231034f000000050eb0008c000000020cc0008c0000000e010000290000000c04000029000000040320008c000000840010043f00000040020000390000002001000039000b00000003001d0000000b0100006b000003410110009c000c00000002001d000000000735004b000000000131004b0000000d030000290000005f0000613d000d00000003001d000000000301043b0000032f0220009c0000000402100370000000000ac1034f0000000a0c0000290000000009000019000900f000b002780000000003006019000000f803300270000000050ba0008c0000000203300039000003410540009c0000000404200039000000000405004b000000000506c019000003420440009c0000000005008019000000000704004b00000342044001970000000006058019000000000634004b00000342050000410000002304200039000003410420009c00000104021003700000005f0000013d0000033001100197000002310000c13d000000000325004b0000032f0510019700000335011001c7000000000002043500000004021000390000032f0110009c000000000151019f000000000645004b00000001055000390000000001000416a80400cdb20132d09543c418af926eb3e636c2b47cafe0ef5582255e22e2f3c80000000400000080fffffffffffe79600fffffffffffffffffffffffffffffe01d9671c3000000006500000000000000c5374e2d000000003066a1f1000000000155201f00000000fb7f5079000000000000000100000001462ebde2000000006d963f88000000000080000000000000679a57eb000000008f5c28f5c28f5c2928f5c28f5c28f5c2c28f5c28f5c28f5c5c28f5c28f5c28f570a0823100000000d25aa10600000000ab882de59d99a32eff553aecb10793d015d089f94afb7896310ab089e4439a4c023a8d90e8508b8302500962caba6a1568e884a7374b41e01806aa1896bbf2650000004400000080a9059cbb00000000f4d678b8000000000000000400000000b12d13eb000000000200000000001388125fc972a6507f396b1951864fbfc14e829bd487b90b72539cc7f708afc6594400000000eeeeeeee00000020000000804e487b710000000000000020000000005d4e8fb00bcbe61ddb76b3bb83cf2cf98ede54b48d3ae68558cd20afa2f05a70000000000001869f00000000000186a0000000000001000000000001000000000000000000000001000000240000001c000000004e487b710000000000000080d7ff8a80000000000100000000000000000000000000ffffffff00000000000064ffffffffffffff80000000000000000000002400000080118cdaa70000000000000000715018a600000000462ebde2000000001d9671c3000000008da5cb5b0000000078e3214f00000000f2fde38b00000000d7ff8a8000000000d7ff8a7f0000000078e3214e1e4fbdf70000000000000100000001000000000200000000e3b4186f6b6457e019497f9722a3daaf1344cd1fd0a4f2848be0079c531659140200000000000000ffffffff0000000000000001ffffffe000000caf0000043200000cad0021042300000ca80021042100000000211300a9000000000125019f00000000122100a900000000411400d9000000000410004900000000451400d9000000000464004900000c930000613d000000000501004b00000000757300a90000000002250019000000020330015f00000003837000c90000000002008019000000000364004b000000010200008a000000002713c0d900000000013101700000000001300049000000000612022f000000000226004900000000622600a900000000dc7a00a900000c680000813d00000c610000013d00000000ba6900d900000000cb2b00a900000000ed7b00a900000c550000813d000000000c6c001900000c4e0000013d000003490720019700000000081701cf00000000cb6900d9000000800620027000000000021301cf000000000962019f000000000668022f0000000108700270000000ff0660018f000000000661013f00000000026201cf000000ff0610018f00000000011b00190000000001068019000000020610008a0000000001098019000000100660008c000000040910008a0000000008064019000000100960008c00000004086002700000000806608270000001000960008c000000080810008a0000001008600270000000100810008a0000002008600270000000200810008a000000000613022f000000c00100003900000c6e0000813d000000000132004b00000000271200a900000c6e0000013d00000000211200a900000c100000213d00000000173100d900000c9c0000813d000000000557004900000c950000013d00000000213400d900000c960000613d00000c060000c13d000000000857004b0000000007470049000000000547004b0000000007750019000000000558019f00000bf80000013d00000000099a004b000000000959019f00000bf70000213d000003499780012a000000000878001900000000a41200a900000be80000013d00000000044a004b000000000494019f00000be70000213d0000008009500270000003494780012a00000000854500a90000000005020019000000000562004b0000000004010019000000000461004b000000410100003900000b9f0000013d00000b9f0000613d00000bb70000413d00000bbf0000613d000003680200004100000ba40000c13d00000b930000613d00000b7c0000413d00000b840000613d00000b980000013d0000000a0200002900000b940000c13d0000000b0320006a00000b9d0000013d00000b6e0000c13d00000b4b0000413d00000b530000613d0000000b0330006900000aed0000013d00000aed0000613d00000b100000413d00000b180000613d00000b360000013d00000b280000c13d00000b640000613d00000afd0000c13d000008c10000613d000008f40000613d000008c10000013d00000ad80000c13d00000ab90000613d00000aa40000413d00000aab0000613d000008be0000613d00000ad20000c13d00000a710000613d00000a5c0000413d00000a630000613d000008be0000c13d00000a890000c13d00000a2f0000613d00000a1a0000413d00000a210000613d00000abd0000013d00000a8f0000c13d0000006002300270000000000024043500000024041000390000000b0220006900000aeb0000013d00000ade0000c13d000000000121034f000000250220003900000aef0000613d000000080200006b00000a330000013d00000a050000c13d0000035e0300004100000008040000290000002501100039000008030000013d00000366020000410000036b211000d10000000f0100002900000b770000613d0000032d0030019d000000000141019f00000040044002100000000004054019000000000113001900000000035300490000000905000029000000000334016f0000000b04400039000009bd0000613d000000040440008c0000000b040000290000000002210019000000000474019f00000000045401cf000000000454022f00000000075701cf00000000070604330000000006610019000000000464034f0000099b0000613d000009840000413d000000000884034f00000000098100190000098c0000613d000000050620027200000000012104360000001f0520018f000000140220008a00000000015200190000001404400039000001a4068000390000000000670435000001c4078000390000020006500039000001a404100370000000000534016f000000200300008a0000001f04500039000001840480003900000184031003700000016404800039000001640310037000000144048000390000032f0330019700000144031003700000012404800039000000090800002900000124031003700000000003520019000000000363019f00000000033401cf000000000636022f00000000063601cf000000000454034f0000095a0000613d000009430000413d000000000774034f0000094b0000613d00000005055002720000000d041003600000020402600039000900000006001d0000001f0350018f0000000000520435000001e402600039000000e403600039000001e0040000390000010403600039000000c403600039000000c402100370000000a403600039000000a4021003700000008403600039000000840210037000000064036000390000006402100370000000440360003900000024036000390000002402100370000000040360003900000000001604350000036a01000041000000400600043d00000000002004390000036002000041000a00000001001d00000006012000290000000402000029000009c30000a13d000000130110008c000c00000001001d0000000701100029000000060120014f0000000202000029000009c80000c13d000008f10000613d000008da0000413d000008e20000613d00000a750000013d00000a470000c13d00000000003204350000000b0210006a000009ef0000c13d000009cd0000c13d000000080100006b000009e20000c13d0000036702200198000008bc0000c13d000000090110006b0009032f0030019b0000000503000029000500000001001d0000008401100370000008f20000c13d0000000003000410000b000b0010002d00000003030000290000000502000029000100000001001d0000018401000039000800000002001d00000365121000d1000000fe022002100000000201100270000000000141004900000000023200190000000203004029000000000341004b00000000434500a9000000645330011a000007de0000213d000000630320008c00000000022300490000088e0000013d000000641210011a0000087c0000c13d000000000423004b0000000003130049000000000213004b0000000003320019000000000224019f000008700000013d000000000556004b000000000525019f0000086f0000213d0000034902200197000003495340012a0000000004340019000000000454019f00000008616000b90000000b060000290000036d02000041000009cb0000c13d00000000020204330000000302000029000003410410009c000000000221004b0000000301200029000000600210018f000008d50000613d0000000306600029000008470000613d000008300000413d00000000098a0019000008380000613d000000030a0000290000004003300210000000000305401900000003050000290000085f0000013d000000000116004b0000085e0000213d0000008005200270000003491340012a00000008421000b9000000020210006c0002000100000092000001840110037000000351033000410000000503200029000500642020012200000005325000b9000007fd0000613d00000001033001900000000103004039000000000331004b000000010110c0390000000001030019000003410110019800000353433000d1000000fb033002100000000504400270000000000414004900000000033500190000000a03004029000000000314004b000003511310012a00000000316300a9000003516110012a000007e40000a13d000003520650009c000007f10000013d000003511410012a000003514340012a00000000315300a9000003515110012a000007db0000c13d0000000006460049000000000546004b000007cb0000013d000007ca0000213d00000000941300a9000007bb0000013d000000000449004b000000000484019f000007ba0000213d000003494670012a00000000755400a900000000050100190000000a0510006c0000000a0430006c00000351011000410000000901100029000000f001100270000007f90000c13d00000001011001900000000101004039000000000113004b000000010330c039000000000304004b000000000443022f0000000003350049000000000575019f00000080058002100000034905900197000000000c7c019f000000800ca0021000000000cb5900a9000003500b90009c000007970000813d000003490ba0009c000000010990008a000000000a6a0019000007900000013d00000000a96800d90000000008a8004900000000ba3a00a9000003490aa00197000000000d9d019f00000000dc5a00a9000007840000813d0000077d0000013d0000034905300197000000800970027000000000074501cf00000000ba6800d9000000800630027000000000034301cf000000000876019f0000000108500270000000000774013f00000000067601cf000000ff0740018f00000000044b00190000000004078019000000020740008a0000000004098019000000040940008a000000080840008a000000100840008a000000200840008a0000004004000039000000000743022f000000c0040000390000079d0000a13d000000000763004b000000010400008a00000000654500a90000079d0000013d00000000433400d900000000544500a90000073e0000213d00000000611900a900000000016a019f00000000166100a900000000718100d90000000001800049000000001a8100d90000000001710049000007370000613d000000000a08004b00000000a9a900a9000000020990008900000000b99a00a900000000baba00a9000000020aa0008900000000ca9b00a90000000006a60019000000020bb0015f00000003cb9000c9000000000a008019000000000b71004b00000000a983c0d90000000008830170000000000830004900000000088900490000000009b9019f0000000c0900002900000000988900a90000034909d00197000000000ccf004b000000000cbc019f000000800ce0021000000000cf9d00a9000003500fd0009c0000070b0000813d000003490ce0009c000000010dd0008a000000000eae0019000007040000013d0000000d0b0000290000000ceda000f9000c000000bc0051000000800cc002100000000c0c00002900000000cb8b00a9000003490be00197000000800cf0021000000000cb9e00a9000003500be0009c000006f60000813d000003490bf0009c000000010ee0008a000000000faf0019000006ef0000013d0000034909800197000000800d900270000d00000009001d00000000097901cf0000000cfea000f900000000087301cf000c000000a801a3000000000aab022f000000010b900270000000ff0aa0018f000000000aa7013f0000000008a801cf000000ff0a70018f00000000077e001900000000070a8019000000040bb0008c000000020a70008a00000000070c8019000000100aa0008c000000040c70008a000000000e0d8019000000000ec00049000000020d00008a000000000c0b4019000000040db0008c000000020cb00270000000000b0a4019000000100ca0008c000000040ba00270000000080aa08270000001000ca0008c000000080b70008a000000100ba00270000000100b70008a000000200ba00270000000200b70008a0000004007000039000000000a73022f000000c007000039000007120000a13d0000000a07000029000000000783004b00000000895400a900000000322600a9000000000257019f00000000255200a900000000323200d900000000023000490000000002420049000006a90000613d000000000703004b00000000767600a900000000866700a90000000005a500190000000b0a004029000000000742004b000000007637c0d9000000000376017000000000438400a900000351837001290000037306400099000007de0000813d000000000675004b000006ab0000013d00000000327200d90000067d0000c13d000000000856004b00000351074000410000000006260049000000000526004b00000351523000d10000000904200029000000000645001900000000056500190000000b06002029000000000667004b00000349875000d1000000000667019f000003497550012a0000037206400197000000800640027000000351544000d10000000b0430006c00000000131400a9000000000136019f00000000133100a900000000215100d9000000000150004900000000165100d900000000012100490000065b0000613d00000000644600a900000000766400a900000000747400a9000000020440008900000000846700a90000000003008019000000000721004b000000003653c0d900000000055301700000000005300049000000000225022f00000000655600a900000000dc6a00a9000006300000813d000000000b7b0019000006290000013d00000000ba7900d900000000cb5b00a900000000ed6b00a90000061d0000813d000000000c7c0019000006160000013d000003490650019700000000082601cf00000000cb7900d9000000800750027000000000052301cf000000000975019f0000000108600270000000000772013f00000000057501cf000000ff0720018f00000000022b00190000000002078019000000020720008a0000000002098019000000040920008a000000080820008a000000100820008a000000200820008a000000000723022f000000c002000039000006360000a13d000000000253004b00000000565200a9000007e10000013d000007390000013d000000000121019f0000006002300210000005af0000413d000005b70000613d000005920000413d0000059a0000613d000007120000013d00000000783700d900000000875400a9000006af0000213d00000000573b00d9000000000536004b0000000006560049000005cd0000c13d000000000503004b000005830000c13d0000000006160049000000000516004b000007a50000013d00000080021001bf000005aa0000613d000005660000613d0000054f0000413d000005570000613d0000007505a0008a000005730000013d000005720000213d00000000914b00a90000056a0000013d000005380000c13d0000051e0000613d000005060000413d000000000978004b000000010880003900000000009b0435000000000996034f000000000b910019000000050980021000000000080000190000050e0000613d00000284017000390000026405700039000001e005700039000000000745016f0000001f05500039000002040080043f000001e40040043f000001c40060043f0000032f06700197000001a40060043f0000000000090435000002640950003900000000009d04350000000009e9019f0000000009b901cf0000000009b9022f0000000009d9034f000004f10000613d0000001403a0008a000004d90000413d000000000fe9034f000004e10000613d000000050d500272000002440050043f0000001f0b50018f000000000991034f0000014400b0043f000001240030043f000003470d0000410000000002c1034f0000000b0cc000290000000d0c000029000005290000013d000000000119004b000000000181019f000005280000213d000003491670012a00000000751500a900000000050b00190000000a05b0006c00000000010400190000000a0140006c000004b70000213d000000130ca0008c000000c40b1003700000000c0a3000290000000b0330014f000a00000003001d00000009a33000b9000006360000013d00000000525200a9000005d70000213d000000000534004b000000000445004900000000133100d90000057f0000613d000004900000c13d000000000515004900000001040040390000000004000019000000000415004b0000000005540019000000000446019f00000080011001bf0000058d0000613d000004740000613d0000045d0000413d000004650000613d000000750590008a000004810000013d000000000778004b000000000747019f000004800000213d0000034904400197000003497560012a0000000006560019000000000676019f00000000812b00a9000004780000013d000004460000c13d0000042c0000613d0000006002a00270000004140000413d000000000872004b00000000008b0435000000000886034f000000000b81001900000005082002100000041c0000613d00000284012000390000026405200039000001e005200039000000000242016f0000001f02400039000002040070043f000001e40020043f000001c40050043f0000032f05600197000001a40050043f0000000000080435000002640840003900000000008d04350000000008e8019f0000000008b801cf0000000008b8022f0000000008d8034f000003ff0000613d000000140390008a000003e70000413d000000000fe8034f000003ef0000613d000000050d400272000002440040043f0000001f0b40018f000001440030043f0000012400b0043f000003710d0000410000000c0cc00029000004370000013d000000000118004b000000000171019f000004360000213d0000008007400270000003491560012a00000000641400a900000000040b00190000000b04b0006c00000000010200190000000b0120006c000003c50000213d000000130a90008c000000c403100370000000000b03043b0000000d093000290000000c0330014f00000009933000b90000084b0000013d0000081a0000c13d00000004023000390000032f0120019700000000001304350000036401000041000000400300043d0000037b0000413d000000000943004b0000000a088000390000000a0770008a000008010000613d000000000996004b000000b0099002700000000a0970008c00000004080000290000000607000029000003870000413d000003460390009c000400070030003d000500f000700278000000000778016f000000070aa0006c000000010ab001bf00060000000b001d0000000aab4000c9000000f804900270000000000904043b000000010490003900070006004000940000034506200197000000060640008c0000036e02000041000003650000413d000000650650008c000000f805500270000000000591034f00000002095000390000035a0000813d000000000806043b000000020660008c00000000077801cf000003440800004100000010077000890000000307600210000000030640008a000000030640008c0000049c0000013d0000033d0000413d000000000bfa004b000000010aa000390000000a0dd000390000000a0cc0008a0000049a0000613d000000000bbe004b000000b00bb00270000000000bd1034f0000000a0bc0008c0000000d0d0000290000000b0c0000290000049c0000413d000003460aa0009c0000000a0a000029000d002b00a0003d0000000d0bd0017f0000000c0bb0006c000000010bc001bf000b0000000c001d0000000abcf000c9000000f80fb00270000a0000000b001d000000000bb1034f000000010bf00039000c000600b00094000003450e700197000000060eb0008c0000036f020000410000034a0000413d000000650670008c000800000007001d0000000007006019000000020640008c000000f8076002700000000205300039000000020540008c000b00000002001d000a00600020027800000061033000390000000c030000290000003d0430008a000000140240008c000003120000613d0000034602200198000a032f0050019b0000002405100370000000000221034f00000020021000390000000a010000290000004d03100039000000290410008a000000290110008c0000036302000041000001a40000013d0000036e01000041000003250000a13d000000640e30008c0000000003f1034f000000020f300039000d0000000c001d000000000d0e8019000000000dde01cf000003440e000041000000100dd00089000000030dc00210000000030cb0008a000000030cb0008c000002a60000013d000002a60000613d000002c40000413d000002cc0000613d0000035c011001c70000035b020000410000005f0000c13d000000000102004b000002b10000c13d000000010220018f0000035a010000410000036c02000041000002930000c13d0000027b0000613d000002660000413d0000026d0000613d0000035f011001c7000002a40000013d0000029b0000c13d000000040140008c0000027f0000013d000000800100043d000002560000c13d000000a40010043f0000000d010000290000035e010000410000007b0000013d000000840020043f0000033f01000041000000800020043f0000033f02000041000003330100004100000120001004430000010000100443000001e000300443000001c000200443000001a000200443000001800010044300000160001004430000014000000443000000c00030043f000000a00020043f0000032f05200197000000c00130021000000000030180190000032d0430009c0000033001200197000000000200041a0000003201000039000002f80000c13d000002f50000c13d000000000112004b0000002400000443000900000001001d000000000100041200000024011000390000000c012000290000000a01100360000a00040020003d000000000204004b000000000405c019000003420220009c0000000004008019000000000602004b00000342022001970000000005048019000000000532004b00000342040000410000002302200039000003410220009c000001c4021003700000000e02400029000d00000004001d0000002404200039000003410440009c000e00000004001d000001e00220008c00000374010000410000036f01000041000002dc0000a13d000003430cc0009c000002dc0000613d000000020db0008c000000020cb0008c000e0000000c001d0000002003c0003900000000033d004b000000240dd00039000000000dba0019000003410db0009c000000000bc1034f000000040ca00039000000000b0c004b000000000c0dc019000003420bb0009c000000000c008019000003420bb00197000000000d0c8019000000000d000019000000000d3b004b000003420c000041000000230ba00039000003410ba0009c000001a40a1003700000016404100370000000000804043b00000184041003700000032f0470009c000000000704043b0000014404100370000000000604043b0000012404100370000000000434004b00000000049500190000002409400039000003410650009c000000000551034f0000000405400039000000000506004b000000000607c019000003420550009c000000000600801900000342055001970000000007068019000003420600004100000023054000390000010404100370000001c00440008c000000040430008a000000000404004b00000000040004160000035d02000041000002500000813d0000800a0200003900000000010004100000035801000041000002430000c13d000003570110009c0000013f0000613d0000032f01200198000c00000004001d0000022c0000c13d000000000214004b00000000010004110000032f041001970000002401100370000e00000002001d000000400220008c000003aa0000013d000001170000413d000000000ae9004b00000001099000390000000a0cc000390000000a0ff0008a000003a80000613d000000000aad004b000000b00aa002700000000a0af0008c0000000c0f000029000003aa0000413d000003460990009c0000000b09000029000a002b0090003d000000000bcf016f0000000d0bb0006c000000010ba001bf000c0000000a001d0000000abae000c9000000f80ea00270000b0000000a001d000000000aa1034f000000010ae00039000d000600a00094000003450d600197000000060ba0008c000002f30000813d000000650b30008c0000000003e1034f000000020e300039000000000f0b043b000000000c0d8019000000020bb0008c000000000ccd01cf000003440d000041000000100cc00089000000030cb00210000000030ba0008a000000030ba0008c000001a30000813d000003700bb0009c000000e90000613d000000020ca0008c000000020ba0008c000e0000000b001d0000002003b0003900000000033c004b000000240cc00039000000000ca90019000003410ca0009c000000000ab1034f000000040b900039000000000a0b004b000000000b0cc019000003420aa0009c000000000b008019000000000d0a004b000003420aa00197000000000c0b8019000000000c000019000000000c3a004b000003420b000041000000230a900039000003410a90009c000001a4091003700000016402100370000000000702043b00000184021003700000032f0260009c000000000602043b000000000502043b000001240210037000000000028400190000002408200039000001c00220008c000000840000043f0000033401000041000002360000c13d000000000206004b0000032f061001970000000401100370000000200220008c000003390240009c000001540000613d000003380540009c0000033e0140009c000001a70000613d0000033d0240009c0000009a0000613d0000033c0240009c0000033402000041000002050000c13d000000000106004b0000032f0160009c000001400600043d000e00000001001d000001200100043d0000032f0130009c000001000300043d0000032f0120009c000000e00200043d000000800130008c000000000014043500000000012101cf000000000121022f0000010002200089000000000525022f00000000052501cf0000000005040433000000e0044000390000000302200210000000000141034f000000410000613d000000000502004b0000002a0000413d0000000000760435000000e0066000390000000506500210000000320000613d00000005043002720000001f0230018f0000032e02200197000000ff0230003900000356010000410000033b0140009c000001240000613d0000033a0240009c0000007f0000213d000003370540009c000000610000a13d000003360540009c000000e004400270000000000401043b000f00000000001d0000005d0000413d000000040430008c0000008002000039000000200000c13d00010000000103550002000000310355000f000000000002000300000000000207340733001f0027002607320731000b0730072f0114072e072d072c072b072a072907280727072607250724072300060217003c000600ca011300500722003b0079004f0006072107200114071f071e071d000a071c00c90007071b071a02160215071907180717007807160715071407130712071100050710070f070e0214070d070c0002070b070a000107090708000107070706021300010705070400010703070200150701007702120211004e0076004d004c021000100025000600c8003b070006ff06fe06fd06fc00060217003c000600ca020f0112020e020d020c0111000f0009001900140018004b0110010f010e000400170024010d020b06fb06fa06f900060079004f000600c706f8000206f7000506f60213000100ca020f0112020e020d06f506f406f3005006f2010c00100079004f000600c706f10002020a000302090001020802070206000402050204020302020201020001ff000601fe00c6003a01fd000106f006ef010b000106ee06ed010a06ec06eb000106ea06e906e8000306e7004a06e6000106e506e406e306e206e106e006df06de06dd06dc06db000606da06d9007506d8000106d706d606d5000106d40109004906d306d2000201fc0109004906d106d006cf06ce06cd000206cc06cb06ca06c906c806c706c60074010906c501fb000206c406c3001e01fa01fb01f906c206c106c0000206bf06be010806bd06bc007506bb06ba06b906b806b706b6000106b501f806b406b306b206b101f706b001f606af000201f5007506ae06ad06ac06ab06aa06a906a806a706a60079004f000600c706a5000201f4000306a401f3000106a301f200ca06a206a106a0069f069e01f1002501f00107069d069c069b069a0699002d06980023000f0009001900140018004806970013000b0022000501ef01ee069600150695002c0694069300060692069100020690003a01fd0001068f068e01ed0039068d068c0106068b068a06890688000606870686003806850001068406830682000106810680067f067e067d0001067c067b067a003a0679007506780001067706760675067406730672010506710670066f066e0006066d066c0049066b0001066a06690668000106670104010306660665000201fc01040103066406630662066106600050065f00100079004f000600c7065e0002020a000302090001020802070206000402050204020302020201020001ff000601fe00c6003a065d065c0001065b065a0659010b0001010a000301f300010658000301ec0657000100c5065606550654000a0653065206510650064f064e064d000600c5064c064b0005010201eb000100c4064a064901ee00010101002d0648064700230646000f0009001900140018010000ff0013000b00220005011301120645064401ea064300730012064200fe01ec0641064000470111000f01f100fd063f063e063d004b063c0110010f01e9010e001701ef00240046010d00500107063b063a0639063801e80637063601e706350634063300fc06320631003b0630062f01e6010c0010062e0050062d010c0010020c00470111000f0009001900140018004b0110010f010e062c062b0050004601e6062a0629007201e50628062700120037062601e406250624004500c3062300fb007600fa007106220017001f002700260036000e001d003500c206210004000d00c1002b00c0000c00bf06200070061f001c007800be00bd004400bc0007001b002a0034006f00bb00330011002400430025061e00ba002d01e30023000f00090019001400180048006e0013000b00220005003c0043020b002900b900b800b701f00015061d002c00b6061c000a0017061b0011006d00b500b400b3061a06190618001506170077004e0076004d004c0616001000b2004200b100b0006c00af000a002800ae004100ad006b00ac00ab00aa00a900a806150004000d00a700a600070021000c00a50614006a061300a400a30040006900a200a100680038006700a0009f006600650612061100020610060f060e060d060c01e2060b007401040103060a01e1000206090608001e01fa01e101f9060706060605060400150603002c00fc0602000200fc06010046060005ff05fe006405fd05fc003805fb000305fa05f905f8000201e001df05f705f605f5000305f401e0000305f3010a000305f2000205f1009e00f905f005ef05ee05ed05ec05eb001505ea002c05e9000205e805e7010805e605e5004905e405e305e205e105e005df000105de01f805dd05dc05db05da00f805d905d805d7000205d6004905d505d405d305d205d105d005cf05ce05cd05cc000205cb05ca05c905c805c705c600630216009e05c501de05c400c8001005c305c2003805c101de009d05c005bf001505be002c05bd000205bc05bb010805ba00c605b905b805b705b605b505b4000105b305b205b105b005af003f05ae05ad05ac000200f7004a05ab05aa05a905a805a7007405a605a505a405a305a205a101dd05a001dc0101002d0032002301db01da000f0009001900140018010000ff0013000b00220062007201d901e5059f00370029000e001d059e059d01d800f601e9059c059b01d7059a0599001e059805970596059500f505940593009c05920591059001d6058f00f4058e01d5058d01d4058c01f6058b01f50075058a01d301d2001a01d101d0001a01cf01ce001a01cd01cc001a01cb01ca001a01c90589058801c801c7001e01c601c501c40587058605850584003f01c3058301c201c101c0007401bf058205810105058001be057f01bd01bc01bb01ba01b9002b01b8057e057d057c057b057a057905780577057605750574057300420572057101b7057000f301b6009e01b5056f01b4056e0061056d056c056b002b056a01b30569056805670106056601b201b101b0001c01af0060005f00f9001b004401ae005e01ad01ac00f200fd01ab056500370029000e001d056401aa056301a90562003e05610560055f01d6055e003d055d01d5055c01d4055b055a01a8004000fb009b00fa01a701a601a500f100f001a40013001f002700260036000e001d003500ef05590039009a00f7004a01a301a200990098055800970557009600c9001c01a100ee0060005f0007001b002a0034005e00ed00330011000b055600ec01a0055500eb019f0002019e019d01aa01a90554003e0553055205510550054f0215054e019c054d054c019b019d054b054a019a0199019801970549054801990547054601d800f605450544054301d7001e0542004905410540053f053e00f5053d053c009d053b053a01960095053900f4053800940537009305360535053405330003053201d301d2001a01d101d0001a01cf01ce001a01cd01cc001a01cb01ca001a01c905310530052f01c7001e01c601c501c4052e052d052c052b003f01c3052a01c201c101c0007401bf052905280105052701be052601bd01bc01bb01ba01b9004a01b8052505240523052205210520051f051e051d051c051b051a00420519051801b7051700f301b6009e01b5051601b405150514051305120511004a0510050f050e050d01950106050c01b201b101b0001c01af0060005f00f9001b004401ae005e01ad01ac00f200fd01ab050b00370029000e001d050a00920509003d0194009101930192003e00950508005d01910094019000930507050601a8004000fb009b00fa01a701a601a500f100f001a40013001f002700260036000e001d003500ef05050039009a00f7004a01a301a200990098050400970503009600c9001c01a100ee0060005f0007001b002a0034005e00ed00330011000b050200ec01a00501011400290002019e05000092003d018f0091018e04ff000a002804fe003104fd04fc04fb00730012018d00fe04fa04f9019a018c04f8018b04f704f604f504f40090008f008e04f30004000d005c008d00070021000c003104f2008c018a005b008b005a008a00590089008800050087008600850047008400ea0090008f008e04f10004000d005c008d00070021000c003104f0008c018a005b008b005a008a005900890088000500870086008500470084000f00580014018904ef04ee0010018c0198018804ed00e9001200250083018704ec04eb04ea00c404e9018604e8018504e7018601e7018504e6008200e801840082006304e5008100e801830081006304e4018200e801810180017f017e00e700e600e500e400e300e200e104e3017d04e204e100e004e004df04de04dd017c04dc017b04db00df04da04d904d804d704d600de04d504d404d3017a017904d20178017704d1017601750174017700dd04d000800173017204cf017104ce04cd00dc00db04cc00da017004cb00d9016f00d80170016e04ca016d016c00d704c904c804c7000404c600f604c504c4016b016a00300020002f00300020002f006c04c304c204c101690168016701690168016704c0016604bf0070000404be04bd04bc04bb04ba00d604b904b804b7019b0107016504b6000e009c04b504b40164006f04b304b2003d04b104b004af000404ae04ad003e04ac04ab04aa04a9000a002804a804a704a604a504a404a300d704a204a104a00163049f049e0163049d0004049c049b00f8049a016b016a00300020002f00300020002f049900300020002f00300020002f00300020002f049801660497049600390495049401620493049201b304910490048f0077004c0161003b048e048d048c048b0160048a015f048901600488015f0487015e00d50486015e015d0485015c00d50484015c015d0483048200d504810480047f047e047d047c047b047a047901e2047804770476047504740473047204710470046f015b046e046d046c046b046a046900de046804670466046504640463046204610460045f045e015a045d045c01590158015a045b045a04590458015904570456045500dd04540453045204510450044f0157044e044d044c044b0157044a0449044800800447044600df0445044401f70443015b044204410440043f015601550154015601550154043e043d043c043b015301520151015301520151043a04390438043700f80436043504340433043200d604310430042f0197042e042d042c042b042a04290428042701500426014f042501500424014f0423008200d40184008200630422008100d40183008100630421018200d401810180017f017e00e700e600e500e400e300e200e10420017d041f041e00e0041d041c041b041a017c0419017b041800df04170416041504140413041204110410014e00dc00db040f00da014d040e00d9040d00d8014d040c040b005d014c040a040900d3040804070406040504040403014b0402040104000158014b03ff005703fe03fd03fc03fb03fa001f03f903f800c803f703f603f501e303f403f303f203f1000e009c03f003ef009d03ee03ed0196009503ec007f03eb009403ea009303e9009203e8003d0194009101930192003e009503e7005d019100940190009303e60092003d018f0091018e03e5000a002803e4003103e303e2014a03e103e003df03de00d703dd03dc00e90012008301490148001003db014a03da03d903d8003f03d703d603d503d403d3006603d203d103d003cf03ce003f03cd03cc03cb00730012008300fe01dc01890161003b03ca03c900c4016503c803c703c6000501dd014703c503c4010200f503c303c203c1014603c000f40214014503bf014403be00560055005403bd014303bc03bb007100f00210001303ba001f002700260036000e001d003500ef03b90039009a03b801c8002b01420099009803b7009703b6009600c903b5001c00ee0060005f0007001b002a0034005e00ed00330011000b03b400ec03b303b203b10061014103b00041000b006b00eb019f000203af03ae004f03ad03ac002c014003ab03aa007f03a9013f03a803a703a6014603a5016403a4014503a3014403a20140007f03a1013f03a0039f00610141039e039d039c039b039a03990398039700d2013e01df03960395013e0394003f0393039203910390038f0053038e038d038c038b002e0005038a0389014703880064013d000301d90387010b03860385000503840101002d0032002301e801da000f0009001900140018010000ff001303830382000b002200050113038103800064013c0003037f037e037d037c00d1013b037b013a002e0005037a00150139001601380077021201370379000900d0007e037800cf0012003703770090008f008e03760004000d005c008d00070021000c00310375008c0374005b008b005a008a00590089008800050087008600850047008400ea01ea0373037203710370036f036e00c8036d036c036b036a002e000503690368006d01020023000f00090019001400180048006e0013000b00220005003c010d036703660365006401f40003036400160363000303620016013d00030361001603600003035f0016035e0003035d0016035c0003035b0016035a000303590016013c0003035803570136035600160355013503540353035203510350034f034e0004000d005c034d00070021000c0031034c006a034b005b034a005a0069005903490348003a006700680347034600f30135034500f20344001e03430342007d0341001e0340033f007d033e001e033d007d033c001e033b007d033a033903380337003a033603350334033301340133033200c6033100c50330032f032e032d032c0039009a032b032a002b014200990098032900970328009603270326001c03250324002a003a001b0323032203210134032002110009031f031e031d01e4031c031b031a0319031800560143000e03170316009b005400f103150058007c007b005300c40017001f0027031400260011000b0313003201eb0041003200eb0312004e0076004d0311003b00150310002c0064030f0046030e002e006200150139030d0136030c0065019501320016000900d0007e030b00cf00120037030a0309030800c50307030600620072013101300305004500c3030400d103030046012f002e01f200150302030101380077030001320016000900d0007e02ff00cf0012003702fe00560058007c00550054004c007b005300ce00cd0017001f002700260036000e001d003500c202fd0004000d00c1002b00c0000c00bf02fc007002fb001c007800be00bd004400bc0007001b002a0034006f00bb0033001100240043002502fa00ba002d00320023000f00090019001400180048006e0013000b00220005003c02f9005200560058007c00550054004c007b005300ce00cd0017001f002700260036000e001d003500c202f80004000d00c1002b00c0000c00bf02f7007002f6001c007800be00bd004400bc0007001b002a0034006f00bb0033001100240043002502f500ba002d00320023000f00090019001400180048006e0013000b00220005003c012e0052002900b900b800b702f4005200560058007c00550054004c007b005300ce00cd0017001f002700260036000e001d003500c202f30004000d00c1002b00c0000c00bf02f2007002f1001c007800be00bd004400bc0007001b002a0034006f00bb0033001100240043002502f000ba002d00320023000f00090019001400180048006e0013000b00220005003c004302ef012d002900b900b800b702ee0052002900b900b800b702ed0052004e0076004d0071004b00b600d2000a00170011006d00b500b400b302ec0024012c00d1013b02eb0046012f002e006200720131013002ea004500c302e900b2004200b100b0006c00af000a002800ae004100ad006b00ac00ab00aa00a900a802e80004000d00a700a600070021000c00a502e7006a02e600a400a30040006900a200a100680038006700a0009f0066006502e500d202e4004e009b004d0071004b00b6000a00170011006d00b500b400b3012b00b2004200b100b0006c00af000a002800ae004100ad006b00ac00ab00aa00a900a802e30004000d00a700a600070021000c00a502e2006a012b00a400a30040006900a200a100680038006700a0009f006600650024012c013a002e006200720137007e02e1004500c302e002df004e0055004d0071019c02de02dd02dc0090008f008e02db0004000d005c008d00070021000c003102da008c02d9005b008b005a008a00590089008800050087008600850047008400ea004b00b60133000a00170011006d00b500b400b302d80024012e001502d7002c00b2004200b100b0006c00af000a002800ae004100ad006b00ac00ab00aa00a900a802d60004000d00a700a600070021000c00a502d5006a02d400a400a30040006900a200a100680038006700a0009f0066006502d30073001202d2012a01290010012802d102d0009c02cf02ce009d02cd02cc02cb012702ca007f02c9012602c8012502c7012402c6005d014c00d302c502c4003e012702c3008002c2012602c1012502c00124005d02bf00d302be02bd000a002802bc02bb02ba002502b902b802b702b601ed02b5016202b4018b02b302b2018802b102b002af02ae012302ad012202ac012301db012202ab012100cc02aa0121012002a9011f00cc02a8011f012002a702a600cc02a502a402a302a200e700e600e500e400e300e200e102a102a0029f029e00e0029d029c029b029a012802990298029702960295029402930292029100de0290028f028e017a0179028d0178011e028c017601750174011e00dd028b008001730172028a01710289014e00dc00db028800da011d028700d9016f00d8011d016e0286016d016c0285028402830282003902810280027f027e027d027c011c0020011b011c0020011b027b00cb007a005700cb007a005700cb007a0057027a007a00570279000a0278027702760275027400d6027302720271005100730012018d012a0129001000e90012002500830187014901480010012d02700045005100610051026f0045005100610051026e003b001000000000000000000000011a000000000000026d0000011a000800080008026c00000000026b000000000000026a0269026802670266000002650000026400000000000000000000011900000000000000000263000000000000026200000000000002610000000000000260000000000000025f000000000000025e000000000000025d000000000000025c000000000000025b025a0000000000000000000002590000000000000000000802580000000000000257000800080008025600000000000000000000025500080254000000000000025300000000000000000000025200000000000000080008000801180000000000000000000002510000000002500000024f000000000000000000000000024e000000000000024d0000000000080118000000000000024c000000000000024b024a0249024802470000000002460000024500000000000000000000024400000000024301170117024202410240023f0116000001190000023e000000000000023d00000000000000000000023c0000023b000000000000023a00000000000000000000023900000238023702360235023402330232023101160000011500000230000000000000022f000000000000022e022d022c022b022a00000000000002290000000000000228000000000000000000000115000002270000000000000000000002260000022500000000000002240000000000000223000000000000022200000000000002210000000000000220000000000000000000000008021f021e00080008021d00000000021c00000000000000000000021b021a02190218000000000000000000000000000000000000000000000000000000000000", + "logIndex": 34, + "blockHash": "0x015790d1ae7a24297ccddcffbe866efd7e4b45406499d9d4b9f0d78b8ae90ce1" }, { - "transactionIndex": 1, - "blockNumber": 31159144, - "transactionHash": "0xce35fcc50a65b924b449ba96b749f19fc5c6a1a3e9a85f8ea6de875be74e1294", + "transactionIndex": 2, + "blockNumber": 55046569, + "transactionHash": "0x620e9039ded8de68afdd5a24e5570fc1c64143244ab51f0b2c66adf64e543b2b", "address": "0x0000000000000000000000000000000000008004", "topics": [ "0xc94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e618287", - "0x01000113c493ac3d9d533e4f984e836ca07aa8a068c10b88cec507b9ca63fb65", + "0x01000377e06bba2ac490a575c7f1e4de642f892a1f3627052ceed241fa650abf", "0x0000000000000000000000000000000000000000000000000000000000000000" ], "data": "0x", - "logIndex": 6, - "blockHash": "0x75138040b808967f05cde905cf8c508a967039a2c1b8f4a6aa93dea5d3ace8f7" + "logIndex": 35, + "blockHash": "0x015790d1ae7a24297ccddcffbe866efd7e4b45406499d9d4b9f0d78b8ae90ce1" }, { - "transactionIndex": 1, - "blockNumber": 31159144, - "transactionHash": "0xce35fcc50a65b924b449ba96b749f19fc5c6a1a3e9a85f8ea6de875be74e1294", - "address": "0x3AF184d3182D355027f8c52AC7Db5e3F86b5f1a5", + "transactionIndex": 2, + "blockNumber": 55046569, + "transactionHash": "0x620e9039ded8de68afdd5a24e5570fc1c64143244ab51f0b2c66adf64e543b2b", + "address": "0x43AC59B1740a1756098CC7A943279aec57E7300E", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000011799622f4d98a24514011e8527b969f7488ef47" + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" ], "data": "0x", - "logIndex": 7, - "blockHash": "0x75138040b808967f05cde905cf8c508a967039a2c1b8f4a6aa93dea5d3ace8f7" + "logIndex": 36, + "blockHash": "0x015790d1ae7a24297ccddcffbe866efd7e4b45406499d9d4b9f0d78b8ae90ce1" }, { - "transactionIndex": 1, - "blockNumber": 31159144, - "transactionHash": "0xce35fcc50a65b924b449ba96b749f19fc5c6a1a3e9a85f8ea6de875be74e1294", + "transactionIndex": 2, + "blockNumber": 55046569, + "transactionHash": "0x620e9039ded8de68afdd5a24e5570fc1c64143244ab51f0b2c66adf64e543b2b", "address": "0x0000000000000000000000000000000000008006", "topics": [ "0x290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5", - "0x00000000000000000000000011799622f4d98a24514011e8527b969f7488ef47", - "0x01000113c493ac3d9d533e4f984e836ca07aa8a068c10b88cec507b9ca63fb65", - "0x0000000000000000000000003af184d3182d355027f8c52ac7db5e3f86b5f1a5" + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf", + "0x01000377e06bba2ac490a575c7f1e4de642f892a1f3627052ceed241fa650abf", + "0x00000000000000000000000043ac59b1740a1756098cc7a943279aec57e7300e" ], "data": "0x", - "logIndex": 8, - "blockHash": "0x75138040b808967f05cde905cf8c508a967039a2c1b8f4a6aa93dea5d3ace8f7" + "logIndex": 37, + "blockHash": "0x015790d1ae7a24297ccddcffbe866efd7e4b45406499d9d4b9f0d78b8ae90ce1" }, { - "transactionIndex": 1, - "blockNumber": 31159144, - "transactionHash": "0xce35fcc50a65b924b449ba96b749f19fc5c6a1a3e9a85f8ea6de875be74e1294", + "transactionIndex": 2, + "blockNumber": 55046569, + "transactionHash": "0x620e9039ded8de68afdd5a24e5570fc1c64143244ab51f0b2c66adf64e543b2b", "address": "0x000000000000000000000000000000000000800A", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0x0000000000000000000000000000000000000000000000000000000000008001", - "0x00000000000000000000000011799622f4d98a24514011e8527b969f7488ef47" + "0x00000000000000000000000056e44874f624ebde6efcc783efd685f0fbdc6dcf" ], - "data": "0x0000000000000000000000000000000000000000000000000001bd8c0abde980", - "logIndex": 9, - "blockHash": "0x75138040b808967f05cde905cf8c508a967039a2c1b8f4a6aa93dea5d3ace8f7" + "data": "0x000000000000000000000000000000000000000000000000000056974bb1e480", + "logIndex": 38, + "blockHash": "0x015790d1ae7a24297ccddcffbe866efd7e4b45406499d9d4b9f0d78b8ae90ce1" } ], - "blockNumber": 31159144, + "blockNumber": 55046569, "cumulativeGasUsed": "0", "status": 1, "byzantium": true }, "args": [ "0x6fd4383cB451173D5f9304F041C7BCBf27d561fF", + "0x46B64318C4f764F6Fe81dFd1F26282A52E0f1680", "0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91", - "0x11799622F4D98A24514011E8527B969f7488eF47" + "0x56E44874F624EbDE6efCc783eFD685f0FBDC6dcF" ], "numDeployments": 1, - "solcInputHash": "dbbc2d540f4a3cfc15de94b72dc40a67", + "solcInputHash": "9998d0128b16349aa6ea1e7747626f8c", "metadata": { "optimizer_settings": { "is_debug_logging_enabled": false, @@ -365,13 +573,13 @@ "level_middle_end": "Aggressive", "level_middle_end_size": "Zero" }, - "solc_metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"limitOrderProtocol\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ETHTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EthTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyLimitOrderProtocol\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SafeTransferFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"maker\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"receiver\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"makerAsset\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"takerAsset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"makingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"takingAmount\",\"type\":\"uint256\"},{\"internalType\":\"MakerTraits\",\"name\":\"makerTraits\",\"type\":\"uint256\"}],\"internalType\":\"struct IOrderMixin.Order\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"takingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"postInteraction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"rescueFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"EthTransferFailed()\":[{\"details\":\"Eth transfer failed. The target fallback may have reverted.\"}],\"OnlyLimitOrderProtocol()\":[{\"details\":\"The caller is not the limit order protocol contract.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"limitOrderProtocol\":\"The limit order protocol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"postInteraction((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,uint256,bytes)\":{\"details\":\"Takes the fee in taking tokens and transfers the rest to the maker. `extraData` consists of: 2 bytes \\u2014 fee percentage (in 1e5) 20 bytes \\u2014 fee recipient 20 bytes \\u2014 receiver of taking tokens (optional, if not set, maker is used)\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"rescueFunds(address,uint256)\":{\"params\":{\"amount\":\"amount to retrieve\",\"token\":\"ERC20 token to retrieve\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"_FEE_BASE\":{\"details\":\"Allows fees in range [1e-5, 0.65535]\"}},\"title\":\"Helper contract that adds feature of collecting fee in takerAsset\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Initializes the contract.\"},\"postInteraction((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,uint256,bytes)\":{\"notice\":\"See {IPostInteraction-postInteraction}.\"},\"rescueFunds(address,uint256)\":{\"notice\":\"Retrieves funds accidently sent directly to the contract address\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/extensions/FeeTaker.sol\":\"FeeTaker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":false,\"cse\":false,\"deduplicate\":false,\"inliner\":false,\"jumpdestRemover\":false,\"orderLiterals\":false,\"peephole\":false,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoDgvulfnTUtnIf[xa[r]EscLMcCTUtTOntnfDIulLculVcul [j]Tpeulxa[rul]xa[r]cLgvifCTUca[r]LSsTFOtfDnca[r]Iulc]jmul[jul] VcTOcul jmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":200},\"remappings\":[]},\"sources\":{\"@1inch/solidity-utils/contracts/interfaces/IDaiLikePermit.sol\":{\"keccak256\":\"0xbbb219886412a339a7f84b0850f700311dd2b3a106919ae54fa0a215d847a3b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28cfd2f379bd09a30bfbc6a1d06208b03fdde20116c48b577872374809fadbc5\",\"dweb:/ipfs/QmNd8jgXenm7TJ7UFQF5cGwEzN4rE58ut2BbZo6fWBApBo\"]},\"@1inch/solidity-utils/contracts/interfaces/IERC20MetadataUppercase.sol\":{\"keccak256\":\"0x42e8625b32dfa9746df2b79c66deb1cb6f085d8292a0e19f60339ce9dd7e9803\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52321b50a3c6a0ec190620c636a7242c14c4ae509f456086b11f30b0c05fa6c0\",\"dweb:/ipfs/QmZJHVTdJAEaitG9vWQxd5qA1rG5jdGmY3PdXojb8pJsGD\"]},\"@1inch/solidity-utils/contracts/interfaces/IPermit2.sol\":{\"keccak256\":\"0x63209a082f66ecb584b86e412b3dd0010e9675bc19bc1f80a75437311df7ec11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f70330b39b4cf28d7403c5df010c042d88fd90b0c6e82f1740979a1927e1a39\",\"dweb:/ipfs/QmTUyY99DZzjJ44AbNqJfuGECibWUxicDeUmVm18eVYUnH\"]},\"@1inch/solidity-utils/contracts/interfaces/IWETH.sol\":{\"keccak256\":\"0x00eeab44dfd24ef7c27fcdfdf7b4d4df54a17650662522c1bf85950965892a3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c476f29fb030fa67cb7e475eecf805e270249faaeeb70990088c0404a289912\",\"dweb:/ipfs/QmZhpEnqDwCuF8zHe7bMBazNmTYCDRgFj4KN4ktt5ZPebM\"]},\"@1inch/solidity-utils/contracts/libraries/AddressLib.sol\":{\"keccak256\":\"0x45c4340cbefe825cb4be111058427351cb4d5f95260e630a453eae0430ba29bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16feafb107c2ed025d258178b41d6ec55194c768ca35c7c71cf5449e2c512944\",\"dweb:/ipfs/QmQR2SbAaQcSTxCM8AEfH28aoC3eVgC2X9p26s5bjoiUYz\"]},\"@1inch/solidity-utils/contracts/libraries/RevertReasonForwarder.sol\":{\"keccak256\":\"0x09986dc39ef02966c542275678f75c830a3e17992fba050b32a7fd8e2d210699\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b24b094333a234303969778cf8608b0aed78631dc6fb5626d6b1eb7320dbfba\",\"dweb:/ipfs/QmW5kcoWCgorkzKYoWeWRm7KZ1YGeULVXWoZ7tmsgFYWQD\"]},\"@1inch/solidity-utils/contracts/libraries/SafeERC20.sol\":{\"keccak256\":\"0x7f1f5a6cc86c27c64a5e18ff33a683df22b5ab00b9a409f9b1fc13b32462d1b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88c7de570fd4a439e951dba84276ab0d5fd71718a235c11e7b92d4ca752722c\",\"dweb:/ipfs/QmaBPyJntsnY1hjokQKmjDJy2N2Zds17DrxrMw6z3qQhPF\"]},\"@1inch/solidity-utils/contracts/libraries/StringUtil.sol\":{\"keccak256\":\"0x47867f007afaefa24c40fe487b968f553f4551c941dfa53afe8cc29e1fb68f38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8671263c9dcf3357377a079d6d947d350f90686562dfeb8f0e8ee1e53512ebd8\",\"dweb:/ipfs/QmfYnSXkzoe7QgLxRUAAmfuuoTMdPNCqs93ANEjXYeHt7R\"]},\"@1inch/solidity-utils/contracts/libraries/UniERC20.sol\":{\"keccak256\":\"0xdccf305d185669e14c3ebe95dc9d924aa5c455bf9bddff9e8268508213df9d83\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b265270684b05eaf87eee40908a94db51d835a6d2265148000577759461c93c\",\"dweb:/ipfs/QmYj4tcoxFALGFu6h67K9kLFruxqhZCFTc3qG8CPaHY6u1\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/extensions/FeeTaker.sol\":{\"keccak256\":\"0xde99a4b1babebbfaae2e0543b8e962bd2c9d73c2b9258eb217f2254591875b64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8aa80c901504bef559986bb5f40b6999106aa1eb698efa57064d57eab248b2e0\",\"dweb:/ipfs/QmVgv33AQ3Yg6uRS6rtZBJSpKDCA8WNuGpv3tKqpq8YTUP\"]},\"contracts/interfaces/IOrderMixin.sol\":{\"keccak256\":\"0x8f13c59bdb818152a3046a63f1a65f8be1b8c0dbff6407e663bc20d1e6a3a84c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5757f05f8dc7fe40604125321570251a6d152f89dfde3609bf2840063f39f052\",\"dweb:/ipfs/QmUjmTa5Ley6sEAmpKNFdFHEf4H1dvaVymGHddp7MJotKh\"]},\"contracts/interfaces/IPostInteraction.sol\":{\"keccak256\":\"0x16a7386f4277240ad30942611a576865ce4ef13b38f6cb8d34f1bbb4c1211434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45a4c530449d3fc699a1bb5a5feb42c8f7802f381e0bf5ae070d9eea7a4c7cdf\",\"dweb:/ipfs/QmdatFZXF6PtavT7fzM8mnMVHDsxukdhV2WYDJKX8o4aeZ\"]},\"contracts/libraries/MakerTraitsLib.sol\":{\"keccak256\":\"0xd0e1f653233823874ede7ac1410dc0b21ca83b4c153bdeff32f6d1f6fd7917e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8ae597779feec21fdce24aa17626e77fc5aa6bb4020faecc2d17e87e73891c6\",\"dweb:/ipfs/QmeTE3KzpmSQ73fBJqyeThnjJRntYMbuTbfwosNXcrXGvC\"]},\"contracts/libraries/TakerTraitsLib.sol\":{\"keccak256\":\"0x144f154a46e8daa0fec5b8215f1d8d3b694cb939236aa7bf89976b27965c2837\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f23137afedddf14558f8ed65b7ab2fbb1d9fef29d728208ed5688a7d3fcd974\",\"dweb:/ipfs/QmfAzyJViWvYAgoSrnKHZSRx36VF8xwdLQjhEw1Y6PGok9\"]}},\"version\":1}", + "solc_metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"limitOrderProtocol\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"accessToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ETHTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EthTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InconsistentFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidIntegratorShare\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWhitelistDiscountNumerator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyLimitOrderProtocol\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyWhitelistOrAccessToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SafeTransferFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"maker\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"receiver\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"makerAsset\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"takerAsset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"makingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"takingAmount\",\"type\":\"uint256\"},{\"internalType\":\"MakerTraits\",\"name\":\"makerTraits\",\"type\":\"uint256\"}],\"internalType\":\"struct IOrderMixin.Order\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"extension\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"taker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"takingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"remainingMakingAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"getMakingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"maker\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"receiver\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"makerAsset\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"takerAsset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"makingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"takingAmount\",\"type\":\"uint256\"},{\"internalType\":\"MakerTraits\",\"name\":\"makerTraits\",\"type\":\"uint256\"}],\"internalType\":\"struct IOrderMixin.Order\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"extension\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"taker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"makingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"remainingMakingAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"getTakingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"maker\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"receiver\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"makerAsset\",\"type\":\"uint256\"},{\"internalType\":\"Address\",\"name\":\"takerAsset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"makingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"takingAmount\",\"type\":\"uint256\"},{\"internalType\":\"MakerTraits\",\"name\":\"makerTraits\",\"type\":\"uint256\"}],\"internalType\":\"struct IOrderMixin.Order\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"extension\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"taker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"makingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"takingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"remainingMakingAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"postInteraction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"rescueFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"EthTransferFailed()\":[{\"details\":\"Eth transfer failed. The target fallback may have reverted.\"}],\"InconsistentFee()\":[{\"details\":\"Fees are specified but FeeTaker is not set as a receiver.\"}],\"OnlyLimitOrderProtocol()\":[{\"details\":\"The caller is not the limit order protocol contract.\"}],\"OnlyWhitelistOrAccessToken()\":[{\"details\":\"The taker is not whitelisted and does not have access token.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"accessToken\":\"Contract address whose tokens allow filling limit orders with a fee for resolvers that are outside the whitelist.\",\"limitOrderProtocol\":\"The limit order protocol contract.\",\"owner\":\"The owner of the contract.\",\"weth\":\"The WETH address.\"}},\"getMakingAmount((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,bytes)\":{\"params\":{\"extension\":\"Order extension data\",\"extraData\":\"Extra data\",\"order\":\"Order being processed\",\"orderHash\":\"Hash of the order being processed\",\"remainingMakingAmount\":\"Order remaining making amount\",\"taker\":\"Taker address\",\"takingAmount\":\"Actual taking amount\"}},\"getTakingAmount((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,bytes)\":{\"params\":{\"extension\":\"Order extension data\",\"extraData\":\"Extra data\",\"makingAmount\":\"Actual taking amount\",\"order\":\"Order being processed\",\"orderHash\":\"Hash of the order being processed\",\"remainingMakingAmount\":\"Order remaining making amount\",\"taker\":\"Taker address\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"rescueFunds(address,uint256)\":{\"params\":{\"amount\":\"amount to retrieve\",\"token\":\"ERC20 token to retrieve\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Helper contract that adds feature of collecting fee in takerAsset\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Initializes the contract.\"},\"getMakingAmount((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,bytes)\":{\"notice\":\"View method that gets called to determine the actual making amount\"},\"getTakingAmount((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,bytes)\":{\"notice\":\"View method that gets called to determine the actual making amount\"},\"postInteraction((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,uint256,bytes)\":{\"notice\":\"See {IPostInteraction-postInteraction}.\"},\"rescueFunds(address,uint256)\":{\"notice\":\"Retrieves funds accidently sent directly to the contract address\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/extensions/FeeTaker.sol\":\"FeeTaker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":false,\"cse\":false,\"deduplicate\":false,\"inliner\":false,\"jumpdestRemover\":false,\"orderLiterals\":false,\"peephole\":false,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoDgvulfnTUtnIf[xa[r]EscLMcCTUtTOntnfDIulLculVcul [j]Tpeulxa[rul]xa[r]cLgvifCTUca[r]LSsTFOtfDnca[r]Iulc]jmul[jul] VcTOcul jmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":200},\"remappings\":[]},\"sources\":{\"@1inch/solidity-utils/contracts/interfaces/IDaiLikePermit.sol\":{\"keccak256\":\"0xf8636c1c4631641c7b40ac65cd69e6ae04a99cf3358426c642dec02c6c774c82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac24b4e38c3eba11303a78e1d9558a348b045593653bbe71cd569dfe9ab7c343\",\"dweb:/ipfs/QmdZQ3Eznk1ccEPpxhb68tVJLVYoxnJaj18L9ngvck4a2t\"]},\"@1inch/solidity-utils/contracts/interfaces/IERC20MetadataUppercase.sol\":{\"keccak256\":\"0x7d97ae2903bd1ee8f24ab7bbf099d075f2bbd451b0f755366479d249780d0c68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc9fa6bc781aa748e35b1c45d3072e6c49eb6d61b954327ef135f67093d75339\",\"dweb:/ipfs/Qmc8e1g1c18b7J4m1DqFYvgpeuA7Pabk2Sz59mJgCBwSRB\"]},\"@1inch/solidity-utils/contracts/interfaces/IERC7597Permit.sol\":{\"keccak256\":\"0xaf148ecd4db0f44989a7417f6945bcfd18273c5096bc2b364e314e42c85c78cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://174772debe2ffb231d722cf59de7107e7248dad0cdeda88b8108a19df2494cdb\",\"dweb:/ipfs/QmY3usmJswW97qPMfYfbghsDBAKQ7H6rUxJjSS3KmvaXDL\"]},\"@1inch/solidity-utils/contracts/interfaces/IPermit2.sol\":{\"keccak256\":\"0x2ac37c62bb4a4941c1d353df6ac08750542c540234aa24409ac67373651a478a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9389ffd404b3b7d9ce89d021943771521e379611d94c8c7c121991eede96d57d\",\"dweb:/ipfs/QmYWqcxoGJX9EMj7kdfk3igDctR1z3gWPHuf1kbE6U8tbm\"]},\"@1inch/solidity-utils/contracts/interfaces/IWETH.sol\":{\"keccak256\":\"0x32989b79850e8a1ac6aab74878de2883f9537656ca06910dc0ae76833cc446e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0dc26b14df9a1fd2ce184299a37c8c3bbaad534c04818c946142d4f4fc4e8d7\",\"dweb:/ipfs/QmaQ4rcitKKqvZ9cUF8ZwWt4dni4faSyAjBnqQMoL9sB5K\"]},\"@1inch/solidity-utils/contracts/libraries/AddressLib.sol\":{\"keccak256\":\"0xe860b410ed5371b9732daab80982eef0a42ae48474716a89725ca744e27b7d75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f12dfcc4aae2acb16afd6557ecbda6ec019e084463fd0fb08bc906d4416f59e\",\"dweb:/ipfs/QmSC48i8UngVeNyHzEKPjaXAJ74sfCS9FBCyY8uH6eLEe1\"]},\"@1inch/solidity-utils/contracts/libraries/RevertReasonForwarder.sol\":{\"keccak256\":\"0x97d8c950981f4da44ae1b01d9e597c4f99377797ec7ff7b1ef9648e4ecc1baa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6609e53701ca057e7996902f876d061d815402e235cdeac5e490c11e1925f5db\",\"dweb:/ipfs/QmZhBhxUvBhb3Tph194yEYyXLeSticArTVra6ryaPPJH5B\"]},\"@1inch/solidity-utils/contracts/libraries/SafeERC20.sol\":{\"keccak256\":\"0xf5010526a91c8fe876a0959e952186156a0c8f1888bf392eb406a93f449b2716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://071636df4b0234d9451f73d3cea773847a36a810fa789177f089132617468e62\",\"dweb:/ipfs/QmXajjbbS5cJQdNgvBQh1GP5e9GqbMiFALV2pRXGwWeUQV\"]},\"@1inch/solidity-utils/contracts/libraries/StringUtil.sol\":{\"keccak256\":\"0xb05bff1a3a5461b1f16248220067a2bd52e5c7e41c14be0aebb6520985b67ccb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03495f22f0128969aef7dd46f65e215851cbd52cfa4d87eac0c930c5cd84826d\",\"dweb:/ipfs/QmekA9rM82XXPKdHpCwAYhirtSCB5AJo16TUvyBYVWhKhZ\"]},\"@1inch/solidity-utils/contracts/libraries/UniERC20.sol\":{\"keccak256\":\"0xcdd6c93b823011a47bc3655148bdec951217cfd4b99299249a83a3cce12f1f12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://549339a21d500b7b973ab74d11089c658dc481a914c8464659eadf52f5d47d60\",\"dweb:/ipfs/QmcDH8K6PA8tCzKSCfnfrTXmBda6jReVP5RFHKzvbPrcYa\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x27dbc90e5136ffe46c04f7596fc2dbcc3acebd8d504da3d93fdb8496e6de04f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea8b92e4245d75a5579c10f22f118f7b4ba07c57341f181f0b2a85ff8663de3\",\"dweb:/ipfs/Qme3Ss5ByjmkxxkMdLpyu7fQ1PCtjNFH1wEFszt2BZePiG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/extensions/AmountGetterBase.sol\":{\"keccak256\":\"0xfbf211c52fd6ac8e2e8bdbc4151f59044190f57b6f7c859d810eef17b2e4ac3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa6687a1d63fa880c597446ce43c1151753c77daeb351e2ed9097c6c247c08af\",\"dweb:/ipfs/QmbibcNdV1ydGrw2AJvUdpqZJPR5bLgEyjpWtc6747XHDA\"]},\"contracts/extensions/AmountGetterWithFee.sol\":{\"keccak256\":\"0x85aaeafa95ad52331ee4af0027490cd06ca4dab5617cb1f7f8ff55672a4da4d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44ce6263e068e04dc17be3eaabe858c4339ecf2179e9b53882a00b12fac3d0fe\",\"dweb:/ipfs/QmeHAiDRGH3nwdBgv66by5pUQpWSBCv3DXs6aqU4F9BEAa\"]},\"contracts/extensions/FeeTaker.sol\":{\"keccak256\":\"0x771474dc371b8a53c2c8ec50418f13a73c15704d1c379d1722ae1dc76aa3e131\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bcccd4836ba9cfef7f045b7ba05a7ce98037066a9f5a8533c15e66d22f67139\",\"dweb:/ipfs/QmaPnELBpGC74osWfWV1PuCTd1XkxMnof1PnSnLbNK3S8H\"]},\"contracts/interfaces/IAmountGetter.sol\":{\"keccak256\":\"0xe12ea8bcc42f8ba4a6fd4d67b06738cd3334c121388737d1d20ab938ed06c0ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba891443167539fc3c08ed9a4b0e4001414c4579c56abdabf495fff165ee886\",\"dweb:/ipfs/QmYCzbvnRJDMHyEF6pUnBEZpW1DeUTzoc3upFThXevpFHY\"]},\"contracts/interfaces/IOrderMixin.sol\":{\"keccak256\":\"0x8f13c59bdb818152a3046a63f1a65f8be1b8c0dbff6407e663bc20d1e6a3a84c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5757f05f8dc7fe40604125321570251a6d152f89dfde3609bf2840063f39f052\",\"dweb:/ipfs/QmUjmTa5Ley6sEAmpKNFdFHEf4H1dvaVymGHddp7MJotKh\"]},\"contracts/interfaces/IPostInteraction.sol\":{\"keccak256\":\"0x16a7386f4277240ad30942611a576865ce4ef13b38f6cb8d34f1bbb4c1211434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45a4c530449d3fc699a1bb5a5feb42c8f7802f381e0bf5ae070d9eea7a4c7cdf\",\"dweb:/ipfs/QmdatFZXF6PtavT7fzM8mnMVHDsxukdhV2WYDJKX8o4aeZ\"]},\"contracts/libraries/MakerTraitsLib.sol\":{\"keccak256\":\"0xd0e1f653233823874ede7ac1410dc0b21ca83b4c153bdeff32f6d1f6fd7917e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8ae597779feec21fdce24aa17626e77fc5aa6bb4020faecc2d17e87e73891c6\",\"dweb:/ipfs/QmeTE3KzpmSQ73fBJqyeThnjJRntYMbuTbfwosNXcrXGvC\"]},\"contracts/libraries/TakerTraitsLib.sol\":{\"keccak256\":\"0x144f154a46e8daa0fec5b8215f1d8d3b694cb939236aa7bf89976b27965c2837\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f23137afedddf14558f8ed65b7ab2fbb1d9fef29d728208ed5688a7d3fcd974\",\"dweb:/ipfs/QmfAzyJViWvYAgoSrnKHZSRx36VF8xwdLQjhEw1Y6PGok9\"]}},\"version\":1}", "solc_version": "0.8.23", "solc_zkvm_edition": null, "zk_version": "1.4.0" }, - "bytecode": "0x0003000000000002000800000000000200000000030100190000006003300270000000e9033001970002000000310355000100000001035500000001022001900000002e0000c13d0000008002000039000000400020043f000000040230008c000000670000413d000000000201043b000000e002200270000000f20420009c0000006b0000a13d000000f30420009c000000870000613d000000f40420009c000000b50000613d000000f50220009c000001950000c13d0000000002000416000000000202004b000001950000c13d000000040230008a000000200220008c000001950000413d0000000401100370000000000101043b000000eb06100197000000eb0110009c000001950000213d000000000100041a000000eb051001970000000002000411000000000325004b000001970000c13d000000000206004b000001a10000c13d000000f001000041000000800010043f000000840000043f000000f901000041000003a1000104300000000002000416000000000202004b000001950000c13d000000df02300039000000ea02200197000000400020043f0000001f0230018f0000000504300272000000400000613d00000000050000190000000506500210000000000761034f000000000707043b000000c00660003900000000007604350000000105500039000000000645004b000000380000413d000000000502004b0000004f0000613d0000000504400210000000000141034f0000000302200210000000c004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000600130008c000001950000413d000000c00200043d000000eb0120009c000001950000213d000000e00300043d000000eb0130009c000001950000213d000001000600043d000000eb0160009c000001950000213d000000000106004b000001740000c13d000000400100043d000000f002000041000000000021043500000004021000390000000000020435000000e902000041000000e90310009c00000000010280190000004001100210000000f1011001c7000003a100010430000000000103004b000001950000c13d0000000001000019000003a00001042e000000f60420009c000000bd0000613d000000f70120009c000001950000c13d0000000001000416000000000101004b000001950000c13d000000000100041a000000eb051001970000000002000411000000000325004b000001970000c13d000000ec01100197000000000010041b000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000ed011001c70000800d020000390000000303000039000000ee040000410000000006000019039f03950000040f0000000101200190000001950000613d000000690000013d0000000002000416000000000202004b000001950000c13d000000040230008a000000400220008c000001950000413d0000000402100370000000000202043b000000eb0320009c000001950000213d0000002401100370000000000401043b000000000100041a000000eb051001970000000001000411000000000315004b0000019c0000c13d000000000104004b000000690000613d000000eb012001980000009e0000613d000000fb0110009c000001ae0000c13d000700000005001d000800000004001d000000fc01000041000000000010043900000000010004100000000400100443000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000fd011001c70000800a02000039039f039a0000040f0000000102200190000002f20000613d000000000101043b0000000803000029000000000131004b000001b90000813d000000400100043d0000010102000041000002190000013d0000000001000416000000000101004b000001950000c13d000000000100041a000000eb01100197000000800010043f000000fa01000041000003a00001042e0000000002000416000000000202004b000001950000c13d000000040230008a000001e00220008c000001950000413d0000010402100370000000000202043b000000fe0420009c000001950000213d00000023042000390000010505000041000000000634004b000000000600001900000000060580190000010504400197000000000704004b0000000005008019000001050440009c000000000506c019000000000405004b000001950000c13d0000000404200039000000000441034f000000000404043b000000fe0540009c000001950000213d00000000024200190000002402200039000000000232004b000001950000213d0000014402100370000000000202043b000000eb0220009c000001950000213d0000018402100370000000000702043b000001c402100370000000000802043b000000fe0280009c000001950000213d00000023028000390000010504000041000000000532004b000000000500001900000000050480190000010502200197000000000602004b0000000004008019000001050220009c000000000405c019000000000204004b000001950000c13d0000000404800039000000000141034f000000000201043b000000fe0120009c000001950000213d00000000012800190000002401100039000000000131004b000001950000213d000600000004001d000800000002001d000400000008001d000700000007001d000001060100004100000000001004390000000001000412000500000001001d00000004001004430000002400000443000000e9010000410000000002000414000000e90320009c0000000002018019000000c00120021000000107011001c70000800502000039039f039a0000040f0000000102200190000002f20000613d000000000101043b000000eb011001970000000002000411000000000112004b0000024f0000c13d0000000804000029000000030140021000000010011000890000010a0200004100000000031201cf000000020140008c0000000003028019000000060100002900000020021000390000000101000367000000000421034f000000000404043b000000000334016f000000f00330027000060007403000bd000000070400006b000001290000613d000000060500002900000007545000fa000000000343004b000002530000c13d00000006030000290003010c303001320000000804000029000000160340008c000001950000413d0000000202200039000000000221034f0000002403100370000000000303043b000200eb0030019b000000000202043b000100000002001d000000160240008c0000013f0000613d00000008020000290000002a0220008c0000000402000029000001950000413d0000003a02200039000000000221034f000000000202043b00020060002002780000008401100370000000000101043b000800000001001d000001060100004100000000001004390000000501000029000000040010044300000020010000390000002400100443000000e9010000410000000002000414000000e90320009c0000000002018019000000c00120021000000107011001c70000800502000039039f039a0000040f0000000803000029000800eb0030019b0000000102200190000002f20000613d00000001020000290000006004200270000000000101043b000000eb01100197000000080110006b0000015f0000c13d000000e4010000390000000101100367000000000101043b0000010d01100198000002670000c13d00000006010000290000010c0110009c0000000702000029000002570000813d000000030220006a000000400100043d000000240310003900000000002304350000010202000041000000000021043500000004021000390000000203000029000000000032043500000000020004140000000803000029000000040330008c000002700000c13d0000000001010433000000000010043500000000030000310000029e0000013d000800000002001d000000000200041a000000ec01200197000000000161019f000000000010041b000000e901000041000700000003001d0000000003000414000000e90430009c0000000003018019000000c001300210000000ed011001c7000000eb052001970000800d020000390000000303000039000000ee04000041039f03950000040f000000070300002900000001012001900000000801000029000001950000613d000000800010043f000000a00030043f0000014000000443000001600010044300000020010000390000018000100443000001a000300443000001000010044300000002010000390000012000100443000000ef01000041000003a00001042e0000000001000019000003a100010430000000f801000041000000800010043f000000840020043f000000f901000041000003a100010430000000f802000041000000800020043f000000840010043f000000f901000041000003a100010430000000ec01100197000000000161019f000000000010041b000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000ed011001c70000800d020000390000000303000039000000ee04000041000000830000013d0000010201000041000000800010043f000000840050043f000000a40040043f0000000001000414000000040320008c000001c00000c13d000000800100043d00000000001004350000000003000031000001eb0000013d00000000010004140000000704000029000000040240008c000002060000c13d00000001020000390000000001000031000002130000013d000000e904000041000000e90310009c0000000001048019000000c00110021000000103011001c7000800000002001d039f03950000040f00000000030100190000006003300270000000e903300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000001d80000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000001d10000413d000000000605004b000001e60000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f000200000001035500000001012001900000000802000029000002030000613d000000000103004b000001fe0000c13d000001040100004100000000001004390000000400200443000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000fd011001c70000800202000039039f039a0000040f0000000102200190000002f20000613d000000000101043b000000000101004b000000690000c13d000002030000013d000000200130008c000002030000413d0000000001000433000000010110008c000000690000613d000000400100043d0000011102000041000002190000013d000000e902000041000000e90510009c0000000001028019000000c001100210000000ed011001c700008009020000390000000005000019039f03950000040f000000010220018f00020000000103550000006001100270000000e90010019d000000e901100197000000000301004b000002200000c13d000000000102004b000000690000c13d000000400100043d000000ff020000410000000000210435000000e902000041000000e90310009c0000000001028019000000400110021000000100011001c7000003a100010430000000fe0310009c000003610000213d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000000fe0630009c000003610000213d0000000105500190000003610000c13d000000400030043f0000001f0310018f0000000004140436000000020500036700000005011002720000023f0000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000002370000413d000000000603004b000002150000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000002150000013d0000010801000041000000800010043f0000010901000041000003a1000104300000010b0100004100000000001004350000001101000039000003640000013d000000400100043d000000240210003900000003030000290000000000320435000001020200004100000000002104350000000402100039000000000042043500000000020004140000000803000029000000040330008c000002af0000c13d000000000101043300000000001004350000000003000031000002dd0000013d00000006010000290000010c0110009c0000030e0000413d0000000001000414000000040240008c000002fd0000c13d000000010200003900000000010000310000030a0000013d000000e903000041000000e90420009c0000000002038019000000e90410009c00000000010380190000004001100210000000c002200210000000000112019f00000110011001c70000000802000029039f03950000040f00000000030100190000006003300270000000e903300197000000200430008c000000000403001900000020040080390000001f0540018f00000005044002720000028c0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000002850000413d000000000605004b0000029a0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002030000613d000000000103004b000002f30000c13d0000010401000041000000000010043900000008010000290000000400100443000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000fd011001c70000800202000039039f039a0000040f0000000102200190000002f20000613d000001fa0000013d000000e903000041000000e90420009c0000000002038019000000e90410009c00000000010380190000004001100210000000c002200210000000000112019f00000110011001c70000000802000029039f03950000040f00000000030100190000006003300270000000e903300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000002cb0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000002c40000413d000000000605004b000002d90000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002030000613d000000000103004b000002f60000c13d0000010401000041000000000010043900000008010000290000000400100443000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000fd011001c70000800202000039039f039a0000040f0000000102200190000002f20000613d000000000101043b000000000101004b0000000702000029000001630000c13d000002030000013d000000000001042f000000200130008c000002000000813d000002030000013d000000200130008c0000000702000029000002030000413d0000000001000433000000010110008c000001630000613d000002030000013d000000e902000041000000e90310009c0000000001028019000000c001100210000000ed011001c7000080090200003900000003030000290000000005000019039f03950000040f00020000000103550000006001100270000000e90010019d000000e901100197000000000301004b0000031e0000c13d00000001012001900000035c0000613d00000000010004140000000202000029000000040220008c000003150000c13d00000001020000390000000001000031000003580000013d000000e902000041000000e90310009c0000000001028019000000c0011002100000000303000029000000070230006b0000034d0000c13d0000000202000029000003530000013d0000010e0310009c000003610000813d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000000fe0630009c000003610000213d0000000105500190000003610000c13d000000400030043f0000001f0310018f0000000004140436000000020500036700000005011002720000033d0000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000003350000413d000000000603004b0000030c0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f00000000003104350000030c0000013d00000003030000290000000703300069000000ed011001c7000080090200003900000002040000290000000005000019039f03950000040f00020000000103550000006001100270000000e90010019d000000e901100197000000000301004b0000035f0000c13d0000000101200190000000690000c13d000000400100043d0000010f02000041000002190000013d000000fe0310009c000003670000a13d0000010b0100004100000000001004350000004101000039000000040010043f000000f101000041000003a1000104300000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000000fe0630009c000003610000213d0000000105500190000003610000c13d000000400030043f0000001f0310018f000000000414043600000002050003670000000501100272000003840000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b0000037c0000413d000000000603004b0000035a0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f00000000003104350000035a0000013d000000000001042f00000398002104210000000102000039000000000001042d0000000002000019000000000001042d0000039d002104230000000102000039000000000001042d0000000002000019000000000001042d0000039f00000432000003a00001042e000003a1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000002000000000000000000000000000000c00000010000000000000000001e4fbdf70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000078e3214e0000000000000000000000000000000000000000000000000000000078e3214f000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000462ebde200000000000000000000000000000000000000000000000000000000715018a6118cdaa70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f390200000200000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffb12d13eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f4d678b800000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b838000000000000000000000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000d25aa106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000800000000000000000ffff0000000000000000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a0008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000006d963f88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000fb7f5079000000000000000000000000000000000000000000000000000000006cb7068b3756f140b03622bba37bf17cf4684b16c7b90eb3f47dc3176cccc6c0", - "deployedBytecode": "0x0003000000000002000800000000000200000000030100190000006003300270000000e9033001970002000000310355000100000001035500000001022001900000002e0000c13d0000008002000039000000400020043f000000040230008c000000670000413d000000000201043b000000e002200270000000f20420009c0000006b0000a13d000000f30420009c000000870000613d000000f40420009c000000b50000613d000000f50220009c000001950000c13d0000000002000416000000000202004b000001950000c13d000000040230008a000000200220008c000001950000413d0000000401100370000000000101043b000000eb06100197000000eb0110009c000001950000213d000000000100041a000000eb051001970000000002000411000000000325004b000001970000c13d000000000206004b000001a10000c13d000000f001000041000000800010043f000000840000043f000000f901000041000003a1000104300000000002000416000000000202004b000001950000c13d000000df02300039000000ea02200197000000400020043f0000001f0230018f0000000504300272000000400000613d00000000050000190000000506500210000000000761034f000000000707043b000000c00660003900000000007604350000000105500039000000000645004b000000380000413d000000000502004b0000004f0000613d0000000504400210000000000141034f0000000302200210000000c004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000600130008c000001950000413d000000c00200043d000000eb0120009c000001950000213d000000e00300043d000000eb0130009c000001950000213d000001000600043d000000eb0160009c000001950000213d000000000106004b000001740000c13d000000400100043d000000f002000041000000000021043500000004021000390000000000020435000000e902000041000000e90310009c00000000010280190000004001100210000000f1011001c7000003a100010430000000000103004b000001950000c13d0000000001000019000003a00001042e000000f60420009c000000bd0000613d000000f70120009c000001950000c13d0000000001000416000000000101004b000001950000c13d000000000100041a000000eb051001970000000002000411000000000325004b000001970000c13d000000ec01100197000000000010041b000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000ed011001c70000800d020000390000000303000039000000ee040000410000000006000019039f03950000040f0000000101200190000001950000613d000000690000013d0000000002000416000000000202004b000001950000c13d000000040230008a000000400220008c000001950000413d0000000402100370000000000202043b000000eb0320009c000001950000213d0000002401100370000000000401043b000000000100041a000000eb051001970000000001000411000000000315004b0000019c0000c13d000000000104004b000000690000613d000000eb012001980000009e0000613d000000fb0110009c000001ae0000c13d000700000005001d000800000004001d000000fc01000041000000000010043900000000010004100000000400100443000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000fd011001c70000800a02000039039f039a0000040f0000000102200190000002f20000613d000000000101043b0000000803000029000000000131004b000001b90000813d000000400100043d0000010102000041000002190000013d0000000001000416000000000101004b000001950000c13d000000000100041a000000eb01100197000000800010043f000000fa01000041000003a00001042e0000000002000416000000000202004b000001950000c13d000000040230008a000001e00220008c000001950000413d0000010402100370000000000202043b000000fe0420009c000001950000213d00000023042000390000010505000041000000000634004b000000000600001900000000060580190000010504400197000000000704004b0000000005008019000001050440009c000000000506c019000000000405004b000001950000c13d0000000404200039000000000441034f000000000404043b000000fe0540009c000001950000213d00000000024200190000002402200039000000000232004b000001950000213d0000014402100370000000000202043b000000eb0220009c000001950000213d0000018402100370000000000702043b000001c402100370000000000802043b000000fe0280009c000001950000213d00000023028000390000010504000041000000000532004b000000000500001900000000050480190000010502200197000000000602004b0000000004008019000001050220009c000000000405c019000000000204004b000001950000c13d0000000404800039000000000141034f000000000201043b000000fe0120009c000001950000213d00000000012800190000002401100039000000000131004b000001950000213d000600000004001d000800000002001d000400000008001d000700000007001d000001060100004100000000001004390000000001000412000500000001001d00000004001004430000002400000443000000e9010000410000000002000414000000e90320009c0000000002018019000000c00120021000000107011001c70000800502000039039f039a0000040f0000000102200190000002f20000613d000000000101043b000000eb011001970000000002000411000000000112004b0000024f0000c13d0000000804000029000000030140021000000010011000890000010a0200004100000000031201cf000000020140008c0000000003028019000000060100002900000020021000390000000101000367000000000421034f000000000404043b000000000334016f000000f00330027000060007403000bd000000070400006b000001290000613d000000060500002900000007545000fa000000000343004b000002530000c13d00000006030000290003010c303001320000000804000029000000160340008c000001950000413d0000000202200039000000000221034f0000002403100370000000000303043b000200eb0030019b000000000202043b000100000002001d000000160240008c0000013f0000613d00000008020000290000002a0220008c0000000402000029000001950000413d0000003a02200039000000000221034f000000000202043b00020060002002780000008401100370000000000101043b000800000001001d000001060100004100000000001004390000000501000029000000040010044300000020010000390000002400100443000000e9010000410000000002000414000000e90320009c0000000002018019000000c00120021000000107011001c70000800502000039039f039a0000040f0000000803000029000800eb0030019b0000000102200190000002f20000613d00000001020000290000006004200270000000000101043b000000eb01100197000000080110006b0000015f0000c13d000000e4010000390000000101100367000000000101043b0000010d01100198000002670000c13d00000006010000290000010c0110009c0000000702000029000002570000813d000000030220006a000000400100043d000000240310003900000000002304350000010202000041000000000021043500000004021000390000000203000029000000000032043500000000020004140000000803000029000000040330008c000002700000c13d0000000001010433000000000010043500000000030000310000029e0000013d000800000002001d000000000200041a000000ec01200197000000000161019f000000000010041b000000e901000041000700000003001d0000000003000414000000e90430009c0000000003018019000000c001300210000000ed011001c7000000eb052001970000800d020000390000000303000039000000ee04000041039f03950000040f000000070300002900000001012001900000000801000029000001950000613d000000800010043f000000a00030043f0000014000000443000001600010044300000020010000390000018000100443000001a000300443000001000010044300000002010000390000012000100443000000ef01000041000003a00001042e0000000001000019000003a100010430000000f801000041000000800010043f000000840020043f000000f901000041000003a100010430000000f802000041000000800020043f000000840010043f000000f901000041000003a100010430000000ec01100197000000000161019f000000000010041b000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000ed011001c70000800d020000390000000303000039000000ee04000041000000830000013d0000010201000041000000800010043f000000840050043f000000a40040043f0000000001000414000000040320008c000001c00000c13d000000800100043d00000000001004350000000003000031000001eb0000013d00000000010004140000000704000029000000040240008c000002060000c13d00000001020000390000000001000031000002130000013d000000e904000041000000e90310009c0000000001048019000000c00110021000000103011001c7000800000002001d039f03950000040f00000000030100190000006003300270000000e903300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000001d80000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000001d10000413d000000000605004b000001e60000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f000200000001035500000001012001900000000802000029000002030000613d000000000103004b000001fe0000c13d000001040100004100000000001004390000000400200443000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000fd011001c70000800202000039039f039a0000040f0000000102200190000002f20000613d000000000101043b000000000101004b000000690000c13d000002030000013d000000200130008c000002030000413d0000000001000433000000010110008c000000690000613d000000400100043d0000011102000041000002190000013d000000e902000041000000e90510009c0000000001028019000000c001100210000000ed011001c700008009020000390000000005000019039f03950000040f000000010220018f00020000000103550000006001100270000000e90010019d000000e901100197000000000301004b000002200000c13d000000000102004b000000690000c13d000000400100043d000000ff020000410000000000210435000000e902000041000000e90310009c0000000001028019000000400110021000000100011001c7000003a100010430000000fe0310009c000003610000213d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000000fe0630009c000003610000213d0000000105500190000003610000c13d000000400030043f0000001f0310018f0000000004140436000000020500036700000005011002720000023f0000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000002370000413d000000000603004b000002150000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000002150000013d0000010801000041000000800010043f0000010901000041000003a1000104300000010b0100004100000000001004350000001101000039000003640000013d000000400100043d000000240210003900000003030000290000000000320435000001020200004100000000002104350000000402100039000000000042043500000000020004140000000803000029000000040330008c000002af0000c13d000000000101043300000000001004350000000003000031000002dd0000013d00000006010000290000010c0110009c0000030e0000413d0000000001000414000000040240008c000002fd0000c13d000000010200003900000000010000310000030a0000013d000000e903000041000000e90420009c0000000002038019000000e90410009c00000000010380190000004001100210000000c002200210000000000112019f00000110011001c70000000802000029039f03950000040f00000000030100190000006003300270000000e903300197000000200430008c000000000403001900000020040080390000001f0540018f00000005044002720000028c0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000002850000413d000000000605004b0000029a0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002030000613d000000000103004b000002f30000c13d0000010401000041000000000010043900000008010000290000000400100443000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000fd011001c70000800202000039039f039a0000040f0000000102200190000002f20000613d000001fa0000013d000000e903000041000000e90420009c0000000002038019000000e90410009c00000000010380190000004001100210000000c002200210000000000112019f00000110011001c70000000802000029039f03950000040f00000000030100190000006003300270000000e903300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000002cb0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000002c40000413d000000000605004b000002d90000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002030000613d000000000103004b000002f60000c13d0000010401000041000000000010043900000008010000290000000400100443000000e9010000410000000002000414000000e90320009c0000000002018019000000c001200210000000fd011001c70000800202000039039f039a0000040f0000000102200190000002f20000613d000000000101043b000000000101004b0000000702000029000001630000c13d000002030000013d000000000001042f000000200130008c000002000000813d000002030000013d000000200130008c0000000702000029000002030000413d0000000001000433000000010110008c000001630000613d000002030000013d000000e902000041000000e90310009c0000000001028019000000c001100210000000ed011001c7000080090200003900000003030000290000000005000019039f03950000040f00020000000103550000006001100270000000e90010019d000000e901100197000000000301004b0000031e0000c13d00000001012001900000035c0000613d00000000010004140000000202000029000000040220008c000003150000c13d00000001020000390000000001000031000003580000013d000000e902000041000000e90310009c0000000001028019000000c0011002100000000303000029000000070230006b0000034d0000c13d0000000202000029000003530000013d0000010e0310009c000003610000813d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000000fe0630009c000003610000213d0000000105500190000003610000c13d000000400030043f0000001f0310018f0000000004140436000000020500036700000005011002720000033d0000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000003350000413d000000000603004b0000030c0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f00000000003104350000030c0000013d00000003030000290000000703300069000000ed011001c7000080090200003900000002040000290000000005000019039f03950000040f00020000000103550000006001100270000000e90010019d000000e901100197000000000301004b0000035f0000c13d0000000101200190000000690000c13d000000400100043d0000010f02000041000002190000013d000000fe0310009c000003670000a13d0000010b0100004100000000001004350000004101000039000000040010043f000000f101000041000003a1000104300000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000000fe0630009c000003610000213d0000000105500190000003610000c13d000000400030043f0000001f0310018f000000000414043600000002050003670000000501100272000003840000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b0000037c0000413d000000000603004b0000035a0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f00000000003104350000035a0000013d000000000001042f00000398002104210000000102000039000000000001042d0000000002000019000000000001042d0000039d002104230000000102000039000000000001042d0000000002000019000000000001042d0000039f00000432000003a00001042e000003a1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000002000000000000000000000000000000c00000010000000000000000001e4fbdf70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000078e3214e0000000000000000000000000000000000000000000000000000000078e3214f000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000462ebde200000000000000000000000000000000000000000000000000000000715018a6118cdaa70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f390200000200000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffb12d13eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f4d678b800000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b838000000000000000000000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000d25aa106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000800000000000000000ffff0000000000000000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a0008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000006d963f88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000fb7f5079000000000000000000000000000000000000000000000000000000006cb7068b3756f140b03622bba37bf17cf4684b16c7b90eb3f47dc3176cccc6c0", + "bytecode": "0x0003000000000002000f000000000002000000000301001900000060033002700000032d03300197000200000031035500010000000103550000000102200190000000200000c13d0000008002000039000000400020043f000000040430008c0000005d0000413d000f00000000001d000000000401043b000000e004400270000003360540009c000000610000a13d000003370540009c0000007f0000213d0000033a0240009c000001240000613d0000033b0140009c000003580000c13d0000000001000416000000000101004b000003580000c13d000000000100041a0000032f01100197000000800010043f000003560100004100000cb00001042e0000000002000416000000000202004b000003580000c13d000000ff023000390000032e02200197000000400020043f0000001f0230018f0000000504300272000000320000613d00000000050000190000000506500210000000000761034f000000000707043b000000e00660003900000000007604350000000105500039000000000645004b0000002a0000413d000000000502004b000000410000613d0000000504400210000000000141034f0000000302200210000000e004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000800130008c000003580000413d000000e00200043d0000032f0120009c000003580000213d000001000300043d0000032f0130009c000003580000213d000001200100043d000e00000001001d0000032f0110009c000003580000213d000001400600043d0000032f0160009c000003580000213d000000000106004b000002050000c13d000000400100043d00000334020000410000000000210435000000040210003900000000000204350000032d020000410000032d0310009c0000000001028019000000400110021000000335011001c700000cb100010430000000000103004b000003580000c13d000000000100001900000cb00001042e0000033c0240009c0000009a0000613d0000033d0240009c000001a70000613d0000033e0140009c000003580000c13d0000000001000416000000000101004b000003580000c13d000000000100041a0000032f051001970000000002000411000000000325004b000002310000c13d0000033001100197000000000010041b0000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000331011001c70000800d020000390000000303000039000003320400004100000000060000190caf0ca50000040f0000000101200190000003580000613d0000005f0000013d000003380540009c000001540000613d000003390240009c000003580000c13d0000000002000416000000000202004b000003580000c13d000000040230008a000000200220008c000003580000413d0000000401100370000000000101043b0000032f061001970000032f0110009c000003580000213d000000000100041a0000032f051001970000000002000411000000000325004b000002310000c13d000000000206004b000002360000c13d0000033401000041000000800010043f000000840000043f000003400100004100000cb1000104300000000002000416000000000202004b000003580000c13d000000040230008a000001c00220008c000003580000413d0000010402100370000000000202043b000003410420009c000003580000213d00000023042000390000034205000041000000000634004b000000000600001900000000060580190000034204400197000000000704004b0000000005008019000003420440009c000000000506c019000000000405004b000003580000c13d0000000404200039000000000441034f000000000404043b000003410540009c000003580000213d00000024082000390000000002840019000000000232004b000003580000213d0000012402100370000000000502043b0000014402100370000000000602043b0000032f0260009c000003580000213d0000018402100370000000000702043b0000016402100370000000000202043b000001a409100370000000000909043b000003410a90009c000003580000213d000000230a900039000003420b000041000000000c3a004b000000000c000019000000000c0b8019000003420aa00197000000000d0a004b000000000b008019000003420aa0009c000000000b0cc019000000000a0b004b000003580000c13d000000040b900039000000000ab1034f000000000a0a043b000003410ca0009c000003580000213d000000000ca90019000000240cc0003900000000033c004b000003580000213d0000002003b00039000000000b31034f000000000b0b043b000e0000000b001d000000020ba0008c000003580000413d0000000203300039000000000b31034f000000000b0b043b000000020ca0008c000000e90000613d000003700bb0009c000001a30000813d000000030ba0008c000003580000413d000000030ba0008a000000030cb00210000000100cc00089000003440d000041000000000ccd01cf000000020bb0008c000000000c0d80190000000103300039000000000b31034f000000000f0b043b000000050ba0008c000003580000413d000000020e3000390000000003e1034f000000000303043b000000f803300270000000050ba0008c0000000003006019000000650b30008c000002f30000813d000000060ba0008c000003580000413d000003450d600197000d000600a00094000002010000613d000000010ae00039000000000aa1034f000000000a0a043b000b0000000a001d000000f80ea002700000000abae000c9000c0000000a001d000000010ba001bf0000000d0bb0006c000003580000213d000000000bcf016f000900f000b00278000a002b0090003d0000000b09000029000003460990009c000003aa0000413d00000000090000190000000c0f0000290000000a0c0000290000000a0af0008c000003580000413d000000000ac1034f000000000a0a043b000000b00aa00270000000000aad004b000003a80000613d0000000a0ff0008a0000000a0cc000390000000109900039000000000ae9004b000001170000413d000003aa0000013d0000000002000416000000000202004b000003580000c13d000000040230008a000000400220008c000003580000413d0000000402100370000000000202043b000e00000002001d0000032f0220009c000003580000213d0000002401100370000000000301043b000000000100041a0000032f041001970000000001000411000000000214004b0000022c0000c13d000c00000004001d000d00000003001d000000000103004b0000005f0000613d0000000e020000290000032f012001980000013f0000613d000003570110009c000002430000c13d00000358010000410000000000100439000000000100041000000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c70000800a020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b0000000d03000029000000000131004b000002500000813d000000400100043d0000035d02000041000002aa0000013d0000000004000416000000000404004b000003580000c13d000000040430008a000001c00440008c000003580000413d0000010404100370000000000404043b000003410540009c000003580000213d00000023054000390000034206000041000000000735004b000000000700001900000000070680190000034205500197000000000805004b0000000006008019000003420550009c000000000607c019000000000506004b000003580000c13d0000000405400039000000000551034f000000000505043b000003410650009c000003580000213d00000024094000390000000004950019000000000434004b000003580000213d0000012404100370000000000604043b0000014404100370000000000704043b0000032f0470009c000003580000213d0000018404100370000000000804043b0000016404100370000000000404043b000001a40a100370000000000a0a043b000003410ba0009c000003580000213d000000230ba00039000003420c000041000000000d3b004b000000000d000019000000000d0c8019000003420bb00197000000000e0b004b000000000c008019000003420bb0009c000000000c0dc019000000000b0c004b000003580000c13d000000040ca00039000000000bc1034f000000000b0b043b000003410db0009c000003580000213d000000000dba0019000000240dd0003900000000033d004b000003580000213d0000002003c00039000000000c31034f000000000c0c043b000e0000000c001d000000020cb0008c000003580000413d0000000203300039000000000c31034f000000000c0c043b000000020db0008c000002dc0000613d000003430cc0009c000002dc0000a13d0000036f01000041000000800010043f000003740100004100000cb1000104300000000002000416000000000202004b000003580000c13d000000040230008a000001e00220008c000003580000413d0000010402100370000000000202043b000003410420009c000003580000213d00000023042000390000034205000041000000000634004b000000000600001900000000060580190000034204400197000000000704004b0000000005008019000003420440009c000000000506c019000000000405004b000003580000c13d0000000404200039000000000441034f000000000404043b000e00000004001d000003410440009c000003580000213d0000002404200039000d00000004001d0000000e02400029000000000232004b000003580000213d0000014402100370000000000202043b0000032f0220009c000003580000213d000001c402100370000000000202043b000c00000002001d000003410220009c000003580000213d0000000c0200002900000023022000390000034204000041000000000532004b000000000500001900000000050480190000034202200197000000000602004b0000000004008019000003420220009c000000000405c019000000000204004b000003580000c13d0000000c02000029000a00040020003d0000000a01100360000000000101043b000b00000001001d000003410110009c000003580000213d0000000b020000290000000c012000290000002401100039000000000131004b000003580000213d000003610100004100000000001004390000000001000412000900000001001d000000040010044300000024000004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000362011001c700008005020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b0000032f011001970000000002000411000000000112004b000002f50000c13d0000000b0100006b000002f80000c13d00000355010000410000000000100435000000320100003900000bd20000013d000c00000002001d000000000200041a0000033001200197000000000161019f000000000010041b0000032d01000041000d00000003001d00000000030004140000032d0430009c0000000003018019000000c00130021000000331011001c70000032f052001970000800d020000390000000303000039000b00000003001d00000332040000410caf0ca50000040f0000000d0300002900000001012001900000000c01000029000003580000613d000000800010043f0000000e02000029000000a00020043f000000c00030043f0000014000000443000001600010044300000020010000390000018000100443000001a0002004430000004002000039000001c000200443000001e00030044300000100001004430000000b010000290000012000100443000003330100004100000cb00001042e0000033f02000041000000800020043f000000840010043f000003400100004100000cb1000104300000033f01000041000000800010043f000000840020043f000003400100004100000cb1000104300000033001100197000000000161019f000000000010041b0000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000331011001c70000800d02000039000000030300003900000332040000410000007b0000013d0000035e01000041000000800010043f0000000c01000029000000840010043f0000000d01000029000000a40010043f0000000001000414000000040320008c000002560000c13d000000800100043d000000000010043500000000030000310000027f0000013d0000000c04000029000000040140008c0000029b0000c13d00000001020000390000000001000031000002a40000013d0000032d040000410000032d0310009c0000000001048019000000c0011002100000035f011001c70caf0ca50000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f00000005044002720000026d0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000002660000413d000000000605004b0000027b0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002980000613d000000000103004b000002930000c13d000003600100004100000000001004390000000e0100002900000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c700008002020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b000000000101004b000002980000613d0000005f0000013d000000200130008c000002980000413d0000000001000433000000010110008c0000005f0000613d000000400100043d0000036c02000041000002aa0000013d00008009020000390000035a0100004100000000050000190caf0ca50000040f000000010220018f000200000001035500000060011002700000032d0010019d0000032d01100197000000000301004b000002b10000c13d000000000102004b0000005f0000c13d000000400100043d0000035b0200004100000000002104350000032d020000410000032d0310009c000000000102801900000040011002100000035c011001c700000cb1000104300000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000003410630009c00000bcf0000213d000000010550019000000bcf0000c13d000000400030043f0000001f0310018f000000000414043600000002050003670000000501100272000002cc0000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000002c40000413d000000000603004b000002a60000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000002a60000013d000000030cb0008c000003580000413d000000030cb0008a000000030dc00210000000100dd00089000003440e000041000000000dde01cf000000020cc0008c000000000d0e80190000000103300039000000000c31034f000000000c0c043b000d0000000c001d000000050eb0008c000003580000413d000000020f3000390000000003f1034f000000000303043b000000f803300270000000050eb0008c0000000003006019000000640e30008c000003250000a13d0000036e01000041000001a40000013d000000400100043d0000036302000041000002aa0000013d0000000b01000029000000290110008c000003580000413d0000000b01000029000000290410008a0000000c010000290000004d031000390000000a0100002900000020021000390000000101000367000000000221034f0000002405100370000000000505043b000a032f0050019b000000000202043b0000034602200198000003120000613d000000140240008c000003580000413d000000000231034f0000000b030000290000003d0430008a0000000c030000290000006103300039000000000202043b000a006000200278000000000231034f000000000202043b000b00000002001d0000014402100370000000000202043b000000020540008c000003580000413d0000000205300039000000000651034f000000000606043b000000f807600270000000020640008c0000000007006019000800000007001d000000650670008c0000034a0000413d000000400100043d0000036f02000041000002aa0000013d000000060eb0008c000003580000413d000003450e700197000c000600b00094000002010000613d000000010bf00039000000000bb1034f000000000b0b043b000a0000000b001d000000f80fb002700000000abcf000c9000b0000000c001d000000010bc001bf0000000c0bb0006c000003580000213d0000000d0bd0017f000900f000b00278000d002b00a0003d0000000a0a000029000003460aa0009c0000049c0000413d000000000a0000190000000b0c0000290000000d0d0000290000000a0bc0008c000003580000413d000000000bd1034f000000000b0b043b000000b00bb00270000000000bbe004b0000049a0000613d0000000a0cc0008a0000000a0dd00039000000010aa00039000000000bfa004b0000033d0000413d0000049c0000013d000000030640008c000003580000413d000000030640008a00000003076002100000001007700089000003440800004100000000077801cf000000020660008c00000000070880190000000105500039000000000651034f000000000806043b000000050640008c0000035a0000813d000000000100001900000cb1000104300000000209500039000000000591034f000000000505043b000000f805500270000000050640008c0000000005006019000000650650008c000003650000413d000000400100043d0000036e02000041000002aa0000013d000000060640008c000003580000413d00000345062001970007000600400094000002010000613d0000000104900039000000000441034f000000000904043b000000f8049002700000000aab4000c900060000000b001d000000010ab001bf000000070aa0006c000003580000213d000000000778016f000500f000700278000400070030003d000003460390009c000003870000413d0000000003000019000000060700002900000004080000290000000a0970008c000003580000413d000000000981034f000000000909043b000000b009900270000000000996004b000008010000613d0000000a0770008a0000000a088000390000000103300039000000000943004b0000037b0000413d000000400300043d000003640100004100000000001304350000032f01200197000300000003001d000000040230003900000000001204350000036101000041000000000010043900000009010000290000000400100443000000400100003900000024001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000362011001c700008005020000390caf0caa0000040f000000010220019000000ad10000613d000000000201043b00000000010004140000032f02200197000000040320008c0000081a0000c13d0000000003000031000000200130008c000000000403001900000020040080390000084b0000013d00000009933000b90009006430300122000000010300008a000b00000003001d0000000c0330014f0000000d09300029000000a403100370000000000b03043b000000c403100370000000000303043b000000130a90008c000003c50000213d0000000b0120006c000000000102001900000000010060190000000b04b0006c00000000040b0019000000000400601900000000641400a9000003491560012a00000080074002700000034a0860009c000004360000213d0000008001100210000000000171019f00000349985000d1000000000118004b000000010550208a000004370000013d0000000a0c0000290000000c0cc00029000000000ac1034f000000000a0a043b000003710d0000410000008000d0043f000000040d100370000000000d0d043b0000008400d0043f000000240d100370000000000d0d043b000000a400d0043f000000440d100370000000000d0d043b000000c400d0043f000000640d100370000000000d0d043b000000e400d0043f000000840d100370000000000d0d043b0000010400d0043f0000012400b0043f000001440030043f000000000881034f000000e403100370000000000303043b000001640030043f000001c003000039000001840030043f0000001f0b40018f000002440040043f000000050d400272000003ef0000613d0000000003000019000000050e300210000000000fe8034f000000000f0f043b000002640ee000390000000000fe04350000000103300039000000000ed3004b000003e70000413d000000140390008a000000000e0b004b000003ff0000613d000000050dd002100000000008d8034f000000030bb00210000002640dd00039000000000e0d0433000000000ebe01cf000000000ebe022f000000000808043b000001000bb000890000000008b8022f0000000008b801cf0000000008e8019f00000000008d043500000264084000390000000000080435000001a40050043f0000032f05600197000001c40050043f000001e40020043f000002040070043f0000001f02400039000000200400008a000000000242016f000001e005200039000002240050043f000002640520003900000000003504350000001405c00039000000000651034f0000001f0530018f000002840120003900000005073002720000041c0000613d00000000020000190000000508200210000000000b810019000000000886034f000000000808043b00000000008b04350000000102200039000000000872004b000004140000413d0000006002a00270000000000805004b0000042c0000613d0000000507700210000000000676034f00000000077100190000000305500210000000000807043300000000085801cf000000000858022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000585019f0000000000570435000000000313001900000000000304350000000003000414000000040520008c000004460000c13d0000000003000031000000200130008c00000000040300190000002004008039000004780000013d000000010550008a00000000812b00a90000008006600210000000000676019f00000349055001970000000006560019000003497560012a00000349044001970000034a0860009c000004800000213d0000008007700210000000000747019f00000349985000d1000000000778004b000000010550208a000004810000013d000000750590008a000000000445016f00000000011400190000032d040000410000032d0510009c00000000010480190000032d0530009c0000000003048019000000c0033002100000006001100210000000000131019f00000348011001c70caf0caa0000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000004650000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000045d0000413d000000000705004b000004740000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000000003001f000200000001035500000001022001900000058d0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200230008c000003580000413d000000800300043d0000065e0000013d000000010550008a0000008006600210000000000446019f00000349055001970000000005540019000000000415004b000000000400001900000001040040390000000005150049000000000645004b000004900000c13d000000000203004b0000057f0000613d00000000133100d900000080010000390000065e0000013d0000000004450049000000000534004b000005d10000813d00000000253200d900000000563b00d9000003490630009c000005d70000213d00000000525200a900000000253200d9000006360000013d00000009a33000b90009006430300122000000010300008a000a00000003001d0000000b0330014f0000000c0a300029000000a403100370000000000303043b000000c40b100370000000000b0b043b000000130ca0008c000004b70000213d0000000a0140006c000000000104001900000000010060190000000a05b0006c00000000050b0019000000000500601900000000751500a9000003491670012a00000080085002700000034a0970009c000005280000213d0000008001100210000000000181019f00000349a96000d1000000000119004b000000010660208a000005290000013d0000000d0c0000290000000b0cc000290000000002c1034f000000000202043b000003470d0000410000008000d0043f000000040d100370000000000d0d043b0000008400d0043f000000240d100370000000000d0d043b000000a400d0043f000000440d100370000000000d0d043b000000c400d0043f000000640d100370000000000d0d043b000000e400d0043f000000840d100370000000000d0d043b0000010400d0043f000001240030043f0000014400b0043f000000000991034f000000e403100370000000000303043b000001640030043f000001c003000039000001840030043f0000001f0b50018f000002440050043f000000050d500272000004e10000613d0000000003000019000000050e300210000000000fe9034f000000000f0f043b000002640ee000390000000000fe04350000000103300039000000000ed3004b000004d90000413d0000001403a0008a000000000e0b004b000004f10000613d000000050dd002100000000009d9034f000000030bb00210000002640dd00039000000000e0d0433000000000ebe01cf000000000ebe022f000000000909043b000001000bb000890000000009b9022f0000000009b901cf0000000009e9019f00000000009d043500000264095000390000000000090435000001a40060043f0000032f06700197000001c40060043f000001e40040043f000002040080043f0000001f05500039000000200400008a000000000745016f000001e005700039000002240050043f000002640570003900000000003504350000001405c00039000000000651034f0000001f0530018f000002840170003900000005073002720000050e0000613d00000000080000190000000509800210000000000b910019000000000996034f000000000909043b00000000009b04350000000108800039000000000978004b000005060000413d0000006002200270000000000805004b0000051e0000613d0000000507700210000000000676034f00000000077100190000000305500210000000000807043300000000085801cf000000000858022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000585019f0000000000570435000000000313001900000000000304350000000003000414000000040520008c000005380000c13d0000000003000031000000200130008c000000000403001900000020040080390000056a0000013d000000010660008a00000000914b00a90000008007700210000000000787019f00000349066001970000000007670019000003498670012a00000349055001970000034a0970009c000005720000213d0000008008800210000000000858019f00000349a96000d1000000000889004b000000010660208a000005730000013d0000007505a0008a000000000445016f00000000011400190000032d040000410000032d0510009c00000000010480190000032d0530009c0000000003048019000000c0033002100000006001100210000000000131019f00000348011001c70caf0caa0000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000005570000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000054f0000413d000000000705004b000005660000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000000003001f00020000000103550000000102200190000005aa0000613d0000001f01400039000000600110018f00000080021001bf000000400020043f000000200130008c000003580000413d000000800300043d000007a50000013d000000010660008a0000008007700210000000000557019f00000349066001970000000006650019000000000516004b000000000500001900000001050040390000000006160049000000000756004b000005830000c13d000000000503004b000005cd0000c13d00000355010000410000000000100435000000120100003900000bd20000013d0000000006560049000000000536004b000005d10000813d00000000453400d900000000573b00d9000003490730009c000006af0000213d00000000875400a900000000783700d9000007120000013d000000400200043d0000001f0430018f00000005053002720000059a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005920000413d000000000604004b000005c60000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000005c60000013d000000400200043d0000001f0430018f0000000505300272000005b70000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005af0000413d000000000604004b000005c60000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000032d010000410000032d0420009c000000000201801900000040012002100000006002300210000000000121019f00000cb10001043000000000453400d900000000563b00d900000000613100d9000007390000013d0000034b010000410000000000100435000000000103004b00000011010000390000001201006039000007e10000013d00000000565200a9000000000253004b0000000b02000029000006360000a13d0000034d0230009c000000c0020000390000008002004039000000000723022f0000034d0230009c00000040020000390000008002004039000000200820008a0000034e0970009c000000000208801900000020087002700000034e0970009c0000000007088019000000100820008a0000034f0970009c000000000208801900000010087002700000034f0970009c0000000007088019000000080820008a000001000970008c000000000208801900000008077082700000000408700270000000100970008c00000000080740190000000209800270000000040a80008c0000000009084019000000020a00008a000000000b900049000000020990008c000000000b0a8019000000040920008a000000100770008c0000000002098019000000020720008a000000040880008c000000000207801900000000022b0019000000ff0720018f00000000057501cf000000010700008a000000000772013f000000ff0770018f0000000108600270000000000778022f000000000975019f00000000052301cf000000800750027000000000cb7900d900000000082601cf000000800a8002700000034906500197000006160000013d000000000c7c0019000000010bb0008a000003490dc0009c0000061d0000813d000003500db0009c000006120000213d00000000ed6b00a9000000800ec00210000000000eae019f000000000ded004b000006120000213d000003490bb0019700000000cb5b00a900000080099002100000000009a9019f0000000009b9004900000000ba7900d90000034908800197000006290000013d000000000b7b0019000000010aa0008a000003490cb0009c000006300000813d000003500ca0009c000006250000213d00000000dc6a00a9000000800db00210000000000d8d019f000000000cdc004b000006250000213d0000034906a0019700000000655600a90000008006900210000000000686019f0000000005560049000000000225022f000000000530004900000000055301700000000006000019000000003653c0d9000000010300008a000000000721004b000000000300801900000003876000c9000000020770015f00000000986700a9000000020880008900000000877800a900000000986700a9000000020880008900000000877800a9000000000334001900000000846700a9000000020440008900000000747400a900000000876400a9000000020770008900000000744700a900000000876400a9000000020770008900000000744700a900000000766400a9000000020660008900000000644600a9000000000605004b00000000060000190000065b0000613d000000000121004900000000165100d9000000000150004900000000215100d9000000010110003900000000133100a9000000000136019f00000000131400a900000080010000390000000e02000029000000f0022002700000000b0430006c0000000004030019000000000400601900000351544000d100000080064002700000008005500210000000000565019f0000037206400197000003497550012a0000008007700210000000000667019f00000349875000d1000000000667004b00000000060000190000000b06002029000000000565001900000349055001970000000006450019000000090420002900000351523000d1000000000526004b0000000005000019000000010500403900000000062600490000035107400041000000000856004b0000067d0000c13d00000000327200d9000006ab0000013d0000000005560049000000000675004b000007de0000813d000003730640009900000000437300d9000003518370012900000000438400a900000000437300d900000000037601700000000006000019000000007637c0d9000000000742004b000000000a0000190000000b0a00402900000003876000c9000000020770015f00000000986700a9000000020880008900000000877800a900000000986700a9000000020880008900000000877800a90000000005a5001900000000986700a9000000020880008900000000877800a900000000986700a9000000020880008900000000877800a900000000986700a9000000020880008900000000877800a900000000866700a9000000020660008900000000767600a9000000000703004b0000000007000019000006a90000613d000000000242004900000000273200d9000000000230004900000000323200d9000000010220003900000000255200a9000000000257019f00000000322600a90000000000210435000000400110021000000354011001c700000cb00001042e00000000895400a9000000000783004b0000000a07000029000007120000a13d0000034d0730009c000000c0070000390000008007004039000000000a73022f0000034d0730009c00000040070000390000008007004039000000200b70008a0000034e0ca0009c00000000070b8019000000200ba002700000034e0ca0009c000000000a0b8019000000100b70008a0000034f0ca0009c00000000070b8019000000100ba002700000034f0ca0009c000000000a0b8019000000080b70008a000001000ca0008c00000000070b8019000000080aa08270000000040ba00270000000100ca0008c000000000b0a4019000000020cb00270000000040db0008c000000000c0b4019000000020d00008a000000000ec00049000000020cc0008c000000000e0d8019000000040c70008a000000100aa0008c00000000070c8019000000020a70008a000000040bb0008c00000000070a801900000000077e0019000000ff0a70018f0000000008a801cf000000010a00008a000000000aa7013f000000ff0aa0018f000000010b900270000000000aab022f000c000000a801a300000000087301cf000000800a8002700000000cfea000f900000000097901cf000d00000009001d000000800d9002700000034909800197000006ef0000013d000000000faf0019000000010ee0008a000003490bf0009c000006f60000813d000003500be0009c000006eb0000213d00000000cb9e00a9000000800cf00210000000000cdc019f000000000bcb004b000006eb0000213d000003490be0019700000000cb8b00a90000000c0c000029000000800cc00210000000000cdc019f000c000000bc00510000000ceda000f90000000d0b000029000003490bb00197000007040000013d000000000eae0019000000010dd0008a000003490ce0009c0000070b0000813d000003500fd0009c000007000000213d00000000cf9d00a9000000800ce00210000000000cbc019f000000000ccf004b000007000000213d0000034909d0019700000000988900a90000000c0900002900000080099002100000000009b9019f0000000008890049000000000778022f00000000083000490000000008830170000000000900001900000000a983c0d9000000010a00008a000000000b71004b000000000a00801900000003cb9000c9000000020bb0015f00000000dc9b00a9000000020cc0008900000000cbbc00a900000000dc9b00a9000000020cc0008900000000cbbc00a90000000006a6001900000000ca9b00a9000000020aa0008900000000baba00a900000000cb9a00a9000000020bb0008900000000baab00a900000000cb9a00a9000000020bb0008900000000baab00a900000000b99a00a9000000020990008900000000a9a900a9000000000a08004b000000000a000019000007370000613d0000000001710049000000001a8100d9000000000180004900000000718100d9000000010110003900000000166100a900000000016a019f00000000611900a9000003490630009c0000073e0000213d00000000544500a900000000433400d90000079d0000013d00000000654500a9000000010400008a000000000763004b0000079d0000a13d0000034d0430009c000000c0040000390000008004004039000000000743022f0000034d0430009c00000040040000390000008004004039000000200840008a0000034e0970009c000000000408801900000020087002700000034e0970009c0000000007088019000000100840008a0000034f0970009c000000000408801900000010087002700000034f0970009c0000000007088019000000080840008a000001000970008c000000000408801900000008077082700000000408700270000000100970008c00000000080740190000000209800270000000040a80008c0000000009084019000000020a00008a000000000b900049000000020990008c000000000b0a8019000000040940008a000000100770008c0000000004098019000000020740008a000000040880008c000000000407801900000000044b0019000000ff0740018f00000000067601cf000000010700008a000000000774013f000000ff0770018f0000000108500270000000000778022f000000000876019f00000000034301cf000000800630027000000000ba6800d900000000074501cf000000800970027000000349053001970000077d0000013d000000000b6b0019000000010aa0008a000003490cb0009c000007840000813d000003500ca0009c000007790000213d00000000dc5a00a9000000800db00210000000000d9d019f000000000cdc004b000007790000213d000003490aa0019700000000ba3a00a90000008008800210000000000898019f0000000008a8004900000000a96800d90000034907700197000007900000013d000000000a6a0019000000010990008a000003490ba0009c000007970000813d000003500b90009c0000078c0000213d00000000cb5900a9000000800ca00210000000000c7c019f000000000bcb004b0000078c0000213d000003490590019700000000533500a90000008005800210000000000575019f0000000003350049000000000443022f000000000304004b0000000003010019000000010330c039000000000113004b000000000100001900000001010040390000000101100190000007f90000c13d0000000e01000029000000f001100270000000090110002900000351011000410000000a0430006c000000000403001900000000040060190000000a0510006c0000000005010019000000000500601900000000755400a9000003494670012a00000080085002700000034a0970009c000007ba0000213d0000008004400210000000000484019f00000349a96000d1000000000449004b000000010660208a000007bb0000013d000000010660008a00000000941300a90000008007700210000000000787019f00000349066001970000000007670019000003498670012a00000349055001970000034a0970009c000007ca0000213d0000008008800210000000000858019f00000349a96000d1000000000889004b000000010660208a000007cb0000013d000000010660008a0000008007700210000000000557019f00000349066001970000000006650019000000000546004b000000000500001900000001050040390000000006460049000000000756004b000007db0000c13d000003515110012a000003513130012a00000000315300a9000003514340012a000003511410012a000007f10000013d0000000005560049000003520650009c000007e40000a13d0000034b0100004100000000001004350000001101000039000000200010043f0000034c0100004100000cb100010430000003516110012a000003513130012a00000000316300a9000003511310012a000000000314004b00000000030000190000000a03004029000000000335001900000000041400490000000504400270000000fb03300210000000000343019f00000353433000d100000341011001980000000001030019000000010110c039000000000331004b000000000300001900000001030040390000000103300190000007fd0000613d00000355010000410000000000100435000000110100003900000bd20000013d0000000000120435000000400120021000000354011001c700000cb00001042e00000005325000b900050064202001220000000b02000029000000f002200270000000050320002900000351033000410000018401100370000000000101043b000300000003001d0caf0bd50000040f0002000100000092000000020210006c000b00000001001d000000000100601900000008421000b9000003491340012a00000080052002700000034a0640009c0000085e0000213d0000008001100210000000000151019f00000349763000d1000000000116004b000000010330208a0000085f0000013d0000032d030000410000032d0410009c000000000103801900000003050000290000032d0450009c00000000030540190000004003300210000000c001100210000000000131019f00000335011001c70caf0caa0000040f000000030a000029000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000008380000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000008300000413d000000000705004b000008470000613d0000000506600210000000000761034f00000003066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000000003001f00020000000103550000000102200190000008d50000613d0000001f01400039000000600210018f0000000301200029000000000221004b00000000020000190000000102004039000003410410009c00000bcf0000213d000000010220019000000bcf0000c13d000000400010043f000000200230008c000003580000413d00000003020000290000000002020433000000000202004b000009cb0000c13d0000036d02000041000002aa0000013d000000010330008a0000000b0600002900000008616000b90000008004400210000000000454019f00000349033001970000000004340019000003495340012a00000349022001970000034a0640009c0000086f0000213d0000008005500210000000000525019f00000349763000d1000000000556004b000000010330208a000008700000013d000000010330008a0000008004400210000000000224019f00000349033001970000000003320019000000000213004b000000000200001900000001020040390000000003130049000000000423004b0000087c0000c13d000000641210011a0000088e0000013d0000000002230049000000630320008c000007de0000213d0000000803000029000000644330011a0000000b03000029000000645330011a00000000434500a9000000644330011a000000000341004b00000000030000190000000203004029000000000232001900000000014100490000000201100270000000fe02200210000000000112019f00000365121000d1000800000002001d0000018401000039000100000001001d0000000101100367000000000101043b000000050200002900000003030000290caf0bd50000040f000b000b0010002d00000001010003670000004402100370000000000202043b0000032f022001970000000003000410000000000232004b000008f20000c13d0000008401100370000000000101043b000500000001001d0000036101000041000000000010043900000009010000290000000400100443000000200100003900000024001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000362011001c700008005020000390caf0caa0000040f00000005030000290009032f0030019b000000010220019000000ad10000613d000000000101043b0000032f01100197000000090110006b000008bc0000c13d0000000101000367000000e402100370000000000202043b0000036702200198000009e20000c13d000000080100006b000009cd0000c13d00000008020000290000000b0120006b000009ef0000c13d00000001010000290000000101100367000000000101043b0000000b0210006a000000400100043d000000240310003900000000002304350000035e02000041000000000021043500000004021000390000000a03000029000000000032043500000000020004140000000903000029000000040330008c00000a470000c13d00000000010104330000000000100435000000000300003100000a750000013d000000400200043d0000001f0430018f0000000505300272000008e20000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000008da0000413d000000000604004b000008f10000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000005c60000013d0000000b0100006b000009c80000c13d0000000202000029000000060120014f0000000701100029000c00000001001d000000130110008c0000000001000019000009c30000a13d00000004020000290000000601200029000a00000001001d0000000101100367000000000101043b000003600200004100000000002004390000006001100270000b00000001001d00000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c700008002020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b000000000101004b000003580000613d000000400600043d0000036a01000041000000000016043500000001010003670000000402100370000000000202043b000000040360003900000000002304350000002402100370000000000202043b000000240360003900000000002304350000004402100370000000000202043b000000440360003900000000002304350000006402100370000000000202043b000000640360003900000000002304350000008402100370000000000202043b00000084036000390000000000230435000000a402100370000000000202043b000000a4036000390000000000230435000000c402100370000000000202043b000000c4036000390000000000230435000000e402100370000000000202043b0000010403600039000001e0040000390000000000430435000000e4036000390000000000230435000001e4026000390000000e0500002900000000005204350000001f0350018f000900000006001d00000204026000390000000d0410036000000005055002720000094b0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000009430000413d000000000603004b0000095a0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000e05000029000000000352001900000000000304350000012403100370000000000303043b0000000908000029000001240480003900000000003404350000014403100370000000000303043b0000032f03300197000001440480003900000000003404350000016403100370000000000303043b000001640480003900000000003404350000018403100370000000000303043b000001840480003900000000003404350000001f04500039000000200300008a000000000534016f000001a404100370000000000404043b0000020006500039000001c4078000390000000000670435000001a40680003900000000004604350000000a040000290000001404400039000000000441034f00000000015200190000000c02000029000000140220008a0000001f0520018f000000000121043600000005062002720000098c0000613d000000000700001900000005087002100000000009810019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000009840000413d000000000705004b0000099b0000613d0000000506600210000000000464034f00000000066100190000000305500210000000000706043300000000075701cf000000000757022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000474019f00000000004604350000000002210019000000000002043500000000020004140000000b04000029000000040440008c000009bd0000613d0000000c040000290000000b04400039000000000334016f0000000905000029000000000353004900000000011300190000032d030000410000032d0450009c0000000004030019000000000405401900000040044002100000032d0510009c00000000010380190000006001100210000000000141019f0000032d0420009c0000000002038019000000c002200210000000000112019f0000000b020000290caf0ca50000040f000000000301001900000060033002700000032d0030019d0000032d033001970002000000010355000000010220019000000b770000613d0000000901000029000003410110009c00000bcf0000213d0000000901000029000000400010043f0000000f010000290000032d020000410000032d0310009c00000000010280190000036b211000d100000cb00001042e000000400100043d0000036602000041000002aa0000013d0000000101000367000008030000013d0000000c0100002900000025011000390000000101100367000000000201043b000000400100043d0000002403100039000000080400002900000000004304350000035e03000041000000000031043500000060022002700000000403100039000000000023043500000000020004140000000903000029000000040330008c00000a050000c13d00000000010104330000000000100435000000000300003100000a330000013d000000080200006b00000aef0000613d0000000c020000290000002502200039000000000121034f000000000201043b00000000010004140000006004200270000000040240008c00000ade0000c13d0000000102000039000000000100003100000aeb0000013d00000008020000290000000b022000690000000c0100002900000039011000390000000101100367000000000301043b000000400100043d000000240410003900000000002404350000035e02000041000000000021043500000060023002700000000403100039000000000023043500000000020004140000000903000029000000040330008c00000a8f0000c13d00000000010104330000000000100435000000000300003100000abd0000013d0000032d030000410000032d0420009c00000000020380190000032d0410009c00000000010380190000004001100210000000c002200210000000000112019f00000369011001c700000009020000290caf0ca50000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f000000050440027200000a210000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b00000a1a0000413d000000000605004b00000a2f0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002980000613d000000000103004b00000a890000c13d00000360010000410000000000100439000000090100002900000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c700008002020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b000000000101004b000008be0000c13d000002980000013d0000032d030000410000032d0420009c00000000020380190000032d0410009c00000000010380190000004001100210000000c002200210000000000112019f00000369011001c700000009020000290caf0ca50000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f000000050440027200000a630000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b00000a5c0000413d000000000605004b00000a710000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002980000613d000000000103004b00000ad20000c13d00000360010000410000000000100439000000090100002900000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c700008002020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b000000000101004b000008f40000c13d000002980000013d000000200130008c000002980000413d0000000001000433000000010110008c000008be0000613d000002980000013d0000032d030000410000032d0420009c00000000020380190000032d0410009c00000000010380190000004001100210000000c002200210000000000112019f00000369011001c700000009020000290caf0ca50000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f000000050440027200000aab0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b00000aa40000413d000000000605004b00000ab90000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002980000613d000000000103004b00000ad80000c13d00000360010000410000000000100439000000090100002900000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c700008002020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b000000000101004b000002980000613d000008c10000013d000000000001042f000000200130008c000002980000413d0000000001000433000000010110008c000008f40000613d000002980000013d000000200130008c000002980000413d0000000001000433000000010110008c000008c10000613d000002980000013d0000032d020000410000032d0310009c0000000001028019000000c00110021000000331011001c70000800902000039000000080300002900000000050000190caf0ca50000040f000200000001035500000060011002700000032d0010019d0000032d01100197000000000301004b00000afd0000c13d000000010120019000000ba10000613d00000008020000290000000b0120006b00000b640000613d0000000c0100002900000039011000390000000101100367000000000201043b00000000010004140000006004200270000000040240008c00000b280000c13d0000000102000039000000000100003100000b360000013d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000003410630009c00000bcf0000213d000000010550019000000bcf0000c13d000000400030043f0000001f0310018f00000000041404360000000205000367000000050110027200000b180000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000b100000413d000000000603004b00000aed0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f000000000031043500000aed0000013d00000008030000290000000b033000690000032d020000410000032d0510009c0000000001028019000000c00110021000000331011001c7000080090200003900000000050000190caf0ca50000040f000200000001035500000060011002700000032d0010019d0000032d01100197000000000301004b00000b620000613d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000003410630009c00000bcf0000213d000000010550019000000bcf0000c13d000000400030043f0000001f0310018f00000000041404360000000205000367000000050110027200000b530000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000b4b0000413d000000000603004b00000b620000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000000010120019000000ba10000613d00000001010000290000000101100367000000000201043b00000000010004140000000a03000029000000040330008c00000b6e0000c13d0000000102000039000000000100003100000b9d0000013d0000000b0320006a0000032d020000410000032d0410009c0000000001028019000000c001100210000000000203004b00000b940000c13d0000000a0200002900000b980000013d000000400200043d0000001f0430018f000000050530027200000b840000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000b7c0000413d000000000604004b00000b930000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000005c60000013d00000331011001c700008009020000390000000a0400002900000000050000190caf0ca50000040f000200000001035500000060011002700000032d0010019d0000032d01100197000000000301004b00000ba40000c13d0000000101200190000008f40000c13d000000400100043d0000036802000041000002aa0000013d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000003410630009c00000bcf0000213d000000010550019000000bcf0000c13d000000400030043f0000001f0310018f00000000041404360000000205000367000000050110027200000bbf0000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000bb70000413d000000000603004b00000b9f0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f000000000031043500000b9f0000013d000003550100004100000000001004350000004101000039000000040010043f000003350100004100000cb100010430000000010600008a000000000461004b00000000040100190000000004006019000000000562004b0000000005020019000000000500601900000000854500a9000003494780012a00000080095002700000034a0a80009c00000be70000213d0000008004400210000000000494019f00000349ba7000d100000000044a004b000000010770208a00000be80000013d000000010770008a00000000a41200a90000008008800210000000000898019f00000349077001970000000008780019000003499780012a00000349055001970000034a0a80009c00000bf70000213d0000008009900210000000000959019f00000349ba7000d100000000099a004b000000010770208a00000bf80000013d000000010770008a0000008008800210000000000558019f00000349077001970000000007750019000000000547004b000000000500001900000001050040390000000007470049000000000857004b00000c060000c13d000000000103004b00000c960000613d00000000213400d900000c950000013d0000000005570049000000000735004b00000c9c0000813d00000000273200d900000000173100d9000003490730009c00000c100000213d00000000211200a900000000613100d900000c6e0000013d00000000271200a9000000000132004b00000c6e0000813d0000034d0130009c000000c0010000390000008001004039000000000613022f0000034d0130009c00000040010000390000008001004039000000200810008a0000034e0960009c000000000108801900000020086002700000034e0960009c0000000006088019000000100810008a0000034f0960009c000000000108801900000010086002700000034f0960009c0000000006088019000000080810008a000001000960008c000000000108801900000008066082700000000408600270000000100960008c00000000080640190000000209800270000000040a80008c0000000009084019000000020a00008a000000000b900049000000020990008c000000000b0a8019000000040910008a000000100660008c0000000001098019000000020610008a000000040880008c000000000106801900000000011b0019000000ff0610018f00000000026201cf000000010600008a000000000661013f000000ff0660018f0000000108700270000000000668022f000000000962019f00000000021301cf000000800620027000000000cb6900d900000000081701cf000000800a800270000003490720019700000c4e0000013d000000000c6c0019000000010bb0008a000003490dc0009c00000c550000813d000003500db0009c00000c4a0000213d00000000ed7b00a9000000800ec00210000000000eae019f000000000ded004b00000c4a0000213d000003490bb0019700000000cb2b00a900000080099002100000000009a9019f0000000009b9004900000000ba6900d9000003490880019700000c610000013d000000000b6b0019000000010aa0008a000003490cb0009c00000c680000813d000003500ca0009c00000c5d0000213d00000000dc7a00a9000000800db00210000000000d8d019f000000000cdc004b00000c5d0000213d0000034906a0019700000000622600a90000008006900210000000000686019f0000000002260049000000000612022f000000000130004900000000013101700000000007000019000000002713c0d9000000010200008a000000000364004b000000000200801900000003837000c9000000020330015f00000000987300a9000000020880008900000000833800a900000000987300a9000000020880008900000000833800a9000000000225001900000000857300a9000000020550008900000000533500a900000000857300a9000000020550008900000000533500a900000000857300a9000000020550008900000000533500a900000000757300a9000000020550008900000000533500a9000000000501004b000000000500001900000c930000613d000000000464004900000000451400d9000000000410004900000000411400d9000000010110003900000000122100a9000000000125019f00000000211300a9000000000001042d000003550100004100000000001004350000001201000039000000040010043f000003350100004100000cb1000104300000034b010000410000000000100435000000000103004b00000011010000390000001201006039000000200010043f0000034c0100004100000cb100010430000000000001042f00000ca8002104210000000102000039000000000001042d0000000002000019000000000001042d00000cad002104230000000102000039000000000001042d0000000002000019000000000001042d00000caf0000043200000cb00001042e00000cb1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000002000000000000000000000000000001000000010000000000000000001e4fbdf70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000078e3214e00000000000000000000000000000000000000000000000000000000d7ff8a7f00000000000000000000000000000000000000000000000000000000d7ff8a8000000000000000000000000000000000000000000000000000000000f2fde38b0000000000000000000000000000000000000000000000000000000078e3214f000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000001d9671c300000000000000000000000000000000000000000000000000000000462ebde200000000000000000000000000000000000000000000000000000000715018a6118cdaa7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000064ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffff0100000000000000000000000000000000000000000000000000000000000000d7ff8a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000240000001c000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000fffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000001869f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d00000000000000000000000000000000000000200000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000000200000000001388000000000000000000000000000000000000000000000000b12d13eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f4d678b800000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000d25aa1060000000000000000000000000000000000000000000000000000000070a08231000000000000000000000000000000000000000000000000000000005c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29679a57eb0000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000006d963f88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000462ebde2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000fb7f5079000000000000000000000000000000000000000000000000000000000155201f000000000000000000000000000000000000000000000000000000003066a1f100000000000000000000000000000000000000000000000000000000c5374e2d0000000000000000000000000000000000000000000000000000000065000000000000000000000000000000000000000000000000000000000000001d9671c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffe00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7960000000000000000000000000000000000000000400000080000000000000000000000000000000000000000000000000000000000000000000000000000000005582255e22e2f3c8e636c2b47cafe0ef9543c418af926eb3a80400cdb20132d0", + "deployedBytecode": "0x0003000000000002000f000000000002000000000301001900000060033002700000032d03300197000200000031035500010000000103550000000102200190000000200000c13d0000008002000039000000400020043f000000040430008c0000005d0000413d000f00000000001d000000000401043b000000e004400270000003360540009c000000610000a13d000003370540009c0000007f0000213d0000033a0240009c000001240000613d0000033b0140009c000003580000c13d0000000001000416000000000101004b000003580000c13d000000000100041a0000032f01100197000000800010043f000003560100004100000cb00001042e0000000002000416000000000202004b000003580000c13d000000ff023000390000032e02200197000000400020043f0000001f0230018f0000000504300272000000320000613d00000000050000190000000506500210000000000761034f000000000707043b000000e00660003900000000007604350000000105500039000000000645004b0000002a0000413d000000000502004b000000410000613d0000000504400210000000000141034f0000000302200210000000e004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000800130008c000003580000413d000000e00200043d0000032f0120009c000003580000213d000001000300043d0000032f0130009c000003580000213d000001200100043d000e00000001001d0000032f0110009c000003580000213d000001400600043d0000032f0160009c000003580000213d000000000106004b000002050000c13d000000400100043d00000334020000410000000000210435000000040210003900000000000204350000032d020000410000032d0310009c0000000001028019000000400110021000000335011001c700000cb100010430000000000103004b000003580000c13d000000000100001900000cb00001042e0000033c0240009c0000009a0000613d0000033d0240009c000001a70000613d0000033e0140009c000003580000c13d0000000001000416000000000101004b000003580000c13d000000000100041a0000032f051001970000000002000411000000000325004b000002310000c13d0000033001100197000000000010041b0000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000331011001c70000800d020000390000000303000039000003320400004100000000060000190caf0ca50000040f0000000101200190000003580000613d0000005f0000013d000003380540009c000001540000613d000003390240009c000003580000c13d0000000002000416000000000202004b000003580000c13d000000040230008a000000200220008c000003580000413d0000000401100370000000000101043b0000032f061001970000032f0110009c000003580000213d000000000100041a0000032f051001970000000002000411000000000325004b000002310000c13d000000000206004b000002360000c13d0000033401000041000000800010043f000000840000043f000003400100004100000cb1000104300000000002000416000000000202004b000003580000c13d000000040230008a000001c00220008c000003580000413d0000010402100370000000000202043b000003410420009c000003580000213d00000023042000390000034205000041000000000634004b000000000600001900000000060580190000034204400197000000000704004b0000000005008019000003420440009c000000000506c019000000000405004b000003580000c13d0000000404200039000000000441034f000000000404043b000003410540009c000003580000213d00000024082000390000000002840019000000000232004b000003580000213d0000012402100370000000000502043b0000014402100370000000000602043b0000032f0260009c000003580000213d0000018402100370000000000702043b0000016402100370000000000202043b000001a409100370000000000909043b000003410a90009c000003580000213d000000230a900039000003420b000041000000000c3a004b000000000c000019000000000c0b8019000003420aa00197000000000d0a004b000000000b008019000003420aa0009c000000000b0cc019000000000a0b004b000003580000c13d000000040b900039000000000ab1034f000000000a0a043b000003410ca0009c000003580000213d000000000ca90019000000240cc0003900000000033c004b000003580000213d0000002003b00039000000000b31034f000000000b0b043b000e0000000b001d000000020ba0008c000003580000413d0000000203300039000000000b31034f000000000b0b043b000000020ca0008c000000e90000613d000003700bb0009c000001a30000813d000000030ba0008c000003580000413d000000030ba0008a000000030cb00210000000100cc00089000003440d000041000000000ccd01cf000000020bb0008c000000000c0d80190000000103300039000000000b31034f000000000f0b043b000000050ba0008c000003580000413d000000020e3000390000000003e1034f000000000303043b000000f803300270000000050ba0008c0000000003006019000000650b30008c000002f30000813d000000060ba0008c000003580000413d000003450d600197000d000600a00094000002010000613d000000010ae00039000000000aa1034f000000000a0a043b000b0000000a001d000000f80ea002700000000abae000c9000c0000000a001d000000010ba001bf0000000d0bb0006c000003580000213d000000000bcf016f000900f000b00278000a002b0090003d0000000b09000029000003460990009c000003aa0000413d00000000090000190000000c0f0000290000000a0c0000290000000a0af0008c000003580000413d000000000ac1034f000000000a0a043b000000b00aa00270000000000aad004b000003a80000613d0000000a0ff0008a0000000a0cc000390000000109900039000000000ae9004b000001170000413d000003aa0000013d0000000002000416000000000202004b000003580000c13d000000040230008a000000400220008c000003580000413d0000000402100370000000000202043b000e00000002001d0000032f0220009c000003580000213d0000002401100370000000000301043b000000000100041a0000032f041001970000000001000411000000000214004b0000022c0000c13d000c00000004001d000d00000003001d000000000103004b0000005f0000613d0000000e020000290000032f012001980000013f0000613d000003570110009c000002430000c13d00000358010000410000000000100439000000000100041000000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c70000800a020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b0000000d03000029000000000131004b000002500000813d000000400100043d0000035d02000041000002aa0000013d0000000004000416000000000404004b000003580000c13d000000040430008a000001c00440008c000003580000413d0000010404100370000000000404043b000003410540009c000003580000213d00000023054000390000034206000041000000000735004b000000000700001900000000070680190000034205500197000000000805004b0000000006008019000003420550009c000000000607c019000000000506004b000003580000c13d0000000405400039000000000551034f000000000505043b000003410650009c000003580000213d00000024094000390000000004950019000000000434004b000003580000213d0000012404100370000000000604043b0000014404100370000000000704043b0000032f0470009c000003580000213d0000018404100370000000000804043b0000016404100370000000000404043b000001a40a100370000000000a0a043b000003410ba0009c000003580000213d000000230ba00039000003420c000041000000000d3b004b000000000d000019000000000d0c8019000003420bb00197000000000e0b004b000000000c008019000003420bb0009c000000000c0dc019000000000b0c004b000003580000c13d000000040ca00039000000000bc1034f000000000b0b043b000003410db0009c000003580000213d000000000dba0019000000240dd0003900000000033d004b000003580000213d0000002003c00039000000000c31034f000000000c0c043b000e0000000c001d000000020cb0008c000003580000413d0000000203300039000000000c31034f000000000c0c043b000000020db0008c000002dc0000613d000003430cc0009c000002dc0000a13d0000036f01000041000000800010043f000003740100004100000cb1000104300000000002000416000000000202004b000003580000c13d000000040230008a000001e00220008c000003580000413d0000010402100370000000000202043b000003410420009c000003580000213d00000023042000390000034205000041000000000634004b000000000600001900000000060580190000034204400197000000000704004b0000000005008019000003420440009c000000000506c019000000000405004b000003580000c13d0000000404200039000000000441034f000000000404043b000e00000004001d000003410440009c000003580000213d0000002404200039000d00000004001d0000000e02400029000000000232004b000003580000213d0000014402100370000000000202043b0000032f0220009c000003580000213d000001c402100370000000000202043b000c00000002001d000003410220009c000003580000213d0000000c0200002900000023022000390000034204000041000000000532004b000000000500001900000000050480190000034202200197000000000602004b0000000004008019000003420220009c000000000405c019000000000204004b000003580000c13d0000000c02000029000a00040020003d0000000a01100360000000000101043b000b00000001001d000003410110009c000003580000213d0000000b020000290000000c012000290000002401100039000000000131004b000003580000213d000003610100004100000000001004390000000001000412000900000001001d000000040010044300000024000004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000362011001c700008005020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b0000032f011001970000000002000411000000000112004b000002f50000c13d0000000b0100006b000002f80000c13d00000355010000410000000000100435000000320100003900000bd20000013d000c00000002001d000000000200041a0000033001200197000000000161019f000000000010041b0000032d01000041000d00000003001d00000000030004140000032d0430009c0000000003018019000000c00130021000000331011001c70000032f052001970000800d020000390000000303000039000b00000003001d00000332040000410caf0ca50000040f0000000d0300002900000001012001900000000c01000029000003580000613d000000800010043f0000000e02000029000000a00020043f000000c00030043f0000014000000443000001600010044300000020010000390000018000100443000001a0002004430000004002000039000001c000200443000001e00030044300000100001004430000000b010000290000012000100443000003330100004100000cb00001042e0000033f02000041000000800020043f000000840010043f000003400100004100000cb1000104300000033f01000041000000800010043f000000840020043f000003400100004100000cb1000104300000033001100197000000000161019f000000000010041b0000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000331011001c70000800d02000039000000030300003900000332040000410000007b0000013d0000035e01000041000000800010043f0000000c01000029000000840010043f0000000d01000029000000a40010043f0000000001000414000000040320008c000002560000c13d000000800100043d000000000010043500000000030000310000027f0000013d0000000c04000029000000040140008c0000029b0000c13d00000001020000390000000001000031000002a40000013d0000032d040000410000032d0310009c0000000001048019000000c0011002100000035f011001c70caf0ca50000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f00000005044002720000026d0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000002660000413d000000000605004b0000027b0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002980000613d000000000103004b000002930000c13d000003600100004100000000001004390000000e0100002900000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c700008002020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b000000000101004b000002980000613d0000005f0000013d000000200130008c000002980000413d0000000001000433000000010110008c0000005f0000613d000000400100043d0000036c02000041000002aa0000013d00008009020000390000035a0100004100000000050000190caf0ca50000040f000000010220018f000200000001035500000060011002700000032d0010019d0000032d01100197000000000301004b000002b10000c13d000000000102004b0000005f0000c13d000000400100043d0000035b0200004100000000002104350000032d020000410000032d0310009c000000000102801900000040011002100000035c011001c700000cb1000104300000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000003410630009c00000bcf0000213d000000010550019000000bcf0000c13d000000400030043f0000001f0310018f000000000414043600000002050003670000000501100272000002cc0000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000002c40000413d000000000603004b000002a60000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000002a60000013d000000030cb0008c000003580000413d000000030cb0008a000000030dc00210000000100dd00089000003440e000041000000000dde01cf000000020cc0008c000000000d0e80190000000103300039000000000c31034f000000000c0c043b000d0000000c001d000000050eb0008c000003580000413d000000020f3000390000000003f1034f000000000303043b000000f803300270000000050eb0008c0000000003006019000000640e30008c000003250000a13d0000036e01000041000001a40000013d000000400100043d0000036302000041000002aa0000013d0000000b01000029000000290110008c000003580000413d0000000b01000029000000290410008a0000000c010000290000004d031000390000000a0100002900000020021000390000000101000367000000000221034f0000002405100370000000000505043b000a032f0050019b000000000202043b0000034602200198000003120000613d000000140240008c000003580000413d000000000231034f0000000b030000290000003d0430008a0000000c030000290000006103300039000000000202043b000a006000200278000000000231034f000000000202043b000b00000002001d0000014402100370000000000202043b000000020540008c000003580000413d0000000205300039000000000651034f000000000606043b000000f807600270000000020640008c0000000007006019000800000007001d000000650670008c0000034a0000413d000000400100043d0000036f02000041000002aa0000013d000000060eb0008c000003580000413d000003450e700197000c000600b00094000002010000613d000000010bf00039000000000bb1034f000000000b0b043b000a0000000b001d000000f80fb002700000000abcf000c9000b0000000c001d000000010bc001bf0000000c0bb0006c000003580000213d0000000d0bd0017f000900f000b00278000d002b00a0003d0000000a0a000029000003460aa0009c0000049c0000413d000000000a0000190000000b0c0000290000000d0d0000290000000a0bc0008c000003580000413d000000000bd1034f000000000b0b043b000000b00bb00270000000000bbe004b0000049a0000613d0000000a0cc0008a0000000a0dd00039000000010aa00039000000000bfa004b0000033d0000413d0000049c0000013d000000030640008c000003580000413d000000030640008a00000003076002100000001007700089000003440800004100000000077801cf000000020660008c00000000070880190000000105500039000000000651034f000000000806043b000000050640008c0000035a0000813d000000000100001900000cb1000104300000000209500039000000000591034f000000000505043b000000f805500270000000050640008c0000000005006019000000650650008c000003650000413d000000400100043d0000036e02000041000002aa0000013d000000060640008c000003580000413d00000345062001970007000600400094000002010000613d0000000104900039000000000441034f000000000904043b000000f8049002700000000aab4000c900060000000b001d000000010ab001bf000000070aa0006c000003580000213d000000000778016f000500f000700278000400070030003d000003460390009c000003870000413d0000000003000019000000060700002900000004080000290000000a0970008c000003580000413d000000000981034f000000000909043b000000b009900270000000000996004b000008010000613d0000000a0770008a0000000a088000390000000103300039000000000943004b0000037b0000413d000000400300043d000003640100004100000000001304350000032f01200197000300000003001d000000040230003900000000001204350000036101000041000000000010043900000009010000290000000400100443000000400100003900000024001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000362011001c700008005020000390caf0caa0000040f000000010220019000000ad10000613d000000000201043b00000000010004140000032f02200197000000040320008c0000081a0000c13d0000000003000031000000200130008c000000000403001900000020040080390000084b0000013d00000009933000b90009006430300122000000010300008a000b00000003001d0000000c0330014f0000000d09300029000000a403100370000000000b03043b000000c403100370000000000303043b000000130a90008c000003c50000213d0000000b0120006c000000000102001900000000010060190000000b04b0006c00000000040b0019000000000400601900000000641400a9000003491560012a00000080074002700000034a0860009c000004360000213d0000008001100210000000000171019f00000349985000d1000000000118004b000000010550208a000004370000013d0000000a0c0000290000000c0cc00029000000000ac1034f000000000a0a043b000003710d0000410000008000d0043f000000040d100370000000000d0d043b0000008400d0043f000000240d100370000000000d0d043b000000a400d0043f000000440d100370000000000d0d043b000000c400d0043f000000640d100370000000000d0d043b000000e400d0043f000000840d100370000000000d0d043b0000010400d0043f0000012400b0043f000001440030043f000000000881034f000000e403100370000000000303043b000001640030043f000001c003000039000001840030043f0000001f0b40018f000002440040043f000000050d400272000003ef0000613d0000000003000019000000050e300210000000000fe8034f000000000f0f043b000002640ee000390000000000fe04350000000103300039000000000ed3004b000003e70000413d000000140390008a000000000e0b004b000003ff0000613d000000050dd002100000000008d8034f000000030bb00210000002640dd00039000000000e0d0433000000000ebe01cf000000000ebe022f000000000808043b000001000bb000890000000008b8022f0000000008b801cf0000000008e8019f00000000008d043500000264084000390000000000080435000001a40050043f0000032f05600197000001c40050043f000001e40020043f000002040070043f0000001f02400039000000200400008a000000000242016f000001e005200039000002240050043f000002640520003900000000003504350000001405c00039000000000651034f0000001f0530018f000002840120003900000005073002720000041c0000613d00000000020000190000000508200210000000000b810019000000000886034f000000000808043b00000000008b04350000000102200039000000000872004b000004140000413d0000006002a00270000000000805004b0000042c0000613d0000000507700210000000000676034f00000000077100190000000305500210000000000807043300000000085801cf000000000858022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000585019f0000000000570435000000000313001900000000000304350000000003000414000000040520008c000004460000c13d0000000003000031000000200130008c00000000040300190000002004008039000004780000013d000000010550008a00000000812b00a90000008006600210000000000676019f00000349055001970000000006560019000003497560012a00000349044001970000034a0860009c000004800000213d0000008007700210000000000747019f00000349985000d1000000000778004b000000010550208a000004810000013d000000750590008a000000000445016f00000000011400190000032d040000410000032d0510009c00000000010480190000032d0530009c0000000003048019000000c0033002100000006001100210000000000131019f00000348011001c70caf0caa0000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000004650000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000045d0000413d000000000705004b000004740000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000000003001f000200000001035500000001022001900000058d0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200230008c000003580000413d000000800300043d0000065e0000013d000000010550008a0000008006600210000000000446019f00000349055001970000000005540019000000000415004b000000000400001900000001040040390000000005150049000000000645004b000004900000c13d000000000203004b0000057f0000613d00000000133100d900000080010000390000065e0000013d0000000004450049000000000534004b000005d10000813d00000000253200d900000000563b00d9000003490630009c000005d70000213d00000000525200a900000000253200d9000006360000013d00000009a33000b90009006430300122000000010300008a000a00000003001d0000000b0330014f0000000c0a300029000000a403100370000000000303043b000000c40b100370000000000b0b043b000000130ca0008c000004b70000213d0000000a0140006c000000000104001900000000010060190000000a05b0006c00000000050b0019000000000500601900000000751500a9000003491670012a00000080085002700000034a0970009c000005280000213d0000008001100210000000000181019f00000349a96000d1000000000119004b000000010660208a000005290000013d0000000d0c0000290000000b0cc000290000000002c1034f000000000202043b000003470d0000410000008000d0043f000000040d100370000000000d0d043b0000008400d0043f000000240d100370000000000d0d043b000000a400d0043f000000440d100370000000000d0d043b000000c400d0043f000000640d100370000000000d0d043b000000e400d0043f000000840d100370000000000d0d043b0000010400d0043f000001240030043f0000014400b0043f000000000991034f000000e403100370000000000303043b000001640030043f000001c003000039000001840030043f0000001f0b50018f000002440050043f000000050d500272000004e10000613d0000000003000019000000050e300210000000000fe9034f000000000f0f043b000002640ee000390000000000fe04350000000103300039000000000ed3004b000004d90000413d0000001403a0008a000000000e0b004b000004f10000613d000000050dd002100000000009d9034f000000030bb00210000002640dd00039000000000e0d0433000000000ebe01cf000000000ebe022f000000000909043b000001000bb000890000000009b9022f0000000009b901cf0000000009e9019f00000000009d043500000264095000390000000000090435000001a40060043f0000032f06700197000001c40060043f000001e40040043f000002040080043f0000001f05500039000000200400008a000000000745016f000001e005700039000002240050043f000002640570003900000000003504350000001405c00039000000000651034f0000001f0530018f000002840170003900000005073002720000050e0000613d00000000080000190000000509800210000000000b910019000000000996034f000000000909043b00000000009b04350000000108800039000000000978004b000005060000413d0000006002200270000000000805004b0000051e0000613d0000000507700210000000000676034f00000000077100190000000305500210000000000807043300000000085801cf000000000858022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000585019f0000000000570435000000000313001900000000000304350000000003000414000000040520008c000005380000c13d0000000003000031000000200130008c000000000403001900000020040080390000056a0000013d000000010660008a00000000914b00a90000008007700210000000000787019f00000349066001970000000007670019000003498670012a00000349055001970000034a0970009c000005720000213d0000008008800210000000000858019f00000349a96000d1000000000889004b000000010660208a000005730000013d0000007505a0008a000000000445016f00000000011400190000032d040000410000032d0510009c00000000010480190000032d0530009c0000000003048019000000c0033002100000006001100210000000000131019f00000348011001c70caf0caa0000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000005570000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000054f0000413d000000000705004b000005660000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000000003001f00020000000103550000000102200190000005aa0000613d0000001f01400039000000600110018f00000080021001bf000000400020043f000000200130008c000003580000413d000000800300043d000007a50000013d000000010660008a0000008007700210000000000557019f00000349066001970000000006650019000000000516004b000000000500001900000001050040390000000006160049000000000756004b000005830000c13d000000000503004b000005cd0000c13d00000355010000410000000000100435000000120100003900000bd20000013d0000000006560049000000000536004b000005d10000813d00000000453400d900000000573b00d9000003490730009c000006af0000213d00000000875400a900000000783700d9000007120000013d000000400200043d0000001f0430018f00000005053002720000059a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005920000413d000000000604004b000005c60000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000005c60000013d000000400200043d0000001f0430018f0000000505300272000005b70000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005af0000413d000000000604004b000005c60000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000032d010000410000032d0420009c000000000201801900000040012002100000006002300210000000000121019f00000cb10001043000000000453400d900000000563b00d900000000613100d9000007390000013d0000034b010000410000000000100435000000000103004b00000011010000390000001201006039000007e10000013d00000000565200a9000000000253004b0000000b02000029000006360000a13d0000034d0230009c000000c0020000390000008002004039000000000723022f0000034d0230009c00000040020000390000008002004039000000200820008a0000034e0970009c000000000208801900000020087002700000034e0970009c0000000007088019000000100820008a0000034f0970009c000000000208801900000010087002700000034f0970009c0000000007088019000000080820008a000001000970008c000000000208801900000008077082700000000408700270000000100970008c00000000080740190000000209800270000000040a80008c0000000009084019000000020a00008a000000000b900049000000020990008c000000000b0a8019000000040920008a000000100770008c0000000002098019000000020720008a000000040880008c000000000207801900000000022b0019000000ff0720018f00000000057501cf000000010700008a000000000772013f000000ff0770018f0000000108600270000000000778022f000000000975019f00000000052301cf000000800750027000000000cb7900d900000000082601cf000000800a8002700000034906500197000006160000013d000000000c7c0019000000010bb0008a000003490dc0009c0000061d0000813d000003500db0009c000006120000213d00000000ed6b00a9000000800ec00210000000000eae019f000000000ded004b000006120000213d000003490bb0019700000000cb5b00a900000080099002100000000009a9019f0000000009b9004900000000ba7900d90000034908800197000006290000013d000000000b7b0019000000010aa0008a000003490cb0009c000006300000813d000003500ca0009c000006250000213d00000000dc6a00a9000000800db00210000000000d8d019f000000000cdc004b000006250000213d0000034906a0019700000000655600a90000008006900210000000000686019f0000000005560049000000000225022f000000000530004900000000055301700000000006000019000000003653c0d9000000010300008a000000000721004b000000000300801900000003876000c9000000020770015f00000000986700a9000000020880008900000000877800a900000000986700a9000000020880008900000000877800a9000000000334001900000000846700a9000000020440008900000000747400a900000000876400a9000000020770008900000000744700a900000000876400a9000000020770008900000000744700a900000000766400a9000000020660008900000000644600a9000000000605004b00000000060000190000065b0000613d000000000121004900000000165100d9000000000150004900000000215100d9000000010110003900000000133100a9000000000136019f00000000131400a900000080010000390000000e02000029000000f0022002700000000b0430006c0000000004030019000000000400601900000351544000d100000080064002700000008005500210000000000565019f0000037206400197000003497550012a0000008007700210000000000667019f00000349875000d1000000000667004b00000000060000190000000b06002029000000000565001900000349055001970000000006450019000000090420002900000351523000d1000000000526004b0000000005000019000000010500403900000000062600490000035107400041000000000856004b0000067d0000c13d00000000327200d9000006ab0000013d0000000005560049000000000675004b000007de0000813d000003730640009900000000437300d9000003518370012900000000438400a900000000437300d900000000037601700000000006000019000000007637c0d9000000000742004b000000000a0000190000000b0a00402900000003876000c9000000020770015f00000000986700a9000000020880008900000000877800a900000000986700a9000000020880008900000000877800a90000000005a5001900000000986700a9000000020880008900000000877800a900000000986700a9000000020880008900000000877800a900000000986700a9000000020880008900000000877800a900000000866700a9000000020660008900000000767600a9000000000703004b0000000007000019000006a90000613d000000000242004900000000273200d9000000000230004900000000323200d9000000010220003900000000255200a9000000000257019f00000000322600a90000000000210435000000400110021000000354011001c700000cb00001042e00000000895400a9000000000783004b0000000a07000029000007120000a13d0000034d0730009c000000c0070000390000008007004039000000000a73022f0000034d0730009c00000040070000390000008007004039000000200b70008a0000034e0ca0009c00000000070b8019000000200ba002700000034e0ca0009c000000000a0b8019000000100b70008a0000034f0ca0009c00000000070b8019000000100ba002700000034f0ca0009c000000000a0b8019000000080b70008a000001000ca0008c00000000070b8019000000080aa08270000000040ba00270000000100ca0008c000000000b0a4019000000020cb00270000000040db0008c000000000c0b4019000000020d00008a000000000ec00049000000020cc0008c000000000e0d8019000000040c70008a000000100aa0008c00000000070c8019000000020a70008a000000040bb0008c00000000070a801900000000077e0019000000ff0a70018f0000000008a801cf000000010a00008a000000000aa7013f000000ff0aa0018f000000010b900270000000000aab022f000c000000a801a300000000087301cf000000800a8002700000000cfea000f900000000097901cf000d00000009001d000000800d9002700000034909800197000006ef0000013d000000000faf0019000000010ee0008a000003490bf0009c000006f60000813d000003500be0009c000006eb0000213d00000000cb9e00a9000000800cf00210000000000cdc019f000000000bcb004b000006eb0000213d000003490be0019700000000cb8b00a90000000c0c000029000000800cc00210000000000cdc019f000c000000bc00510000000ceda000f90000000d0b000029000003490bb00197000007040000013d000000000eae0019000000010dd0008a000003490ce0009c0000070b0000813d000003500fd0009c000007000000213d00000000cf9d00a9000000800ce00210000000000cbc019f000000000ccf004b000007000000213d0000034909d0019700000000988900a90000000c0900002900000080099002100000000009b9019f0000000008890049000000000778022f00000000083000490000000008830170000000000900001900000000a983c0d9000000010a00008a000000000b71004b000000000a00801900000003cb9000c9000000020bb0015f00000000dc9b00a9000000020cc0008900000000cbbc00a900000000dc9b00a9000000020cc0008900000000cbbc00a90000000006a6001900000000ca9b00a9000000020aa0008900000000baba00a900000000cb9a00a9000000020bb0008900000000baab00a900000000cb9a00a9000000020bb0008900000000baab00a900000000b99a00a9000000020990008900000000a9a900a9000000000a08004b000000000a000019000007370000613d0000000001710049000000001a8100d9000000000180004900000000718100d9000000010110003900000000166100a900000000016a019f00000000611900a9000003490630009c0000073e0000213d00000000544500a900000000433400d90000079d0000013d00000000654500a9000000010400008a000000000763004b0000079d0000a13d0000034d0430009c000000c0040000390000008004004039000000000743022f0000034d0430009c00000040040000390000008004004039000000200840008a0000034e0970009c000000000408801900000020087002700000034e0970009c0000000007088019000000100840008a0000034f0970009c000000000408801900000010087002700000034f0970009c0000000007088019000000080840008a000001000970008c000000000408801900000008077082700000000408700270000000100970008c00000000080740190000000209800270000000040a80008c0000000009084019000000020a00008a000000000b900049000000020990008c000000000b0a8019000000040940008a000000100770008c0000000004098019000000020740008a000000040880008c000000000407801900000000044b0019000000ff0740018f00000000067601cf000000010700008a000000000774013f000000ff0770018f0000000108500270000000000778022f000000000876019f00000000034301cf000000800630027000000000ba6800d900000000074501cf000000800970027000000349053001970000077d0000013d000000000b6b0019000000010aa0008a000003490cb0009c000007840000813d000003500ca0009c000007790000213d00000000dc5a00a9000000800db00210000000000d9d019f000000000cdc004b000007790000213d000003490aa0019700000000ba3a00a90000008008800210000000000898019f0000000008a8004900000000a96800d90000034907700197000007900000013d000000000a6a0019000000010990008a000003490ba0009c000007970000813d000003500b90009c0000078c0000213d00000000cb5900a9000000800ca00210000000000c7c019f000000000bcb004b0000078c0000213d000003490590019700000000533500a90000008005800210000000000575019f0000000003350049000000000443022f000000000304004b0000000003010019000000010330c039000000000113004b000000000100001900000001010040390000000101100190000007f90000c13d0000000e01000029000000f001100270000000090110002900000351011000410000000a0430006c000000000403001900000000040060190000000a0510006c0000000005010019000000000500601900000000755400a9000003494670012a00000080085002700000034a0970009c000007ba0000213d0000008004400210000000000484019f00000349a96000d1000000000449004b000000010660208a000007bb0000013d000000010660008a00000000941300a90000008007700210000000000787019f00000349066001970000000007670019000003498670012a00000349055001970000034a0970009c000007ca0000213d0000008008800210000000000858019f00000349a96000d1000000000889004b000000010660208a000007cb0000013d000000010660008a0000008007700210000000000557019f00000349066001970000000006650019000000000546004b000000000500001900000001050040390000000006460049000000000756004b000007db0000c13d000003515110012a000003513130012a00000000315300a9000003514340012a000003511410012a000007f10000013d0000000005560049000003520650009c000007e40000a13d0000034b0100004100000000001004350000001101000039000000200010043f0000034c0100004100000cb100010430000003516110012a000003513130012a00000000316300a9000003511310012a000000000314004b00000000030000190000000a03004029000000000335001900000000041400490000000504400270000000fb03300210000000000343019f00000353433000d100000341011001980000000001030019000000010110c039000000000331004b000000000300001900000001030040390000000103300190000007fd0000613d00000355010000410000000000100435000000110100003900000bd20000013d0000000000120435000000400120021000000354011001c700000cb00001042e00000005325000b900050064202001220000000b02000029000000f002200270000000050320002900000351033000410000018401100370000000000101043b000300000003001d0caf0bd50000040f0002000100000092000000020210006c000b00000001001d000000000100601900000008421000b9000003491340012a00000080052002700000034a0640009c0000085e0000213d0000008001100210000000000151019f00000349763000d1000000000116004b000000010330208a0000085f0000013d0000032d030000410000032d0410009c000000000103801900000003050000290000032d0450009c00000000030540190000004003300210000000c001100210000000000131019f00000335011001c70caf0caa0000040f000000030a000029000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000008380000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000008300000413d000000000705004b000008470000613d0000000506600210000000000761034f00000003066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000000003001f00020000000103550000000102200190000008d50000613d0000001f01400039000000600210018f0000000301200029000000000221004b00000000020000190000000102004039000003410410009c00000bcf0000213d000000010220019000000bcf0000c13d000000400010043f000000200230008c000003580000413d00000003020000290000000002020433000000000202004b000009cb0000c13d0000036d02000041000002aa0000013d000000010330008a0000000b0600002900000008616000b90000008004400210000000000454019f00000349033001970000000004340019000003495340012a00000349022001970000034a0640009c0000086f0000213d0000008005500210000000000525019f00000349763000d1000000000556004b000000010330208a000008700000013d000000010330008a0000008004400210000000000224019f00000349033001970000000003320019000000000213004b000000000200001900000001020040390000000003130049000000000423004b0000087c0000c13d000000641210011a0000088e0000013d0000000002230049000000630320008c000007de0000213d0000000803000029000000644330011a0000000b03000029000000645330011a00000000434500a9000000644330011a000000000341004b00000000030000190000000203004029000000000232001900000000014100490000000201100270000000fe02200210000000000112019f00000365121000d1000800000002001d0000018401000039000100000001001d0000000101100367000000000101043b000000050200002900000003030000290caf0bd50000040f000b000b0010002d00000001010003670000004402100370000000000202043b0000032f022001970000000003000410000000000232004b000008f20000c13d0000008401100370000000000101043b000500000001001d0000036101000041000000000010043900000009010000290000000400100443000000200100003900000024001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000362011001c700008005020000390caf0caa0000040f00000005030000290009032f0030019b000000010220019000000ad10000613d000000000101043b0000032f01100197000000090110006b000008bc0000c13d0000000101000367000000e402100370000000000202043b0000036702200198000009e20000c13d000000080100006b000009cd0000c13d00000008020000290000000b0120006b000009ef0000c13d00000001010000290000000101100367000000000101043b0000000b0210006a000000400100043d000000240310003900000000002304350000035e02000041000000000021043500000004021000390000000a03000029000000000032043500000000020004140000000903000029000000040330008c00000a470000c13d00000000010104330000000000100435000000000300003100000a750000013d000000400200043d0000001f0430018f0000000505300272000008e20000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000008da0000413d000000000604004b000008f10000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000005c60000013d0000000b0100006b000009c80000c13d0000000202000029000000060120014f0000000701100029000c00000001001d000000130110008c0000000001000019000009c30000a13d00000004020000290000000601200029000a00000001001d0000000101100367000000000101043b000003600200004100000000002004390000006001100270000b00000001001d00000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c700008002020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b000000000101004b000003580000613d000000400600043d0000036a01000041000000000016043500000001010003670000000402100370000000000202043b000000040360003900000000002304350000002402100370000000000202043b000000240360003900000000002304350000004402100370000000000202043b000000440360003900000000002304350000006402100370000000000202043b000000640360003900000000002304350000008402100370000000000202043b00000084036000390000000000230435000000a402100370000000000202043b000000a4036000390000000000230435000000c402100370000000000202043b000000c4036000390000000000230435000000e402100370000000000202043b0000010403600039000001e0040000390000000000430435000000e4036000390000000000230435000001e4026000390000000e0500002900000000005204350000001f0350018f000900000006001d00000204026000390000000d0410036000000005055002720000094b0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000009430000413d000000000603004b0000095a0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000e05000029000000000352001900000000000304350000012403100370000000000303043b0000000908000029000001240480003900000000003404350000014403100370000000000303043b0000032f03300197000001440480003900000000003404350000016403100370000000000303043b000001640480003900000000003404350000018403100370000000000303043b000001840480003900000000003404350000001f04500039000000200300008a000000000534016f000001a404100370000000000404043b0000020006500039000001c4078000390000000000670435000001a40680003900000000004604350000000a040000290000001404400039000000000441034f00000000015200190000000c02000029000000140220008a0000001f0520018f000000000121043600000005062002720000098c0000613d000000000700001900000005087002100000000009810019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000009840000413d000000000705004b0000099b0000613d0000000506600210000000000464034f00000000066100190000000305500210000000000706043300000000075701cf000000000757022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000474019f00000000004604350000000002210019000000000002043500000000020004140000000b04000029000000040440008c000009bd0000613d0000000c040000290000000b04400039000000000334016f0000000905000029000000000353004900000000011300190000032d030000410000032d0450009c0000000004030019000000000405401900000040044002100000032d0510009c00000000010380190000006001100210000000000141019f0000032d0420009c0000000002038019000000c002200210000000000112019f0000000b020000290caf0ca50000040f000000000301001900000060033002700000032d0030019d0000032d033001970002000000010355000000010220019000000b770000613d0000000901000029000003410110009c00000bcf0000213d0000000901000029000000400010043f0000000f010000290000032d020000410000032d0310009c00000000010280190000036b211000d100000cb00001042e000000400100043d0000036602000041000002aa0000013d0000000101000367000008030000013d0000000c0100002900000025011000390000000101100367000000000201043b000000400100043d0000002403100039000000080400002900000000004304350000035e03000041000000000031043500000060022002700000000403100039000000000023043500000000020004140000000903000029000000040330008c00000a050000c13d00000000010104330000000000100435000000000300003100000a330000013d000000080200006b00000aef0000613d0000000c020000290000002502200039000000000121034f000000000201043b00000000010004140000006004200270000000040240008c00000ade0000c13d0000000102000039000000000100003100000aeb0000013d00000008020000290000000b022000690000000c0100002900000039011000390000000101100367000000000301043b000000400100043d000000240410003900000000002404350000035e02000041000000000021043500000060023002700000000403100039000000000023043500000000020004140000000903000029000000040330008c00000a8f0000c13d00000000010104330000000000100435000000000300003100000abd0000013d0000032d030000410000032d0420009c00000000020380190000032d0410009c00000000010380190000004001100210000000c002200210000000000112019f00000369011001c700000009020000290caf0ca50000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f000000050440027200000a210000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b00000a1a0000413d000000000605004b00000a2f0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002980000613d000000000103004b00000a890000c13d00000360010000410000000000100439000000090100002900000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c700008002020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b000000000101004b000008be0000c13d000002980000013d0000032d030000410000032d0420009c00000000020380190000032d0410009c00000000010380190000004001100210000000c002200210000000000112019f00000369011001c700000009020000290caf0ca50000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f000000050440027200000a630000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b00000a5c0000413d000000000605004b00000a710000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002980000613d000000000103004b00000ad20000c13d00000360010000410000000000100439000000090100002900000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c700008002020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b000000000101004b000008f40000c13d000002980000013d000000200130008c000002980000413d0000000001000433000000010110008c000008be0000613d000002980000013d0000032d030000410000032d0420009c00000000020380190000032d0410009c00000000010380190000004001100210000000c002200210000000000112019f00000369011001c700000009020000290caf0ca50000040f000000000301001900000060033002700000032d03300197000000200430008c000000000403001900000020040080390000001f0540018f000000050440027200000aab0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b00000aa40000413d000000000605004b00000ab90000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000000000003001f00020000000103550000000101200190000002980000613d000000000103004b00000ad80000c13d00000360010000410000000000100439000000090100002900000004001004430000032d0100004100000000020004140000032d0320009c0000000002018019000000c00120021000000359011001c700008002020000390caf0caa0000040f000000010220019000000ad10000613d000000000101043b000000000101004b000002980000613d000008c10000013d000000000001042f000000200130008c000002980000413d0000000001000433000000010110008c000008f40000613d000002980000013d000000200130008c000002980000413d0000000001000433000000010110008c000008c10000613d000002980000013d0000032d020000410000032d0310009c0000000001028019000000c00110021000000331011001c70000800902000039000000080300002900000000050000190caf0ca50000040f000200000001035500000060011002700000032d0010019d0000032d01100197000000000301004b00000afd0000c13d000000010120019000000ba10000613d00000008020000290000000b0120006b00000b640000613d0000000c0100002900000039011000390000000101100367000000000201043b00000000010004140000006004200270000000040240008c00000b280000c13d0000000102000039000000000100003100000b360000013d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000003410630009c00000bcf0000213d000000010550019000000bcf0000c13d000000400030043f0000001f0310018f00000000041404360000000205000367000000050110027200000b180000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000b100000413d000000000603004b00000aed0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f000000000031043500000aed0000013d00000008030000290000000b033000690000032d020000410000032d0510009c0000000001028019000000c00110021000000331011001c7000080090200003900000000050000190caf0ca50000040f000200000001035500000060011002700000032d0010019d0000032d01100197000000000301004b00000b620000613d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000003410630009c00000bcf0000213d000000010550019000000bcf0000c13d000000400030043f0000001f0310018f00000000041404360000000205000367000000050110027200000b530000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000b4b0000413d000000000603004b00000b620000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000000010120019000000ba10000613d00000001010000290000000101100367000000000201043b00000000010004140000000a03000029000000040330008c00000b6e0000c13d0000000102000039000000000100003100000b9d0000013d0000000b0320006a0000032d020000410000032d0410009c0000000001028019000000c001100210000000000203004b00000b940000c13d0000000a0200002900000b980000013d000000400200043d0000001f0430018f000000050530027200000b840000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000b7c0000413d000000000604004b00000b930000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000005c60000013d00000331011001c700008009020000390000000a0400002900000000050000190caf0ca50000040f000200000001035500000060011002700000032d0010019d0000032d01100197000000000301004b00000ba40000c13d0000000101200190000008f40000c13d000000400100043d0000036802000041000002aa0000013d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000003410630009c00000bcf0000213d000000010550019000000bcf0000c13d000000400030043f0000001f0310018f00000000041404360000000205000367000000050110027200000bbf0000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000bb70000413d000000000603004b00000b9f0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f000000000031043500000b9f0000013d000003550100004100000000001004350000004101000039000000040010043f000003350100004100000cb100010430000000010600008a000000000461004b00000000040100190000000004006019000000000562004b0000000005020019000000000500601900000000854500a9000003494780012a00000080095002700000034a0a80009c00000be70000213d0000008004400210000000000494019f00000349ba7000d100000000044a004b000000010770208a00000be80000013d000000010770008a00000000a41200a90000008008800210000000000898019f00000349077001970000000008780019000003499780012a00000349055001970000034a0a80009c00000bf70000213d0000008009900210000000000959019f00000349ba7000d100000000099a004b000000010770208a00000bf80000013d000000010770008a0000008008800210000000000558019f00000349077001970000000007750019000000000547004b000000000500001900000001050040390000000007470049000000000857004b00000c060000c13d000000000103004b00000c960000613d00000000213400d900000c950000013d0000000005570049000000000735004b00000c9c0000813d00000000273200d900000000173100d9000003490730009c00000c100000213d00000000211200a900000000613100d900000c6e0000013d00000000271200a9000000000132004b00000c6e0000813d0000034d0130009c000000c0010000390000008001004039000000000613022f0000034d0130009c00000040010000390000008001004039000000200810008a0000034e0960009c000000000108801900000020086002700000034e0960009c0000000006088019000000100810008a0000034f0960009c000000000108801900000010086002700000034f0960009c0000000006088019000000080810008a000001000960008c000000000108801900000008066082700000000408600270000000100960008c00000000080640190000000209800270000000040a80008c0000000009084019000000020a00008a000000000b900049000000020990008c000000000b0a8019000000040910008a000000100660008c0000000001098019000000020610008a000000040880008c000000000106801900000000011b0019000000ff0610018f00000000026201cf000000010600008a000000000661013f000000ff0660018f0000000108700270000000000668022f000000000962019f00000000021301cf000000800620027000000000cb6900d900000000081701cf000000800a800270000003490720019700000c4e0000013d000000000c6c0019000000010bb0008a000003490dc0009c00000c550000813d000003500db0009c00000c4a0000213d00000000ed7b00a9000000800ec00210000000000eae019f000000000ded004b00000c4a0000213d000003490bb0019700000000cb2b00a900000080099002100000000009a9019f0000000009b9004900000000ba6900d9000003490880019700000c610000013d000000000b6b0019000000010aa0008a000003490cb0009c00000c680000813d000003500ca0009c00000c5d0000213d00000000dc7a00a9000000800db00210000000000d8d019f000000000cdc004b00000c5d0000213d0000034906a0019700000000622600a90000008006900210000000000686019f0000000002260049000000000612022f000000000130004900000000013101700000000007000019000000002713c0d9000000010200008a000000000364004b000000000200801900000003837000c9000000020330015f00000000987300a9000000020880008900000000833800a900000000987300a9000000020880008900000000833800a9000000000225001900000000857300a9000000020550008900000000533500a900000000857300a9000000020550008900000000533500a900000000857300a9000000020550008900000000533500a900000000757300a9000000020550008900000000533500a9000000000501004b000000000500001900000c930000613d000000000464004900000000451400d9000000000410004900000000411400d9000000010110003900000000122100a9000000000125019f00000000211300a9000000000001042d000003550100004100000000001004350000001201000039000000040010043f000003350100004100000cb1000104300000034b010000410000000000100435000000000103004b00000011010000390000001201006039000000200010043f0000034c0100004100000cb100010430000000000001042f00000ca8002104210000000102000039000000000001042d0000000002000019000000000001042d00000cad002104230000000102000039000000000001042d0000000002000019000000000001042d00000caf0000043200000cb00001042e00000cb1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000002000000000000000000000000000001000000010000000000000000001e4fbdf70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000078e3214e00000000000000000000000000000000000000000000000000000000d7ff8a7f00000000000000000000000000000000000000000000000000000000d7ff8a8000000000000000000000000000000000000000000000000000000000f2fde38b0000000000000000000000000000000000000000000000000000000078e3214f000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000001d9671c300000000000000000000000000000000000000000000000000000000462ebde200000000000000000000000000000000000000000000000000000000715018a6118cdaa7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000064ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffff0100000000000000000000000000000000000000000000000000000000000000d7ff8a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000240000001c000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000fffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000001869f58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d00000000000000000000000000000000000000200000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000000200000000001388000000000000000000000000000000000000000000000000b12d13eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f4d678b800000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000d25aa1060000000000000000000000000000000000000000000000000000000070a08231000000000000000000000000000000000000000000000000000000005c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29679a57eb0000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000006d963f88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000462ebde2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000fb7f5079000000000000000000000000000000000000000000000000000000000155201f000000000000000000000000000000000000000000000000000000003066a1f100000000000000000000000000000000000000000000000000000000c5374e2d0000000000000000000000000000000000000000000000000000000065000000000000000000000000000000000000000000000000000000000000001d9671c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffe00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7960000000000000000000000000000000000000000400000080000000000000000000000000000000000000000000000000000000000000000000000000000000005582255e22e2f3c8e636c2b47cafe0ef9543c418af926eb3a80400cdb20132d0", "devdoc": { "errors": { "EthTransferFailed()": [ @@ -379,11 +587,21 @@ "details": "Eth transfer failed. The target fallback may have reverted." } ], + "InconsistentFee()": [ + { + "details": "Fees are specified but FeeTaker is not set as a receiver." + } + ], "OnlyLimitOrderProtocol()": [ { "details": "The caller is not the limit order protocol contract." } ], + "OnlyWhitelistOrAccessToken()": [ + { + "details": "The taker is not whitelisted and does not have access token." + } + ], "OwnableInvalidOwner(address)": [ { "details": "The owner is not a valid owner account. (eg. `address(0)`)" @@ -399,15 +617,37 @@ "methods": { "constructor": { "params": { - "limitOrderProtocol": "The limit order protocol contract." + "accessToken": "Contract address whose tokens allow filling limit orders with a fee for resolvers that are outside the whitelist.", + "limitOrderProtocol": "The limit order protocol contract.", + "owner": "The owner of the contract.", + "weth": "The WETH address." + } + }, + "getMakingAmount((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,bytes)": { + "params": { + "extension": "Order extension data", + "extraData": "Extra data", + "order": "Order being processed", + "orderHash": "Hash of the order being processed", + "remainingMakingAmount": "Order remaining making amount", + "taker": "Taker address", + "takingAmount": "Actual taking amount" + } + }, + "getTakingAmount((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,bytes)": { + "params": { + "extension": "Order extension data", + "extraData": "Extra data", + "makingAmount": "Actual taking amount", + "order": "Order being processed", + "orderHash": "Hash of the order being processed", + "remainingMakingAmount": "Order remaining making amount", + "taker": "Taker address" } }, "owner()": { "details": "Returns the address of the current owner." }, - "postInteraction((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,uint256,bytes)": { - "details": "Takes the fee in taking tokens and transfers the rest to the maker. `extraData` consists of: 2 bytes — fee percentage (in 1e5) 20 bytes — fee recipient 20 bytes — receiver of taking tokens (optional, if not set, maker is used)" - }, "renounceOwnership()": { "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner." }, @@ -421,11 +661,6 @@ "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." } }, - "stateVariables": { - "_FEE_BASE": { - "details": "Allows fees in range [1e-5, 0.65535]" - } - }, "title": "Helper contract that adds feature of collecting fee in takerAsset", "version": 1 }, @@ -435,6 +670,12 @@ "constructor": { "notice": "Initializes the contract." }, + "getMakingAmount((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,bytes)": { + "notice": "View method that gets called to determine the actual making amount" + }, + "getTakingAmount((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,bytes)": { + "notice": "View method that gets called to determine the actual making amount" + }, "postInteraction((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bytes,bytes32,address,uint256,uint256,uint256,bytes)": { "notice": "See {IPostInteraction-postInteraction}." }, @@ -447,7 +688,7 @@ "storageLayout": { "storage": [ { - "astId": 1245, + "astId": 2002, "contract": "contracts/extensions/FeeTaker.sol:FeeTaker", "label": "_owner", "offset": 0,