From b36aadb226b38ca29b738cff46c59ebdf157bf72 Mon Sep 17 00:00:00 2001 From: Geolffrey Mena Date: Thu, 9 Jan 2025 08:35:25 -0600 Subject: [PATCH] refactor: removed timestamp from events --- .../80002/run-1736433298.json | 187 ++++++++++++++++++ .../80002/run-latest.json | 110 +++++------ .../80002/run-latest.json | 142 ++++++------- contracts/assets/AssetOwnership.sol | 5 +- contracts/assets/AssetReferendum.sol | 20 +- .../rights/IRightsPolicyManager.sol | 9 + contracts/core/libraries/LoopOps.sol | 11 ++ contracts/rights/RightsAssetCustodian.sol | 5 +- contracts/rights/RightsPolicyAuthorizer.sol | 10 +- contracts/rights/RightsPolicyManager.sol | 54 ++++- contracts/syndication/DistributorFactory.sol | 5 +- .../syndication/DistributorReferendum.sol | 20 +- packages/protocol/package.json | 2 +- packages/types/package.json | 2 +- test/assets/AssetReferendum.t.sol | 11 +- test/syndication/DistributorReferendum.t.sol | 8 +- 16 files changed, 414 insertions(+), 187 deletions(-) create mode 100644 broadcast/04_Deploy_Economics_Tollgate.s.sol/80002/run-1736433298.json diff --git a/broadcast/04_Deploy_Economics_Tollgate.s.sol/80002/run-1736433298.json b/broadcast/04_Deploy_Economics_Tollgate.s.sol/80002/run-1736433298.json new file mode 100644 index 0000000..1dbb3cf --- /dev/null +++ b/broadcast/04_Deploy_Economics_Tollgate.s.sol/80002/run-1736433298.json @@ -0,0 +1,187 @@ +{ + "transactions": [ + { + "hash": "0xcbae8f198d5bfebd1cfab0e7023caab8c623e0cac1bf3afa629eeacb78633f61", + "transactionType": "CREATE", + "contractName": "Tollgate", + "contractAddress": "0xa3471096cce5af9907daa8dbfef2286043764aa1", + "function": null, + "arguments": null, + "transaction": { + "from": "0xefbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", + "gas": "0x19be8d", + "value": "0x0", + "input": "0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161163790816100ed8239608051818181610d080152610e270152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f80358060e01c9081634f1ef28614610d8057816352d1902d14610cc35781637a9e5e4b14610bfa5781638cc0de1d14610742575080638fb360371461068f578063ace2bed51461059a578063ad3cb1cc146104ea578063bf7e214f14610479578063c4d66de8146101b85763c982bcca1461008b575f80fd5b346101b55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5576100c26111ee565b906100cb611211565b73ffffffffffffffffffffffffffffffffffffffff831692838352600260205260ff604084205416936100ff8584846113c1565b90845283602052604084209061013a73ffffffffffffffffffffffffffffffffffffffff851680936001915f520160205260405f2054151590565b90816101a0575b501561017557604085610173828761015a8489896113c1565b81526001602052205491835192835260208301906112dc565bf35b7ff2789bbb000000000000000000000000000000000000000000000000000000008452600452602483fd5b8552506001602052604084205415155f610141565b80fd5b50346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5576101f06111ee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549060ff8260401c16159167ffffffffffffffff811680159081610471575b6001149081610467575b15908161045e575b506104365790818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556103e1575b506102b5611511565b6102bd611511565b6102c5611511565b6102cd611511565b6102d681611316565b6102de611511565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561034d5780f35b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00555f6102ac565b6004847ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b9050155f610242565b303b15915061023a565b849150610230565b50346101b557807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b50346101b557807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b557604080516105278282611234565b600581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602083017f352e302e3000000000000000000000000000000000000000000000000000000081528451958694602086525180928160208801528787015e85828601015201168101030190f35b50346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b55773ffffffffffffffffffffffffffffffffffffffff6105e76111ee565b1681528060205260408120604051908160208254918281520190819285526020852090855b8181106106795750505082610622910383611234565b604051928392602084019060208552518091526040840192915b81811061064a575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff1684528594506020938401939092019160010161063c565b825484526020909301926001928301920161060c565b50346101b557807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff161561073a575060207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b602090610710565b905034610b6c5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610b6c576004356004811015610b6c57610787611211565b9060443560643573ffffffffffffffffffffffffffffffffffffffff811694858203610b6c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005473ffffffffffffffffffffffffffffffffffffffff81169136600411610b6c575f808080936040517fffffffff0000000000000000000000000000000000000000000000000000000060208201927fb700961300000000000000000000000000000000000000000000000000000000845233602484015230604484015216606482015260648152610861608482611234565b5190875afa61086e611459565b90610b9c575b50156109e8575b50505082600314806109dd575b6109b15782600214806109a7575b61097b5773ffffffffffffffffffffffffffffffffffffffff841693841561095357916108e8847f9621c1829ce5206009d367ce68b7c4fe6b4bbd70dbe22c21e5bd2a51a716c51c95936040956113c1565b85885260026020528388207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff85161790558752600160205280838820558487528660205261093d86848920611488565b5061094a835180936112dc565b6020820152a380f35b6004877fe7486f93000000000000000000000000000000000000000000000000000000008152fd5b602486837feee5f542000000000000000000000000000000000000000000000000000000008252600452fd5b5060648211610896565b602486837f73e7e127000000000000000000000000000000000000000000000000000000008252600452fd5b506127108211610888565b63ffffffff1615610b70577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055803b15610b6c575f60405180927f94c7d7ee0000000000000000000000000000000000000000000000000000000082523360048301526040602483015236604483015236836064840137826064368401015281836064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f36011681010301925af18015610b6157610b4c575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f808061087b565b610b599196505f90611234565b5f945f610add565b6040513d5f823e3d90fd5b5f80fd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b805192909160408410610bc4575050602080610bbc93830101910161142f565b905b5f610874565b9190926020811015610bd8575b5050610bbe565b8192509060209181010312610b6c576020610bf39101611422565b5f80610bd1565b34610b6c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610b6c57610c316111ee565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054163303610b7057803b15610c8157610c7f90611316565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b34610b6c575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610b6c5773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610d585760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610b6c57610db26111ee565b6024359067ffffffffffffffff8211610b6c5736602383011215610b6c57816004013590610ddf826112a2565b91610ded6040519384611234565b80835260208301933660248383010111610b6c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168030149081156111ac575b50610d58576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610b61575f9161117c575b50156110f85773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816110c4575b50610f5e57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036110995750823b1561106e57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561103c575f8091610c7f945190845af4611036611459565b91611568565b5050503461104657005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116110f0575b816110e060209383611234565b81010312610b6c57519086610f2d565b3d91506110d3565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b61119e915060403d6040116111a5575b6111968183611234565b81019061142f565b5084610ed8565b503d61118c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610e52565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610b6c57565b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610b6c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761127557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161127557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060048210156112e95752565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b917fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519281602085019560601b16855260601b16603483015260048110156112e95760f81b60488201526029815261141c604982611234565b51902090565b51908115158203610b6c57565b9190826040910312610b6c57602061144683611422565b92015163ffffffff81168103610b6c5790565b3d15611483573d9061146a826112a2565b916114786040519384611234565b82523d5f602084013e565b606090565b5f82815260018201602052604090205461150b578054906801000000000000000082101561127557600182018082558210156114de5782600192825f5260205f2001558054925f520160205260405f2055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b50505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561154057565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b906115a5575080511561157d57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806115f8575b6115b6575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b156115ae56fea2646970667358221220bd6191763a2bfbc929fd7062205ec11c69b05a72b396f610e6127c16e589e94364736f6c634300081a0033", + "nonce": "0xa0c", + "chainId": "0x13882" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x5662b328bb0403e3eacd702e352972ba93dad026", + "function": "deploy(bytes32,bytes)", + "arguments": [ + "0xa32dd46747f7211c8abb8d504644f92122bb2e9ee85335e730bc68f161105fa0", + "0x60806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000a3471096cce5af9907daa8dbfef2286043764aa100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xefbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", + "to": "0x5662b328bb0403e3eacd702e352972ba93dad026", + "gas": "0x4c3db", + "value": "0x0", + "input": "0xcdcb760aa32dd46747f7211c8abb8d504644f92122bb2e9ee85335e730bc68f161105fa00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000034860806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000a3471096cce5af9907daa8dbfef2286043764aa100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xa0d", + "chainId": "0x13882" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0x887abe760df2786d5cc892b990d037434e84c7b5", + "initCode": "0x67363d3d37363d34f03d5260086018f3" + }, + { + "transactionType": "CREATE", + "address": "0xbae832ee0bd9c212212f7f0190cc3b8ca8586ed3", + "initCode": "0x60806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000a3471096cce5af9907daa8dbfef2286043764aa100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x13cda8", + "logs": [ + { + "address": "0xa3471096cce5af9907daa8dbfef2286043764aa1", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xcbae8f198d5bfebd1cfab0e7023caab8c623e0cac1bf3afa629eeacb78633f61", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000001010", + "topics": [ + "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", + "0x0000000000000000000000000000000000000000000000000000000000001010", + "0x000000000000000000000000efbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", + "0x00000000000000000000000009207a6efee346cb3e4a54ac18523e3715d38b3f" + ], + "data": "0x00000000000000000000000000000000000000000000000000a4a9f8c93237d0000000000000000000000000000000000000000000000001271ab9454c5472b8000000000000000000000000000000000000000000000467cd3f9198325b418000000000000000000000000000000000000000000000000126760f4c83223ae8000000000000000000000000000000000000000000000467cde43b90fb8d7950", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xcbae8f198d5bfebd1cfab0e7023caab8c623e0cac1bf3afa629eeacb78633f61", + "transactionIndex": "0x0", + "logIndex": "0x1", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000008000000000000000010000000000008000000000000000000000000000800000000000000000000100000000000000000000000000000000000000000200000000000000000080000000000000000800000000000000000800000000000000004000000080000000000000000000200000000000000000000000000000000000400000000000000000000000004000000000000004000001000000000000000000000004000000100000000000000000000000000000000000010000000000000000000000000000000000100000", + "type": "0x2", + "transactionHash": "0xcbae8f198d5bfebd1cfab0e7023caab8c623e0cac1bf3afa629eeacb78633f61", + "transactionIndex": "0x0", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "gasUsed": "0x13cda8", + "effectiveGasPrice": "0x850a0ff61", + "from": "0xefbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", + "to": null, + "contractAddress": "0xa3471096cce5af9907daa8dbfef2286043764aa1" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x1740d0", + "logs": [ + { + "address": "0xbae832ee0bd9c212212f7f0190cc3b8ca8586ed3", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000a3471096cce5af9907daa8dbfef2286043764aa1" + ], + "data": "0x", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", + "transactionIndex": "0x1", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0xbae832ee0bd9c212212f7f0190cc3b8ca8586ed3", + "topics": [ + "0x2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad" + ], + "data": "0x0000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", + "transactionIndex": "0x1", + "logIndex": "0x3", + "removed": false + }, + { + "address": "0xbae832ee0bd9c212212f7f0190cc3b8ca8586ed3", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", + "transactionIndex": "0x1", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000001010", + "topics": [ + "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", + "0x0000000000000000000000000000000000000000000000000000000000001010", + "0x000000000000000000000000efbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", + "0x00000000000000000000000009207a6efee346cb3e4a54ac18523e3715d38b3f" + ], + "data": "0x000000000000000000000000000000000000000000000000001caf67e9cfbad000000000000000000000000000000000000000000000000126760f4c81f92e10000000000000000000000000000000000000000000000467cde43b90fb8d795000000000000000000000000000000000000000000000000126595fe498297340000000000000000000000000000000000000000000000467ce00eaf8e55d3420", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", + "transactionIndex": "0x1", + "logIndex": "0x5", + "removed": false + } + ], + "logsBloom": "0x00000000000002000000000000000000400000000000000000000000000000000000000000000000000000000000044000008000000000000000010000000000008000000000000000000000000002800000000000000000000100000000000000040000000000000000000000000000000000000000000080000000000000000800000000000000000800000000000008004000000080000000000000000000200000000000000000000000000000000000400000000000000000000000004000000020000000000001100000000000000000000004000000100000004000000000000000000000000008010000000000000000000000100000000000100000", + "type": "0x2", + "transactionHash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", + "transactionIndex": "0x1", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "gasUsed": "0x37328", + "effectiveGasPrice": "0x850a0ff61", + "from": "0xefbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", + "to": "0x5662b328bb0403e3eacd702e352972ba93dad026", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": { + "0": { + "internal_type": "address", + "value": "0xbaE832Ee0bd9c212212F7F0190cc3B8cA8586eD3" + } + }, + "timestamp": 1736433298, + "chain": 80002, + "commit": "3b4e2c9" +} \ No newline at end of file diff --git a/broadcast/04_Deploy_Economics_Tollgate.s.sol/80002/run-latest.json b/broadcast/04_Deploy_Economics_Tollgate.s.sol/80002/run-latest.json index 53f98de..1dbb3cf 100644 --- a/broadcast/04_Deploy_Economics_Tollgate.s.sol/80002/run-latest.json +++ b/broadcast/04_Deploy_Economics_Tollgate.s.sol/80002/run-latest.json @@ -1,10 +1,10 @@ { "transactions": [ { - "hash": "0x5bb34891add2df1eb95c19ca00289c57ddaa5f02f735fdff1fa14087381d136f", + "hash": "0xcbae8f198d5bfebd1cfab0e7023caab8c623e0cac1bf3afa629eeacb78633f61", "transactionType": "CREATE", "contractName": "Tollgate", - "contractAddress": "0xf968d0003dbff1a77c515f67ce7950ce85a32f26", + "contractAddress": "0xa3471096cce5af9907daa8dbfef2286043764aa1", "function": null, "arguments": null, "transaction": { @@ -12,41 +12,41 @@ "gas": "0x19be8d", "value": "0x0", "input": "0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161163790816100ed8239608051818181610d080152610e270152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f80358060e01c9081634f1ef28614610d8057816352d1902d14610cc35781637a9e5e4b14610bfa5781638cc0de1d14610742575080638fb360371461068f578063ace2bed51461059a578063ad3cb1cc146104ea578063bf7e214f14610479578063c4d66de8146101b85763c982bcca1461008b575f80fd5b346101b55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5576100c26111ee565b906100cb611211565b73ffffffffffffffffffffffffffffffffffffffff831692838352600260205260ff604084205416936100ff8584846113c1565b90845283602052604084209061013a73ffffffffffffffffffffffffffffffffffffffff851680936001915f520160205260405f2054151590565b90816101a0575b501561017557604085610173828761015a8489896113c1565b81526001602052205491835192835260208301906112dc565bf35b7ff2789bbb000000000000000000000000000000000000000000000000000000008452600452602483fd5b8552506001602052604084205415155f610141565b80fd5b50346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5576101f06111ee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549060ff8260401c16159167ffffffffffffffff811680159081610471575b6001149081610467575b15908161045e575b506104365790818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556103e1575b506102b5611511565b6102bd611511565b6102c5611511565b6102cd611511565b6102d681611316565b6102de611511565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561034d5780f35b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00555f6102ac565b6004847ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b9050155f610242565b303b15915061023a565b849150610230565b50346101b557807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b50346101b557807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b557604080516105278282611234565b600581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602083017f352e302e3000000000000000000000000000000000000000000000000000000081528451958694602086525180928160208801528787015e85828601015201168101030190f35b50346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b55773ffffffffffffffffffffffffffffffffffffffff6105e76111ee565b1681528060205260408120604051908160208254918281520190819285526020852090855b8181106106795750505082610622910383611234565b604051928392602084019060208552518091526040840192915b81811061064a575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff1684528594506020938401939092019160010161063c565b825484526020909301926001928301920161060c565b50346101b557807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff161561073a575060207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b602090610710565b905034610b6c5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610b6c576004356004811015610b6c57610787611211565b9060443560643573ffffffffffffffffffffffffffffffffffffffff811694858203610b6c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005473ffffffffffffffffffffffffffffffffffffffff81169136600411610b6c575f808080936040517fffffffff0000000000000000000000000000000000000000000000000000000060208201927fb700961300000000000000000000000000000000000000000000000000000000845233602484015230604484015216606482015260648152610861608482611234565b5190875afa61086e611459565b90610b9c575b50156109e8575b50505082600314806109dd575b6109b15782600214806109a7575b61097b5773ffffffffffffffffffffffffffffffffffffffff841693841561095357916108e8847f9621c1829ce5206009d367ce68b7c4fe6b4bbd70dbe22c21e5bd2a51a716c51c95936040956113c1565b85885260026020528388207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff85161790558752600160205280838820558487528660205261093d86848920611488565b5061094a835180936112dc565b6020820152a380f35b6004877fe7486f93000000000000000000000000000000000000000000000000000000008152fd5b602486837feee5f542000000000000000000000000000000000000000000000000000000008252600452fd5b5060648211610896565b602486837f73e7e127000000000000000000000000000000000000000000000000000000008252600452fd5b506127108211610888565b63ffffffff1615610b70577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055803b15610b6c575f60405180927f94c7d7ee0000000000000000000000000000000000000000000000000000000082523360048301526040602483015236604483015236836064840137826064368401015281836064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f36011681010301925af18015610b6157610b4c575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f808061087b565b610b599196505f90611234565b5f945f610add565b6040513d5f823e3d90fd5b5f80fd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b805192909160408410610bc4575050602080610bbc93830101910161142f565b905b5f610874565b9190926020811015610bd8575b5050610bbe565b8192509060209181010312610b6c576020610bf39101611422565b5f80610bd1565b34610b6c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610b6c57610c316111ee565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054163303610b7057803b15610c8157610c7f90611316565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b34610b6c575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610b6c5773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610d585760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610b6c57610db26111ee565b6024359067ffffffffffffffff8211610b6c5736602383011215610b6c57816004013590610ddf826112a2565b91610ded6040519384611234565b80835260208301933660248383010111610b6c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168030149081156111ac575b50610d58576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610b61575f9161117c575b50156110f85773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816110c4575b50610f5e57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036110995750823b1561106e57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561103c575f8091610c7f945190845af4611036611459565b91611568565b5050503461104657005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116110f0575b816110e060209383611234565b81010312610b6c57519086610f2d565b3d91506110d3565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b61119e915060403d6040116111a5575b6111968183611234565b81019061142f565b5084610ed8565b503d61118c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610e52565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610b6c57565b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610b6c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761127557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161127557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060048210156112e95752565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b917fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519281602085019560601b16855260601b16603483015260048110156112e95760f81b60488201526029815261141c604982611234565b51902090565b51908115158203610b6c57565b9190826040910312610b6c57602061144683611422565b92015163ffffffff81168103610b6c5790565b3d15611483573d9061146a826112a2565b916114786040519384611234565b82523d5f602084013e565b606090565b5f82815260018201602052604090205461150b578054906801000000000000000082101561127557600182018082558210156114de5782600192825f5260205f2001558054925f520160205260405f2055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b50505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561154057565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b906115a5575080511561157d57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806115f8575b6115b6575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b156115ae56fea2646970667358221220bd6191763a2bfbc929fd7062205ec11c69b05a72b396f610e6127c16e589e94364736f6c634300081a0033", - "nonce": "0x9b1", + "nonce": "0xa0c", "chainId": "0x13882" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x84af35a6207a4c444ef1bafb1b13c60ebe7291337aa5d596cec127591713144a", + "hash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", "transactionType": "CALL", "contractName": null, "contractAddress": "0x5662b328bb0403e3eacd702e352972ba93dad026", "function": "deploy(bytes32,bytes)", "arguments": [ - "0xc7f71a919d2aa89e68e8decadd36d44baa39ac9de8f1086aa74a3e429961993e", - "0x60806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000f968d0003dbff1a77c515f67ce7950ce85a32f2600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000" + "0xa32dd46747f7211c8abb8d504644f92122bb2e9ee85335e730bc68f161105fa0", + "0x60806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000a3471096cce5af9907daa8dbfef2286043764aa100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000" ], "transaction": { "from": "0xefbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", "to": "0x5662b328bb0403e3eacd702e352972ba93dad026", - "gas": "0x4c3ca", + "gas": "0x4c3db", "value": "0x0", - "input": "0xcdcb760ac7f71a919d2aa89e68e8decadd36d44baa39ac9de8f1086aa74a3e429961993e0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000034860806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000f968d0003dbff1a77c515f67ce7950ce85a32f2600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x9b2", + "input": "0xcdcb760aa32dd46747f7211c8abb8d504644f92122bb2e9ee85335e730bc68f161105fa00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000034860806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000a3471096cce5af9907daa8dbfef2286043764aa100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xa0d", "chainId": "0x13882" }, "additionalContracts": [ { "transactionType": "CREATE2", - "address": "0x20a8f78383c09751f0edb4a19b12de0a3d654f1c", + "address": "0x887abe760df2786d5cc892b990d037434e84c7b5", "initCode": "0x67363d3d37363d34f03d5260086018f3" }, { "transactionType": "CREATE", - "address": "0xd87274200531fac90c2b0efbf1bf1310f54456b0", - "initCode": "0x60806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000f968d0003dbff1a77c515f67ce7950ce85a32f2600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000" + "address": "0xbae832ee0bd9c212212f7f0190cc3b8ca8586ed3", + "initCode": "0x60806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000a3471096cce5af9907daa8dbfef2286043764aa100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000" } ], "isFixedGasLimit": false @@ -58,14 +58,14 @@ "cumulativeGasUsed": "0x13cda8", "logs": [ { - "address": "0xf968d0003dbff1a77c515f67ce7950ce85a32f26", + "address": "0xa3471096cce5af9907daa8dbfef2286043764aa1", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x38a45466f7cddd8713b6d8b96f50e34c0757ac3e97ff809093d3d6600d99b854", - "blockNumber": "0xfce562", - "transactionHash": "0x5bb34891add2df1eb95c19ca00289c57ddaa5f02f735fdff1fa14087381d136f", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xcbae8f198d5bfebd1cfab0e7023caab8c623e0cac1bf3afa629eeacb78633f61", "transactionIndex": "0x0", "logIndex": "0x0", "removed": false @@ -76,69 +76,69 @@ "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", "0x0000000000000000000000000000000000000000000000000000000000001010", "0x000000000000000000000000efbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", - "0x000000000000000000000000915a2284d28bd93de7d6f31173b981204bb666e6" + "0x00000000000000000000000009207a6efee346cb3e4a54ac18523e3715d38b3f" ], - "data": "0x00000000000000000000000000000000000000000000000000b86eda6586800000000000000000000000000000000000000000000000000140edd3362b21b81c00000000000000000000000000000000000000000000058e7cee71c26bd321360000000000000000000000000000000000000000000000014035645bc59b381c00000000000000000000000000000000000000000000058e7da6e09cd159a136", - "blockHash": "0x38a45466f7cddd8713b6d8b96f50e34c0757ac3e97ff809093d3d6600d99b854", - "blockNumber": "0xfce562", - "transactionHash": "0x5bb34891add2df1eb95c19ca00289c57ddaa5f02f735fdff1fa14087381d136f", + "data": "0x00000000000000000000000000000000000000000000000000a4a9f8c93237d0000000000000000000000000000000000000000000000001271ab9454c5472b8000000000000000000000000000000000000000000000467cd3f9198325b418000000000000000000000000000000000000000000000000126760f4c83223ae8000000000000000000000000000000000000000000000467cde43b90fb8d7950", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xcbae8f198d5bfebd1cfab0e7023caab8c623e0cac1bf3afa629eeacb78633f61", "transactionIndex": "0x0", "logIndex": "0x1", "removed": false } ], - "logsBloom": "0x00000000000000002010000000000000000000000000000004000000000000000000000000000000000000000000000000008000000000000000000000000000008000000000000000000000000000800000000000000000000100000000000000000000000000000000000000000000000000000000000080000000000000000800000000000000000800000000000000000000000080000000000000000000200000000000000000000000000000000000400000000000000000000000004000000000000000000001000000000000000002000004004000100000000000000000000000000000000000000000000000000000400000000000000000100000", + "logsBloom": "0x00000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000008000000000000000010000000000008000000000000000000000000000800000000000000000000100000000000000000000000000000000000000000200000000000000000080000000000000000800000000000000000800000000000000004000000080000000000000000000200000000000000000000000000000000000400000000000000000000000004000000000000004000001000000000000000000000004000000100000000000000000000000000000000000010000000000000000000000000000000000100000", "type": "0x2", - "transactionHash": "0x5bb34891add2df1eb95c19ca00289c57ddaa5f02f735fdff1fa14087381d136f", + "transactionHash": "0xcbae8f198d5bfebd1cfab0e7023caab8c623e0cac1bf3afa629eeacb78633f61", "transactionIndex": "0x0", - "blockHash": "0x38a45466f7cddd8713b6d8b96f50e34c0757ac3e97ff809093d3d6600d99b854", - "blockNumber": "0xfce562", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", "gasUsed": "0x13cda8", - "effectiveGasPrice": "0x9502f900f", + "effectiveGasPrice": "0x850a0ff61", "from": "0xefbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", "to": null, - "contractAddress": "0xf968d0003dbff1a77c515f67ce7950ce85a32f26" + "contractAddress": "0xa3471096cce5af9907daa8dbfef2286043764aa1" }, { "status": "0x1", - "cumulativeGasUsed": "0x1740c4", + "cumulativeGasUsed": "0x1740d0", "logs": [ { - "address": "0xd87274200531fac90c2b0efbf1bf1310f54456b0", + "address": "0xbae832ee0bd9c212212f7f0190cc3b8ca8586ed3", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000f968d0003dbff1a77c515f67ce7950ce85a32f26" + "0x000000000000000000000000a3471096cce5af9907daa8dbfef2286043764aa1" ], "data": "0x", - "blockHash": "0x38a45466f7cddd8713b6d8b96f50e34c0757ac3e97ff809093d3d6600d99b854", - "blockNumber": "0xfce562", - "transactionHash": "0x84af35a6207a4c444ef1bafb1b13c60ebe7291337aa5d596cec127591713144a", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", "transactionIndex": "0x1", "logIndex": "0x2", "removed": false }, { - "address": "0xd87274200531fac90c2b0efbf1bf1310f54456b0", + "address": "0xbae832ee0bd9c212212f7f0190cc3b8ca8586ed3", "topics": [ "0x2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad" ], "data": "0x0000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb", - "blockHash": "0x38a45466f7cddd8713b6d8b96f50e34c0757ac3e97ff809093d3d6600d99b854", - "blockNumber": "0xfce562", - "transactionHash": "0x84af35a6207a4c444ef1bafb1b13c60ebe7291337aa5d596cec127591713144a", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", "transactionIndex": "0x1", "logIndex": "0x3", "removed": false }, { - "address": "0xd87274200531fac90c2b0efbf1bf1310f54456b0", + "address": "0xbae832ee0bd9c212212f7f0190cc3b8ca8586ed3", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x38a45466f7cddd8713b6d8b96f50e34c0757ac3e97ff809093d3d6600d99b854", - "blockNumber": "0xfce562", - "transactionHash": "0x84af35a6207a4c444ef1bafb1b13c60ebe7291337aa5d596cec127591713144a", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", "transactionIndex": "0x1", "logIndex": "0x4", "removed": false @@ -149,25 +149,25 @@ "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", "0x0000000000000000000000000000000000000000000000000000000000001010", "0x000000000000000000000000efbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", - "0x000000000000000000000000915a2284d28bd93de7d6f31173b981204bb666e6" + "0x00000000000000000000000009207a6efee346cb3e4a54ac18523e3715d38b3f" ], - "data": "0x00000000000000000000000000000000000000000000000000202098d2e3c0000000000000000000000000000000000000000000000000014035645bc4722b4400000000000000000000000000000000000000000000058e7da6e09cd159a136000000000000000000000000000000000000000000000001401543c2f18e6b4400000000000000000000000000000000000000000000058e7dc70135a43d6136", - "blockHash": "0x38a45466f7cddd8713b6d8b96f50e34c0757ac3e97ff809093d3d6600d99b854", - "blockNumber": "0xfce562", - "transactionHash": "0x84af35a6207a4c444ef1bafb1b13c60ebe7291337aa5d596cec127591713144a", + "data": "0x000000000000000000000000000000000000000000000000001caf67e9cfbad000000000000000000000000000000000000000000000000126760f4c81f92e10000000000000000000000000000000000000000000000467cde43b90fb8d795000000000000000000000000000000000000000000000000126595fe498297340000000000000000000000000000000000000000000000467ce00eaf8e55d3420", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "transactionHash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", "transactionIndex": "0x1", "logIndex": "0x5", "removed": false } ], - "logsBloom": "0x00000000000000000010000000000000400008000000000020000000000000000000000000000000000000000000000000008000000000000000000000000000008000000000000000000000000002800000000000000000000100000000000000000000000000000000000000000000000000000020000080000000000000000820000000000000000800000000000008000000000080000000000000000000200000000000000000000000010000000000400000000000000000000000004000000020000000000001100000000000000002000006000000100000000000000000000000000000000008000000000000000000400000000000000000100000", + "logsBloom": "0x00000000000002000000000000000000400000000000000000000000000000000000000000000000000000000000044000008000000000000000010000000000008000000000000000000000000002800000000000000000000100000000000000040000000000000000000000000000000000000000000080000000000000000800000000000000000800000000000008004000000080000000000000000000200000000000000000000000000000000000400000000000000000000000004000000020000000000001100000000000000000000004000000100000004000000000000000000000000008010000000000000000000000100000000000100000", "type": "0x2", - "transactionHash": "0x84af35a6207a4c444ef1bafb1b13c60ebe7291337aa5d596cec127591713144a", + "transactionHash": "0xd8fd01911b10e428c8a31dcd78e68904e3f455eb9fa2ce50acbd98abab76dfe3", "transactionIndex": "0x1", - "blockHash": "0x38a45466f7cddd8713b6d8b96f50e34c0757ac3e97ff809093d3d6600d99b854", - "blockNumber": "0xfce562", - "gasUsed": "0x3731c", - "effectiveGasPrice": "0x9502f900f", + "blockHash": "0x6c444bdbaec3b8ec1aee00dfb3b620c468d09c90c0df4bbc3b9afe454b1d4f32", + "blockNumber": "0xfe135e", + "gasUsed": "0x37328", + "effectiveGasPrice": "0x850a0ff61", "from": "0xefbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", "to": "0x5662b328bb0403e3eacd702e352972ba93dad026", "contractAddress": null @@ -178,10 +178,10 @@ "returns": { "0": { "internal_type": "address", - "value": "0xD87274200531fAc90c2b0EFbF1bf1310F54456b0" + "value": "0xbaE832Ee0bd9c212212F7F0190cc3B8cA8586eD3" } }, - "timestamp": 1736265932, + "timestamp": 1736433298, "chain": 80002, - "commit": "3644831" + "commit": "3b4e2c9" } \ No newline at end of file diff --git a/broadcast/05_Deploy_Economics_Treasury.s.sol/80002/run-latest.json b/broadcast/05_Deploy_Economics_Treasury.s.sol/80002/run-latest.json index a2638cd..73099a3 100644 --- a/broadcast/05_Deploy_Economics_Treasury.s.sol/80002/run-latest.json +++ b/broadcast/05_Deploy_Economics_Treasury.s.sol/80002/run-latest.json @@ -1,52 +1,52 @@ { "transactions": [ { - "hash": "0x67bd45e812fdacb34a5eda2658a4ff84e5b87a7d2520fa0108a05492d499915a", + "hash": "0x50e10e3872757e020039d79d3cfba60d984112b534f310f03cbe4b23d4394e3c", "transactionType": "CREATE", "contractName": "Treasury", - "contractAddress": "0x01c749b2c32a8afd4ca90aca5f2c2d7a735fa106", + "contractAddress": "0xc92a3c4d3dedea7d51168a46d12ed3523ad91fa2", "function": null, "arguments": null, "transaction": { "from": "0xefbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", - "gas": "0x24eb6d", + "gas": "0x24eb8c", "value": "0x0", - "input": "0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161207e90816100ed8239608051818181610aa70152610ba80152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f905f358060e01c91826306af20da1461111557505080632c2eb94a14610fb35780634f1ef28614610b1f57806352d1902d14610a7f57806369328dec1461095c5780637a9e5e4b146108845780638fb36037146107ef578063ad3cb1cc1461075d578063b4fb2ea714610616578063bf7e214f146105c3578063c4d66de814610308578063d949b84414610274578063dbba0f0114610179578063f45346dc146100f45763f8b2cb4f146100c5575f80fd5b346100f15760206003193601126100f15760206100e96100e36115eb565b30611ce2565b604051908152f35b80fd5b50346100f15760206101116101083661160e565b80939133611b1d565b9161011d8184846117a2565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917f2d26b12df00031a51cbd91c763887ccf6992992e54b2701fbe5bd7b2c738a4e291819081015b0390a3604051908152f35b50346100f1576101883661160e565b9190913384527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f006020526040842073ffffffffffffffffffffffffffffffffffffffff82165f526020528260405f20541061024c57602093506101ec818433611822565b6101f78184846117a2565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be7918190810161016e565b6004847fd1df6ed0000000000000000000000000000000000000000000000000000000008152fd5b50346100f15760406003193601126100f15761028e6115eb565b73ffffffffffffffffffffffffffffffffffffffff6102f26102ae6115c8565b9273ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b50346100f15760206003193601126100f1576103226115eb565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549060ff8260401c16159167ffffffffffffffff8116801590816105bb575b60011490816105b1575b1590816105a8575b506105805790818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561052b575b506103e7611e49565b6103ef611e49565b6103f7611e49565b6103ff611e49565b610407611e49565b61040f611e49565b610417611e49565b61042081611a72565b610428611e49565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556104975780f35b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00555f6103de565b6004847ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b9050155f610374565b303b15915061036c565b849150610362565b50346100f157806003193601126100f157602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b50346100f1576106253661160e565b335f9081527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f006020526040902091929173ffffffffffffffffffffffffffffffffffffffff82165f526020528260405f20541061073657604060209461068c838633611822565b6106968433611df9565b81527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c0086522073ffffffffffffffffffffffffffffffffffffffff82165f52845260405f206106e6848254611768565b905573ffffffffffffffffffffffffffffffffffffffff8060405192858452169216907fefe3f8439756d801b1c87c65156763cb37dfe4029063fa02119547331fb60d55853392a4604051908152f35b6004847ef08faa000000000000000000000000000000000000000000000000000000008152fd5b50346100f157806003193601126100f1576040805161077c8282611662565b600581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602083017f352e302e3000000000000000000000000000000000000000000000000000000081528451958694602086525180928160208801528787015e85828601015201168101030190f35b50346100f157806003193601126100f1577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff161561087c575060207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b602090610852565b50346100f15760206003193601126100f15761089e6115eb565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361093057803b156108ef576108ec90611a72565b80f35b7fc2f31e5e00000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff16600452602490fd5b6024827f068ca9d800000000000000000000000000000000000000000000000000000000815233600452fd5b50346100f15761096b3661160e565b90916109b43373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f205410610a5757602093506109ea828433611822565b6109f5828483611891565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917f823b7dcdbd5806d97a2a3c64fe281a8d31155b2a7dade87fdaa7437c79c12b118573ffffffffffffffffffffffffffffffffffffffff33941692a4604051908152f35b6004847f67e3990d000000000000000000000000000000000000000000000000000000008152fd5b50346100f157806003193601126100f15773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610af75760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b807fe07c8dba0000000000000000000000000000000000000000000000000000000060049252fd5b5060406003193601126100f157610b346115eb565b6024359067ffffffffffffffff8211610faf5736602383011215610faf5781600401359083610b62836116d0565b93610b706040519586611662565b83855260208501933660248284010111610faf578060246020930186378501015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610f6d575b50610f45576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082528960048301523360248301525afa908115610f3a578591610f0a575b5015610e865773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa869181610e4e575b50610cdf57602486867f4c9c8ce3000000000000000000000000000000000000000000000000000000008252600452fd5b93847f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc879603610e235750823b15610df857908185927fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610dc457610dc09382915190845af4610dba611d93565b91611faf565b5080f35b5050505034610dd05780f35b807fb398979f0000000000000000000000000000000000000000000000000000000060049252fd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000008552600452602484fd5b7faa1d49a4000000000000000000000000000000000000000000000000000000008652600452602485fd5b9091506020813d602011610e7e575b81610e6a60209383611662565b81010312610e7a5751905f610cae565b8680fd5b3d9150610e5d565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b610f2c915060403d604011610f33575b610f248183611662565b810190611dcf565b505f610c59565b503d610f1a565b6040513d87823e3d90fd5b6004847fe07c8dba000000000000000000000000000000000000000000000000000000008152fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614155f610bd3565b8280fd5b50346100f157610fc23661160e565b9091610fce3382611df9565b84527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c006020526040842073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106110ed57604060209461102e3384611df9565b81527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c0086522073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061107e848254611815565b905561108b8284336117a2565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917fb86f5fa8e97aba565b1ac0fa25de5437a80a39dc9bf20638866c57efd521c98e8573ffffffffffffffffffffffffffffffffffffffff33941692a4604051908152f35b6004847ff333765d000000000000000000000000000000000000000000000000000000008152fd5b909150346113a35760406003193601126113a3576004359067ffffffffffffffff82116113a357366023830112156113a35781600401359267ffffffffffffffff84116113a3576024830192602436918660051b0101116113a3576111786115c8565b917ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549073ffffffffffffffffffffffffffffffffffffffff821692366004116113a3575f80809281947fffffffff0000000000000000000000000000000000000000000000000000000060208201927fb70096130000000000000000000000000000000000000000000000000000000084523360248401523060448401521660648201526064815261122c608482611662565b5190875afa611239611d93565b9061156a575b50156113ba575b505073ffffffffffffffffffffffffffffffffffffffff82169285929150825b858410611271578680f35b86602073ffffffffffffffffffffffffffffffffffffffff61129c611297888b8861170a565b611747565b166024604051809481937f1c8ce8900000000000000000000000000000000000000000000000000000000083528b60048401525af19081156113af578891611379575b50806001926112f28661137194306117a2565b73ffffffffffffffffffffffffffffffffffffffff611315611297898c8961170a565b167fbb64cfa7f75512208a9b73fb4034b028a5972cba07a53b641e16ba38571f1331604051806113698a878390929173ffffffffffffffffffffffffffffffffffffffff6020916040840195845216910152565b0390a2611768565b930192611266565b90506020813d82116113a7575b8161139360209383611662565b810103126113a3575160016112df565b5f80fd5b3d9150611386565b6040513d8a823e3d90fd5b63ffffffff161561153e577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055803b156113a3575f60405180927f94c7d7ee0000000000000000000000000000000000000000000000000000000082523360048301526040602483015236604483015236836064840137826064368401015281836064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f36011681010301925af180156115335761151e575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f8080611246565b61152b9194505f90611662565b5f925f6114af565b6040513d5f823e3d90fd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b80519290916040841061159257505060208061158a938301019101611dcf565b905b5f61123f565b91909260208110156115a6575b505061158c565b81925090602091810103126113a35760206115c19101611dc2565b5f8061159f565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036113a357565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036113a357565b60031960609101126113a35760043573ffffffffffffffffffffffffffffffffffffffff811681036113a357906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036113a35790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176116a357604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116116a357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b919081101561171a5760051b0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3573ffffffffffffffffffffffffffffffffffffffff811681036113a35790565b9190820180921161177557565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261181160405f20918254611768565b9055565b9190820391821161177557565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261181160405f20918254611815565b90918215611a1457826118a48230611ce2565b106119b65773ffffffffffffffffffffffffffffffffffffffff168015611929576119279273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611922606483611662565b611f28565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611950611d93565b501561195857565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9190918215611c845773ffffffffffffffffffffffffffffffffffffffff8216918215611c1957611b4e9082611ea0565b8311611bbb57611bb89173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611922608483611662565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611c265790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611d8d5773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611533575f91611d5e575090565b90506020813d602011611d85575b81611d7960209383611662565b810103126113a3575190565b3d9150611d6c565b90503190565b3d15611dbd573d90611da4826116d0565b91611db26040519384611662565b82523d5f602084013e565b606090565b519081151582036113a357565b91908260409103126113a3576020611de683611dc2565b92015163ffffffff811681036113a35790565b907fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152611e43604882611662565b51902090565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611e7857565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611f225773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611533575f91611d5e575090565b50503490565b905f602091828151910182855af115611533575f513d611fa6575073ffffffffffffffffffffffffffffffffffffffff81163b155b611f645750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611f5d565b90611fec5750805115611fc457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061203f575b611ffd575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611ff556fea264697066735822122088b70005b8eb9d95b310883e1bbe05549abbca2ad09846a63200c5545d3f34db64736f6c634300081a0033", - "nonce": "0x9b3", + "input": "0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161207e90816100ed8239608051818181610aa70152610ba80152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f905f358060e01c91826306af20da1461111557505080632c2eb94a14610fb35780634f1ef28614610b1f57806352d1902d14610a7f57806369328dec1461095c5780637a9e5e4b146108845780638fb36037146107ef578063ad3cb1cc1461075d578063b4fb2ea714610616578063bf7e214f146105c3578063c4d66de814610308578063d949b84414610274578063dbba0f0114610179578063f45346dc146100f45763f8b2cb4f146100c5575f80fd5b346100f15760206003193601126100f15760206100e96100e36115eb565b30611ce2565b604051908152f35b80fd5b50346100f15760206101116101083661160e565b80939133611b1d565b9161011d8184846117a2565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917f2d26b12df00031a51cbd91c763887ccf6992992e54b2701fbe5bd7b2c738a4e291819081015b0390a3604051908152f35b50346100f1576101883661160e565b9190913384527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f006020526040842073ffffffffffffffffffffffffffffffffffffffff82165f526020528260405f20541061024c57602093506101ec818433611822565b6101f78184846117a2565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be7918190810161016e565b6004847fd1df6ed0000000000000000000000000000000000000000000000000000000008152fd5b50346100f15760406003193601126100f15761028e6115eb565b73ffffffffffffffffffffffffffffffffffffffff6102f26102ae6115c8565b9273ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b50346100f15760206003193601126100f1576103226115eb565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549060ff8260401c16159167ffffffffffffffff8116801590816105bb575b60011490816105b1575b1590816105a8575b506105805790818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561052b575b506103e7611e49565b6103ef611e49565b6103f7611e49565b6103ff611e49565b610407611e49565b61040f611e49565b610417611e49565b61042081611a72565b610428611e49565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556104975780f35b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00555f6103de565b6004847ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b9050155f610374565b303b15915061036c565b849150610362565b50346100f157806003193601126100f157602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b50346100f1576106253661160e565b335f9081527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f006020526040902091929173ffffffffffffffffffffffffffffffffffffffff82165f526020528260405f20541061073657604060209461068c838633611822565b6106968433611df9565b81527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c0086522073ffffffffffffffffffffffffffffffffffffffff82165f52845260405f206106e6848254611768565b905573ffffffffffffffffffffffffffffffffffffffff8060405192858452169216907fefe3f8439756d801b1c87c65156763cb37dfe4029063fa02119547331fb60d55853392a4604051908152f35b6004847ef08faa000000000000000000000000000000000000000000000000000000008152fd5b50346100f157806003193601126100f1576040805161077c8282611662565b600581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602083017f352e302e3000000000000000000000000000000000000000000000000000000081528451958694602086525180928160208801528787015e85828601015201168101030190f35b50346100f157806003193601126100f1577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff161561087c575060207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b602090610852565b50346100f15760206003193601126100f15761089e6115eb565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361093057803b156108ef576108ec90611a72565b80f35b7fc2f31e5e00000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff16600452602490fd5b6024827f068ca9d800000000000000000000000000000000000000000000000000000000815233600452fd5b50346100f15761096b3661160e565b90916109b43373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f205410610a5757602093506109ea828433611822565b6109f5828483611891565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917f823b7dcdbd5806d97a2a3c64fe281a8d31155b2a7dade87fdaa7437c79c12b118573ffffffffffffffffffffffffffffffffffffffff33941692a4604051908152f35b6004847f67e3990d000000000000000000000000000000000000000000000000000000008152fd5b50346100f157806003193601126100f15773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610af75760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b807fe07c8dba0000000000000000000000000000000000000000000000000000000060049252fd5b5060406003193601126100f157610b346115eb565b6024359067ffffffffffffffff8211610faf5736602383011215610faf5781600401359083610b62836116d0565b93610b706040519586611662565b83855260208501933660248284010111610faf578060246020930186378501015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610f6d575b50610f45576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082528960048301523360248301525afa908115610f3a578591610f0a575b5015610e865773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa869181610e4e575b50610cdf57602486867f4c9c8ce3000000000000000000000000000000000000000000000000000000008252600452fd5b93847f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc879603610e235750823b15610df857908185927fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610dc457610dc09382915190845af4610dba611d93565b91611faf565b5080f35b5050505034610dd05780f35b807fb398979f0000000000000000000000000000000000000000000000000000000060049252fd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000008552600452602484fd5b7faa1d49a4000000000000000000000000000000000000000000000000000000008652600452602485fd5b9091506020813d602011610e7e575b81610e6a60209383611662565b81010312610e7a5751905f610cae565b8680fd5b3d9150610e5d565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b610f2c915060403d604011610f33575b610f248183611662565b810190611dcf565b505f610c59565b503d610f1a565b6040513d87823e3d90fd5b6004847fe07c8dba000000000000000000000000000000000000000000000000000000008152fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614155f610bd3565b8280fd5b50346100f157610fc23661160e565b9091610fce3382611df9565b84527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c006020526040842073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106110ed57604060209461102e3384611df9565b81527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c0086522073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061107e848254611815565b905561108b8284336117a2565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917fb86f5fa8e97aba565b1ac0fa25de5437a80a39dc9bf20638866c57efd521c98e8573ffffffffffffffffffffffffffffffffffffffff33941692a4604051908152f35b6004847ff333765d000000000000000000000000000000000000000000000000000000008152fd5b909150346113a35760406003193601126113a3576004359067ffffffffffffffff82116113a357366023830112156113a35781600401359267ffffffffffffffff84116113a3576024830192602436918660051b0101116113a3576111786115c8565b917ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549073ffffffffffffffffffffffffffffffffffffffff821692366004116113a3575f80809281947fffffffff0000000000000000000000000000000000000000000000000000000060208201927fb70096130000000000000000000000000000000000000000000000000000000084523360248401523060448401521660648201526064815261122c608482611662565b5190875afa611239611d93565b9061156a575b50156113ba575b505073ffffffffffffffffffffffffffffffffffffffff82169285929150825b858410611271578680f35b86602073ffffffffffffffffffffffffffffffffffffffff61129c611297888b8861170a565b611747565b166024604051809481937f1c8ce8900000000000000000000000000000000000000000000000000000000083528b60048401525af19081156113af578891611379575b50806001926112f28661137194306117a2565b73ffffffffffffffffffffffffffffffffffffffff611315611297898c8961170a565b167fbb64cfa7f75512208a9b73fb4034b028a5972cba07a53b641e16ba38571f1331604051806113698a878390929173ffffffffffffffffffffffffffffffffffffffff6020916040840195845216910152565b0390a2611768565b930192611266565b90506020813d82116113a7575b8161139360209383611662565b810103126113a3575160016112df565b5f80fd5b3d9150611386565b6040513d8a823e3d90fd5b63ffffffff161561153e577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055803b156113a3575f60405180927f94c7d7ee0000000000000000000000000000000000000000000000000000000082523360048301526040602483015236604483015236836064840137826064368401015281836064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f36011681010301925af180156115335761151e575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f8080611246565b61152b9194505f90611662565b5f925f6114af565b6040513d5f823e3d90fd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b80519290916040841061159257505060208061158a938301019101611dcf565b905b5f61123f565b91909260208110156115a6575b505061158c565b81925090602091810103126113a35760206115c19101611dc2565b5f8061159f565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036113a357565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036113a357565b60031960609101126113a35760043573ffffffffffffffffffffffffffffffffffffffff811681036113a357906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036113a35790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176116a357604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116116a357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b919081101561171a5760051b0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3573ffffffffffffffffffffffffffffffffffffffff811681036113a35790565b9190820180921161177557565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261181160405f20918254611768565b9055565b9190820391821161177557565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261181160405f20918254611815565b90918215611a1457826118a48230611ce2565b106119b65773ffffffffffffffffffffffffffffffffffffffff168015611929576119279273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611922606483611662565b611f28565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611950611d93565b501561195857565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9190918215611c845773ffffffffffffffffffffffffffffffffffffffff8216918215611c1957611b4e9082611ea0565b8311611bbb57611bb89173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611922608483611662565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611c265790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611d8d5773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611533575f91611d5e575090565b90506020813d602011611d85575b81611d7960209383611662565b810103126113a3575190565b3d9150611d6c565b90503190565b3d15611dbd573d90611da4826116d0565b91611db26040519384611662565b82523d5f602084013e565b606090565b519081151582036113a357565b91908260409103126113a3576020611de683611dc2565b92015163ffffffff811681036113a35790565b907fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152611e43604882611662565b51902090565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611e7857565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611f225773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611533575f91611d5e575090565b50503490565b905f602091828151910182855af115611533575f513d611fa6575073ffffffffffffffffffffffffffffffffffffffff81163b155b611f645750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611f5d565b90611fec5750805115611fc457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061203f575b611ffd575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611ff556fea2646970667358221220be6049e0cfe25c673051b5e9364509df36dc1ffccdc47707e8c45f9782fa224c64736f6c634300081a0033", + "nonce": "0xa0e", "chainId": "0x13882" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x9dc530a10eafa0285b777ffe554a4f0a6fbf0f12053237db6d13d6e1f1312db0", + "hash": "0x6215c3d4428f37f3d6e34da093b4749375a1bb39047c5509e9223895dbbd2cd7", "transactionType": "CALL", "contractName": null, "contractAddress": "0x5662b328bb0403e3eacd702e352972ba93dad026", "function": "deploy(bytes32,bytes)", "arguments": [ - "0x51035858375ccb441b1f650ef742b550c11b70337a93da84d9876301f615266b", - "0x60806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a003300000000000000000000000001c749b2c32a8afd4ca90aca5f2c2d7a735fa10600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000" + "0x5654f964aada4f6243fdc4d5ec58e7506d71f6222f30682ce63dda7add5bb287", + "0x60806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000c92a3c4d3dedea7d51168a46d12ed3523ad91fa200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000" ], "transaction": { "from": "0xefbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", "to": "0x5662b328bb0403e3eacd702e352972ba93dad026", "gas": "0x4c6a7", "value": "0x0", - "input": "0xcdcb760a51035858375ccb441b1f650ef742b550c11b70337a93da84d9876301f615266b0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000034860806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a003300000000000000000000000001c749b2c32a8afd4ca90aca5f2c2d7a735fa10600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x9b4", + "input": "0xcdcb760a5654f964aada4f6243fdc4d5ec58e7506d71f6222f30682ce63dda7add5bb2870000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000034860806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000c92a3c4d3dedea7d51168a46d12ed3523ad91fa200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xa0f", "chainId": "0x13882" }, "additionalContracts": [ { "transactionType": "CREATE2", - "address": "0xd716b88b2d60c0ed37b03c3182f4455cd526724b", + "address": "0x3f9243bd2861d69d0e2e519597228e8209d9b5d0", "initCode": "0x67363d3d37363d34f03d5260086018f3" }, { "transactionType": "CREATE", - "address": "0xd957a2136ce4565ea95cce0d720ea015ebdb40c9", - "initCode": "0x60806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a003300000000000000000000000001c749b2c32a8afd4ca90aca5f2c2d7a735fa10600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000" + "address": "0x2bef3819db8181e8d86eb1b2fb3e5999b2ebb8d1", + "initCode": "0x60806040526102a88038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051608d908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea264697066735822122076050a3b56e785f45957a6a7de96de553c761627e10a597e11551023690a1f9264736f6c634300081a0033000000000000000000000000c92a3c4d3dedea7d51168a46d12ed3523ad91fa200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb00000000000000000000000000000000000000000000000000000000" } ], "isFixedGasLimit": false @@ -55,19 +55,19 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x1c6654", + "cumulativeGasUsed": "0x1d0c2f", "logs": [ { - "address": "0x01c749b2c32a8afd4ca90aca5f2c2d7a735fa106", + "address": "0xc92a3c4d3dedea7d51168a46d12ed3523ad91fa2", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0xf1347a2f3fa800b55bfe2a07ff560be0574a2aaa9820748882743fd8697568e9", - "blockNumber": "0xfce57b", - "transactionHash": "0x67bd45e812fdacb34a5eda2658a4ff84e5b87a7d2520fa0108a05492d499915a", - "transactionIndex": "0x0", - "logIndex": "0x0", + "blockHash": "0x6da2dbcc96af26b649a9fd9bd4ce6872fb4933f2fb369b134dc01d4ca1b3b129", + "blockNumber": "0xfe1371", + "transactionHash": "0x50e10e3872757e020039d79d3cfba60d984112b534f310f03cbe4b23d4394e3c", + "transactionIndex": "0x1", + "logIndex": "0x2", "removed": false }, { @@ -76,71 +76,71 @@ "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", "0x0000000000000000000000000000000000000000000000000000000000001010", "0x000000000000000000000000efbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", - "0x000000000000000000000000973e732e5306086fa8963677ec49010ee2f3d35a" + "0x0000000000000000000000006dc2dd54f24979ec26212794c71afefed722280c" ], - "data": "0x00000000000000000000000000000000000000000000000001087e3502fb4000000000000000000000000000000000000000000000000001401543c2f15aaca0000000000000000000000000000000000000000000000043f91cadcea346a7a50000000000000000000000000000000000000000000000013f0cc58dee5f6ca0000000000000000000000000000000000000000000000043fa252c03a641e7a5", - "blockHash": "0xf1347a2f3fa800b55bfe2a07ff560be0574a2aaa9820748882743fd8697568e9", - "blockNumber": "0xfce57b", - "transactionHash": "0x67bd45e812fdacb34a5eda2658a4ff84e5b87a7d2520fa0108a05492d499915a", - "transactionIndex": "0x0", - "logIndex": "0x1", + "data": "0x00000000000000000000000000000000000000000000000000a54f6cd4a6780000000000000000000000000000000000000000000000000126595fe497f5b3e80000000000000000000000000000000000000000000004b9d9ea1ec6e170441000000000000000000000000000000000000000000000000125b41077c34f3be80000000000000000000000000000000000000000000004b9da8f6e33b616bc10", + "blockHash": "0x6da2dbcc96af26b649a9fd9bd4ce6872fb4933f2fb369b134dc01d4ca1b3b129", + "blockNumber": "0xfe1371", + "transactionHash": "0x50e10e3872757e020039d79d3cfba60d984112b534f310f03cbe4b23d4394e3c", + "transactionIndex": "0x1", + "logIndex": "0x3", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000008000000000000000000004000000008000000000000000000000000000800000000000000000000100000000000000000000000000000000000000000000000000000000000080000000000000800800000000000000000800000000000000000100000080000000000000000000201000000000000000000000000000000000400000000000000000000000004000000000000000000001000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000020100000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000008000000000000000000000000000800000000008000000000100080000000000000000000000000000000000000000000000000000000080000000000000020800000000000000000800000040000000000000000080000000000000000000200000000000000000000000000000000000400000000000000000000000004000000000000000000001000000000000000000000004000000100000000000000000000000000000001000000000000000000000000000000000000000100000", "type": "0x2", - "transactionHash": "0x67bd45e812fdacb34a5eda2658a4ff84e5b87a7d2520fa0108a05492d499915a", - "transactionIndex": "0x0", - "blockHash": "0xf1347a2f3fa800b55bfe2a07ff560be0574a2aaa9820748882743fd8697568e9", - "blockNumber": "0xfce57b", - "gasUsed": "0x1c6654", - "effectiveGasPrice": "0x9502f900f", + "transactionHash": "0x50e10e3872757e020039d79d3cfba60d984112b534f310f03cbe4b23d4394e3c", + "transactionIndex": "0x1", + "blockHash": "0x6da2dbcc96af26b649a9fd9bd4ce6872fb4933f2fb369b134dc01d4ca1b3b129", + "blockNumber": "0xfe1371", + "gasUsed": "0x1c666c", + "effectiveGasPrice": "0x5d21dba0f", "from": "0xefbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", "to": null, - "contractAddress": "0x01c749b2c32a8afd4ca90aca5f2c2d7a735fa106" + "contractAddress": "0xc92a3c4d3dedea7d51168a46d12ed3523ad91fa2" }, { "status": "0x1", - "cumulativeGasUsed": "0x1fdb83", + "cumulativeGasUsed": "0x20815e", "logs": [ { - "address": "0xd957a2136ce4565ea95cce0d720ea015ebdb40c9", + "address": "0x2bef3819db8181e8d86eb1b2fb3e5999b2ebb8d1", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000001c749b2c32a8afd4ca90aca5f2c2d7a735fa106" + "0x000000000000000000000000c92a3c4d3dedea7d51168a46d12ed3523ad91fa2" ], "data": "0x", - "blockHash": "0xf1347a2f3fa800b55bfe2a07ff560be0574a2aaa9820748882743fd8697568e9", - "blockNumber": "0xfce57b", - "transactionHash": "0x9dc530a10eafa0285b777ffe554a4f0a6fbf0f12053237db6d13d6e1f1312db0", - "transactionIndex": "0x1", - "logIndex": "0x2", + "blockHash": "0x6da2dbcc96af26b649a9fd9bd4ce6872fb4933f2fb369b134dc01d4ca1b3b129", + "blockNumber": "0xfe1371", + "transactionHash": "0x6215c3d4428f37f3d6e34da093b4749375a1bb39047c5509e9223895dbbd2cd7", + "transactionIndex": "0x2", + "logIndex": "0x4", "removed": false }, { - "address": "0xd957a2136ce4565ea95cce0d720ea015ebdb40c9", + "address": "0x2bef3819db8181e8d86eb1b2fb3e5999b2ebb8d1", "topics": [ "0x2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad" ], "data": "0x0000000000000000000000008120a8e0688be6b2c0bb469f871e5e7023ca85eb", - "blockHash": "0xf1347a2f3fa800b55bfe2a07ff560be0574a2aaa9820748882743fd8697568e9", - "blockNumber": "0xfce57b", - "transactionHash": "0x9dc530a10eafa0285b777ffe554a4f0a6fbf0f12053237db6d13d6e1f1312db0", - "transactionIndex": "0x1", - "logIndex": "0x3", + "blockHash": "0x6da2dbcc96af26b649a9fd9bd4ce6872fb4933f2fb369b134dc01d4ca1b3b129", + "blockNumber": "0xfe1371", + "transactionHash": "0x6215c3d4428f37f3d6e34da093b4749375a1bb39047c5509e9223895dbbd2cd7", + "transactionIndex": "0x2", + "logIndex": "0x5", "removed": false }, { - "address": "0xd957a2136ce4565ea95cce0d720ea015ebdb40c9", + "address": "0x2bef3819db8181e8d86eb1b2fb3e5999b2ebb8d1", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xf1347a2f3fa800b55bfe2a07ff560be0574a2aaa9820748882743fd8697568e9", - "blockNumber": "0xfce57b", - "transactionHash": "0x9dc530a10eafa0285b777ffe554a4f0a6fbf0f12053237db6d13d6e1f1312db0", - "transactionIndex": "0x1", - "logIndex": "0x4", + "blockHash": "0x6da2dbcc96af26b649a9fd9bd4ce6872fb4933f2fb369b134dc01d4ca1b3b129", + "blockNumber": "0xfe1371", + "transactionHash": "0x6215c3d4428f37f3d6e34da093b4749375a1bb39047c5509e9223895dbbd2cd7", + "transactionIndex": "0x2", + "logIndex": "0x6", "removed": false }, { @@ -149,25 +149,25 @@ "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", "0x0000000000000000000000000000000000000000000000000000000000001010", "0x000000000000000000000000efbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", - "0x000000000000000000000000973e732e5306086fa8963677ec49010ee2f3d35a" + "0x0000000000000000000000006dc2dd54f24979ec26212794c71afefed722280c" ], - "data": "0x000000000000000000000000000000000000000000000000002033ea258b70000000000000000000000000000000000000000000000000013f0cc58decb56db4000000000000000000000000000000000000000000000043fa252c03a641e7a50000000000000000000000000000000000000000000000013eec91a3c729fdb4000000000000000000000000000000000000000000000043fa455fedcbcd57a5", - "blockHash": "0xf1347a2f3fa800b55bfe2a07ff560be0574a2aaa9820748882743fd8697568e9", - "blockNumber": "0xfce57b", - "transactionHash": "0x9dc530a10eafa0285b777ffe554a4f0a6fbf0f12053237db6d13d6e1f1312db0", - "transactionIndex": "0x1", - "logIndex": "0x5", + "data": "0x000000000000000000000000000000000000000000000000001420725777260000000000000000000000000000000000000000000000000125b41077c1a53b940000000000000000000000000000000000000000000004b9da8f6e33b616bc10000000000000000000000000000000000000000000000001259ff0056a2e15940000000000000000000000000000000000000000000004b9daa38ea60d8de210", + "blockHash": "0x6da2dbcc96af26b649a9fd9bd4ce6872fb4933f2fb369b134dc01d4ca1b3b129", + "blockNumber": "0xfe1371", + "transactionHash": "0x6215c3d4428f37f3d6e34da093b4749375a1bb39047c5509e9223895dbbd2cd7", + "transactionIndex": "0x2", + "logIndex": "0x7", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000040000000000000008000000000000000800000000000008000000000010000000000000002800000000000000000000100000000000000000000000000000000000000000000000000000000000080000000000000000800000000000000000800000000040008000000000080000000000000000000201000000000000000000000000000000000400000000001000000000000004000000020000000000001100000000000000000000004010000100000000000200000000000000000000008000000000000000000000000000000000020100000", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000100000000000000000000000000000000008000004000000000000000000000008000000000000000000000000002800000000000000000000100080000004000000000000000000000000000000000000800000000000080000000000000020800000000000000000800000040000008000000000080000000000000000000200000000000000040000000000000000000400000000000000000000000004000000020000800000001100000000000000000000004000000100000000000000000000000000000000008000000000000000000000000000000000000100000", "type": "0x2", - "transactionHash": "0x9dc530a10eafa0285b777ffe554a4f0a6fbf0f12053237db6d13d6e1f1312db0", - "transactionIndex": "0x1", - "blockHash": "0xf1347a2f3fa800b55bfe2a07ff560be0574a2aaa9820748882743fd8697568e9", - "blockNumber": "0xfce57b", + "transactionHash": "0x6215c3d4428f37f3d6e34da093b4749375a1bb39047c5509e9223895dbbd2cd7", + "transactionIndex": "0x2", + "blockHash": "0x6da2dbcc96af26b649a9fd9bd4ce6872fb4933f2fb369b134dc01d4ca1b3b129", + "blockNumber": "0xfe1371", "gasUsed": "0x3752f", - "effectiveGasPrice": "0x9502f900f", + "effectiveGasPrice": "0x5d21dba0f", "from": "0xefbbd14082cf2fbcf5badc7ee619f0f4e36d0a5b", "to": "0x5662b328bb0403e3eacd702e352972ba93dad026", "contractAddress": null @@ -178,10 +178,10 @@ "returns": { "0": { "internal_type": "address", - "value": "0xD957a2136cE4565Ea95cCE0d720eA015ebdB40C9" + "value": "0x2bEF3819DB8181E8d86eb1B2Fb3e5999B2Ebb8d1" } }, - "timestamp": 1736265982, + "timestamp": 1736433317, "chain": 80002, - "commit": "3644831" + "commit": "3b4e2c9" } \ No newline at end of file diff --git a/contracts/assets/AssetOwnership.sol b/contracts/assets/AssetOwnership.sol index 577eab3..1689e8b 100644 --- a/contracts/assets/AssetOwnership.sol +++ b/contracts/assets/AssetOwnership.sol @@ -32,9 +32,8 @@ contract AssetOwnership is /// @dev Emitted when a new asset is registered on the platform. /// @param owner The address of the creator or owner of the asset being registered. - /// @param timestamp The timestamp indicating when the asset was registered. /// @param assetId The unique identifier for the registered asset. - event RegisteredAsset(address indexed owner, uint256 indexed timestamp, uint256 assetId); + event RegisteredAsset(address indexed owner, uint256 assetId); /// @dev Error indicating that an operation attempted to reference content that has not been approved. /// This error is triggered when the asset being accessed or referenced is not in an approved state. @@ -91,7 +90,7 @@ contract AssetOwnership is /// @param assetId The unique identifier for the asset, which serves as the NFT ID. function registerAsset(address to, uint256 assetId) external onlyApprovedAsset(to, assetId) { _mint(to, assetId); // register asset as 721 token - emit RegisteredAsset(to, block.timestamp, assetId); + emit RegisteredAsset(to, assetId); } /// @dev Internal function to update the ownership of a token. diff --git a/contracts/assets/AssetReferendum.sol b/contracts/assets/AssetReferendum.sol index aaa2669..9be2ddd 100644 --- a/contracts/assets/AssetReferendum.sol +++ b/contracts/assets/AssetReferendum.sol @@ -33,23 +33,19 @@ contract AssetReferendum is /// @dev Event emitted when a content is submitted for referendum. /// @param assetId The ID of the asset that has been submitted. /// @param initiator The address of the initiator who submitted the asset. - /// @param timestamp The timestamp indicating when the asset was submitted. - event Submitted(address indexed initiator, uint256 timestamp, uint256 assetId); + event Submitted(address indexed initiator, uint256 assetId); /// @dev Event emitted when a content is approved. /// @param assetId The ID of the asset that has been approved. - /// @param timestamp The timestamp indicating when the asset was approved. - event Approved(uint256 assetId, uint256 timestamp); + event Approved(uint256 assetId); /// @dev Event emitted when a content is revoked. /// @param assetId The ID of the asset that has been revoked. - /// @param timestamp The timestamp indicating when the asset was revoked. - event Revoked(uint256 assetId, uint256 timestamp); + event Revoked(uint256 assetId); /// @dev Event emitted when a content is rejected. /// @param assetId The ID of the asset that has been rejected. - /// @param timestamp The timestamp indicating when the asset was revoked. - event Rejected(uint256 assetId, uint256 timestamp); + event Rejected(uint256 assetId); // /// @dev Error thrown when the signature of the asset submission is invalid. // error InvalidSubmissionSignature(); @@ -77,7 +73,7 @@ contract AssetReferendum is function submit(uint256 assetId) external { _register(assetId); // bundled check-effects-interaction _submissions[msg.sender].add(assetId); - emit Submitted(msg.sender, block.timestamp, assetId); + emit Submitted(msg.sender, assetId); } // /// @notice Submits a content proposition for referendum with a signature. @@ -101,21 +97,21 @@ contract AssetReferendum is /// @param assetId The ID of the asset to be revoked. function revoke(uint256 assetId) external restricted { _revoke(assetId); // bundled check-effects-interaction - emit Revoked(assetId, block.timestamp); + emit Revoked(assetId); } /// @notice Reject a content proposition. /// @param assetId The ID of the asset to be rejected. function reject(uint256 assetId) external restricted { _block(assetId); // bundled check-effects-interaction - emit Rejected(assetId, block.timestamp); + emit Rejected(assetId); } /// @notice Approves a content proposition. /// @param assetId The ID of the asset to be approved. function approve(uint256 assetId) external restricted { _approve(assetId); // bundled check-effects-interaction - emit Approved(assetId, block.timestamp); + emit Approved(assetId); } /// @notice Checks if the asset is approved. diff --git a/contracts/core/interfaces/rights/IRightsPolicyManager.sol b/contracts/core/interfaces/rights/IRightsPolicyManager.sol index e72f138..7633977 100644 --- a/contracts/core/interfaces/rights/IRightsPolicyManager.sol +++ b/contracts/core/interfaces/rights/IRightsPolicyManager.sol @@ -5,6 +5,10 @@ pragma solidity 0.8.26; /// @notice Interface for managing content rights policies. /// @dev This interface handles retrieving/managing/registering policies. interface IRightsPolicyManager { + /// @notice Retrieves the list of policies associated with a specific account and content ID. + /// @param account The address of the account for which policies are being retrieved. + function getPolicies(address account) external view returns (address[] memory); + /// @notice Retrieves the address of the Rights Policies Authorizer contract. /// @return The address of the contract responsible for authorizing rights policies. function getPolicyAuthorizer() external view returns (address); @@ -16,6 +20,11 @@ interface IRightsPolicyManager { /// @return policyAddress Address of the matching policy or zero if none found. function getActivePolicy(address account, bytes memory criteria) external view returns (bool, address); + /// @notice Retrieves the list of active policies matching the criteria for an account. + /// @param account Address of the account to evaluate. + /// @param criteria Encoded data containing parameters for access verification. eg: assetId, holder + function getActivePolicies(address account, bytes memory criteria) external view returns (address[] memory); + /// @notice Verifies if a specific policy is active for the provided account and content. /// @param account The address of the user whose compliance is being evaluated. /// @param policy The address of the policy contract to check compliance against. diff --git a/contracts/core/libraries/LoopOps.sol b/contracts/core/libraries/LoopOps.sol index 3a8a19d..480f2f9 100644 --- a/contracts/core/libraries/LoopOps.sol +++ b/contracts/core/libraries/LoopOps.sol @@ -16,4 +16,15 @@ library LoopOps { j = i + 1; } } + + /// @notice Decrements a given integer by 1 without overflow checks. + /// @dev The `unchecked` keyword is used to skip overflow checks, reducing gas costs. + /// This is safe when you know that the variable `i` will not reach the minimum value of `uint256`. + /// @param i The integer to decrement. + /// @return j The decremented integer. + function uncheckedDec(uint256 i) internal pure returns (uint256 j) { + unchecked { + j = i - 1; + } + } } diff --git a/contracts/rights/RightsAssetCustodian.sol b/contracts/rights/RightsAssetCustodian.sol index bf5f67b..84bc14e 100644 --- a/contracts/rights/RightsAssetCustodian.sol +++ b/contracts/rights/RightsAssetCustodian.sol @@ -27,8 +27,7 @@ contract RightsAssetCustodian is Initializable, UUPSUpgradeable, AccessControlle /// @notice Emitted when custodial distribution rights are granted to a distributor. /// @param newCustody The address of the distributor granted custodial rights. /// @param rightsHolder The address of the asset's rights holder. - /// @param timestamp The timestamp indicating when the custodial rights were granted. - event CustodialGranted(address indexed newCustody, address indexed rightsHolder, uint256 timestamp); + event CustodialGranted(address indexed newCustody, address indexed rightsHolder); /// @dev Error that is thrown when a content hash is already registered. error InvalidInactiveDistributor(); @@ -78,7 +77,7 @@ contract RightsAssetCustodian is Initializable, UUPSUpgradeable, AccessControlle _custodiansByHolder[msg.sender].add(distributor); _holdersUnderCustodian[distributor].add(msg.sender); - emit CustodialGranted(distributor, msg.sender, block.timestamp); + emit CustodialGranted(distributor, msg.sender); } /// @notice Checks if the given distributor is a custodian for the specified content holder diff --git a/contracts/rights/RightsPolicyAuthorizer.sol b/contracts/rights/RightsPolicyAuthorizer.sol index 0263d9f..e909859 100644 --- a/contracts/rights/RightsPolicyAuthorizer.sol +++ b/contracts/rights/RightsPolicyAuthorizer.sol @@ -35,14 +35,12 @@ contract RightsPolicyAuthorizer is /// @param policy The policy contract address granted rights. /// @param holder The address of the asset rights holder. /// @param data The data used to initialize the policy. - /// @param timestamp The timestamp indicating when the rights were granted. - event RightsGranted(address indexed policy, address indexed holder, uint256 timestamp, bytes data); + event RightsGranted(address indexed policy, address indexed holder, bytes data); /// @notice Emitted when rights are revoked from a policy for content. /// @param policy The policy contract address whose rights are being revoked. /// @param holder The address of the asset rights holder. - /// @param timestamp The timestamp indicating when the rights were revoked. - event RightsRevoked(address indexed policy, address indexed holder, uint256 timestamp); + event RightsRevoked(address indexed policy, address indexed holder); /// @dev Error thrown when a policy has not been audited or approved for operation. /// @param policy The address of the unaudited policy. @@ -77,14 +75,14 @@ contract RightsPolicyAuthorizer is (bool success, ) = policy.call(abi.encodeCall(IPolicy.initialize, (msg.sender, data))); if (!success) revert InvalidPolicyInitialization("Error during policy initialization call"); _authorizedPolicies[msg.sender].add(policy); // register policy as authorized for the authorizer - emit RightsGranted(policy, msg.sender, block.timestamp, data); + emit RightsGranted(policy, msg.sender, data); } /// @notice Revokes the delegation of rights to a policy contract. /// @param policy The address of the policy contract whose rights delegation is being revoked. function revokePolicy(address policy) external { _authorizedPolicies[msg.sender].remove(policy); - emit RightsRevoked(policy, msg.sender, block.timestamp); + emit RightsRevoked(policy, msg.sender); } /// @dev Verify if the specified policy contract has been delegated the rights by the asset holder. diff --git a/contracts/rights/RightsPolicyManager.sol b/contracts/rights/RightsPolicyManager.sol index d0de909..bb60428 100644 --- a/contracts/rights/RightsPolicyManager.sol +++ b/contracts/rights/RightsPolicyManager.sol @@ -92,21 +92,55 @@ contract RightsPolicyManager is Initializable, UUPSUpgradeable, AccessControlled /// @param account Address of the account to evaluate. /// @param criteria Encoded data containing parameters for access verification. eg: assetId, holder function getActivePolicy(address account, bytes memory criteria) external view returns (bool, address) { - // https://docs.openzeppelin.com/contracts/5.x/api/utils#EnumerableSet-values-struct-EnumerableSet-AddressSet- - // This operation (.values()) will copy the entire storage to memory, which can be quite expensive. - // This is designed to mostly be used by view accessors that are queried without any gas fees. - // Developers should keep in mind that this function has an unbounded cost, - /// and using it as part of a state-changing function may render the function uncallable - /// if the set grows to a point where copying to memory consumes too much gas to fit in a block. - address[] memory policies = _closures[account].values(); + address[] memory policies = getPolicies(account); + uint256 i = policies.length; + + // Get the first active policy in LIFO order and return it + while (i > 0) { + address currentPolicy = policies[i - 1]; + if (isActivePolicy(account, currentPolicy, criteria)) { + return (true, currentPolicy); + } + + // safe unchecked + // limited to i > 0 + i = i.uncheckedDec(); + } + + return (false, address(0)); + } + + /// @notice Retrieves the list of active policies matching the criteria for an account. + /// @param account Address of the account to evaluate. + /// @param criteria Encoded data containing parameters for access verification. eg: assetId, holder + function getActivePolicies(address account, bytes memory criteria) external view returns (address[] memory) { + address[] memory policies = getPolicies(account); + address[] memory filtered = new address[](policies.length); uint256 policiesLen = policies.length; + uint256 j = 0; // filtered cursor for (uint256 i = 0; i < policiesLen; i = i.uncheckedInc()) { - bool comply = isActivePolicy(account, policies[i], criteria); - if (comply) return (true, policies[i]); + if (!isActivePolicy(account, policies[i], criteria)) continue; + filtered[j] = policies[i]; + + // safe unchecked + // limited to i increment = max policy length + j = j.uncheckedDec(); } - return (false, address(0)); + return filtered; + } + + /// @notice Retrieves the list of policys associated with a specific account and content ID. + /// @param account The address of the account for which policies are being retrieved. + function getPolicies(address account) public view returns (address[] memory) { + // https://docs.openzeppelin.com/contracts/5.x/api/utils#EnumerableSet-values-struct-EnumerableSet-AddressSet- + // This operation will copy the entire storage to memory, which can be quite expensive. + // This is designed to mostly be used by view accessors that are queried without any gas fees. + // Developers should keep in mind that this function has an unbounded cost, + /// and using it as part of a state-changing function may render the function uncallable + /// if the set grows to a point where copying to memory consumes too much gas to fit in a block. + return _closures[account].values(); } /// @notice Verifies if a specific policy is active for the provided account and criteria. diff --git a/contracts/syndication/DistributorFactory.sol b/contracts/syndication/DistributorFactory.sol index c87eaf3..5914496 100644 --- a/contracts/syndication/DistributorFactory.sol +++ b/contracts/syndication/DistributorFactory.sol @@ -29,8 +29,7 @@ contract DistributorFactory is UpgradeableBeacon, Pausable, IDistributorFactory /// @notice Event emitted when a new distributor is created. /// @param distributorAddress Address of the newly created distributor. /// @param endpoint Endpoint associated with the new distributor. - /// @param timestamp The timestamp indicating when the distributor was created. - event DistributorCreated(address indexed distributorAddress, string endpoint, uint256 timestamp); + event DistributorCreated(address indexed distributorAddress, string endpoint); /// @notice Error to be thrown when attempting to register an already registered distributor. error DistributorAlreadyRegistered(); @@ -63,7 +62,7 @@ contract DistributorFactory is UpgradeableBeacon, Pausable, IDistributorFactory // initialize storage layout using Distributor contract impl.. bytes memory data = abi.encodeWithSignature("initialize(string,address)", endpoint, msg.sender); address newContract = address(new BeaconProxy(address(this), data)); - emit DistributorCreated(newContract, endpoint, block.timestamp); + emit DistributorCreated(newContract, endpoint); return newContract; } } diff --git a/contracts/syndication/DistributorReferendum.sol b/contracts/syndication/DistributorReferendum.sol index 70da69d..2b780a8 100644 --- a/contracts/syndication/DistributorReferendum.sol +++ b/contracts/syndication/DistributorReferendum.sol @@ -45,24 +45,20 @@ contract DistributorReferendum is /// @notice Event emitted when a distributor is registered /// @param distributor The address of the registered distributor - /// @param timestamp The timestamp indicating when the distributor was registered /// @param paidFees The amount of fees that were paid upon registration - event Registered(address indexed distributor, uint256 timestamp, uint256 paidFees); + event Registered(address indexed distributor, uint256 paidFees); /// @notice Event emitted when a distributor is approved /// @param distributor The address of the approved distributor - /// @param timestamp The timestamp indicating when the distributor was approved - event Approved(address indexed distributor, uint256 timestamp); + event Approved(address indexed distributor); /// @notice Event emitted when a distributor is revoked /// @param distributor The address of the revoked distributor - /// @param timestamp The timestamp indicating when the distributor was revoked - event Revoked(address indexed distributor, uint256 timestamp); + event Revoked(address indexed distributor); /// @notice Emitted when a new period is set - /// @param setBy The address that set the new period /// @param newPeriod The new period that is set, could be in seconds, blocks, or any other unit - event PeriodSet(address indexed setBy, uint256 newPeriod); + event PeriodSet(uint256 newPeriod); /// @notice Error thrown when a distributor contract is invalid /// @param invalid The address of the distributor contract that is invalid @@ -176,7 +172,7 @@ contract DistributorReferendum is // set the distributor active enrollment period.. // after this time the distributor is considered inactive and cannot collect his profits... _enrollmentDeadline[distributor] = block.timestamp + _expirationPeriod; - emit Registered(distributor, block.timestamp, fees); + emit Registered(distributor, fees); } /// @notice Approves a distributor's registration. @@ -184,7 +180,7 @@ contract DistributorReferendum is function approve(address distributor) external restricted onlyValidDistributor(distributor) { _enrollmentsCount++; _approve(uint160(distributor)); - emit Approved(distributor, block.timestamp); + emit Approved(distributor); } /// @notice Revokes the registration of a distributor. @@ -192,14 +188,14 @@ contract DistributorReferendum is function revoke(address distributor) external restricted onlyValidDistributor(distributor) { _enrollmentsCount--; _revoke(uint160(distributor)); - emit Revoked(distributor, block.timestamp); + emit Revoked(distributor); } /// @notice Sets a new expiration period for an enrollment or registration. /// @param newPeriod The new expiration period, in seconds. function setExpirationPeriod(uint256 newPeriod) external restricted { _expirationPeriod = newPeriod; - emit PeriodSet(msg.sender, newPeriod); + emit PeriodSet(newPeriod); } /// @notice Function that should revert when msg.sender is not authorized to upgrade the contract. diff --git a/packages/protocol/package.json b/packages/protocol/package.json index f2c983b..cc34975 100644 --- a/packages/protocol/package.json +++ b/packages/protocol/package.json @@ -1,6 +1,6 @@ { "name": "@synaps3/protocol", - "version": "1.8.1", + "version": "1.9.0", "description": "Core contracts for the Synapse Protocol", "homepage": "https://github.com/Synaps3Protocol/protocol-core-v1#readme", "bugs": { diff --git a/packages/types/package.json b/packages/types/package.json index f6b47b4..ff62e23 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@synaps3/types", - "version": "1.8.1", + "version": "1.9.0", "description": "Essential interfaces and types for Synapse Protocol.", "homepage": "https://github.com/Synaps3Protocol/protocol-core-v1#readme", "bugs": { diff --git a/test/assets/AssetReferendum.t.sol b/test/assets/AssetReferendum.t.sol index 2cab8f1..bfb267b 100644 --- a/test/assets/AssetReferendum.t.sol +++ b/test/assets/AssetReferendum.t.sol @@ -14,7 +14,7 @@ import { C } from "contracts/core/primitives/Constants.sol"; contract AssetReferendumTest is BaseTest { address referendum; - function setUp() public initialize { + function setUp() public initialize { // setup the access manager to use during tests.. referendum = deployAssetReferendum(); } @@ -23,7 +23,7 @@ contract AssetReferendumTest is BaseTest { vm.warp(1641070800); vm.prank(user); vm.expectEmit(true, false, false, true, address(referendum)); - emit AssetReferendum.Submitted(user, 1641070800, 1); + emit AssetReferendum.Submitted(user, 1); IAssetRegistrable(referendum).submit(1); } @@ -39,7 +39,7 @@ contract AssetReferendumTest is BaseTest { vm.warp(1641070805); vm.startPrank(governor); // approve by governance.. vm.expectEmit(false, false, false, true, address(referendum)); - emit AssetReferendum.Approved(assetId, 1641070805); + emit AssetReferendum.Approved(assetId); IAssetRegistrable(referendum).approve(assetId); vm.stopPrank(); } @@ -60,7 +60,7 @@ contract AssetReferendumTest is BaseTest { vm.warp(1641070805); vm.prank(governor); // approve by governance.. vm.expectEmit(false, false, false, true, address(referendum)); - emit AssetReferendum.Rejected(assetId, 1641070805); + emit AssetReferendum.Rejected(assetId); IAssetRegistrable(referendum).reject(assetId); } @@ -84,10 +84,9 @@ contract AssetReferendumTest is BaseTest { IAssetRegistrable(referendum).approve(assetId); vm.expectEmit(false, false, false, true, address(referendum)); - emit AssetReferendum.Revoked(assetId, 1641070805); + emit AssetReferendum.Revoked(assetId); IAssetRegistrable(referendum).revoke(assetId); vm.stopPrank(); // reject by governance.. - } function test_Revoked_RevokedValidStates() public { diff --git a/test/syndication/DistributorReferendum.t.sol b/test/syndication/DistributorReferendum.t.sol index 6dc2c0b..da86949 100644 --- a/test/syndication/DistributorReferendum.t.sol +++ b/test/syndication/DistributorReferendum.t.sol @@ -56,7 +56,7 @@ contract DistributorReferendumTest is BaseTest { uint256 expireIn = 3600; // seconds vm.prank(governor); vm.expectEmit(true, false, false, true, address(referendum)); - emit DistributorReferendum.PeriodSet(governor, expireIn); + emit DistributorReferendum.PeriodSet(expireIn); IDistributorExpirable(referendum).setExpirationPeriod(expireIn); } @@ -76,7 +76,7 @@ contract DistributorReferendumTest is BaseTest { ILedgerVault(ledger).deposit(admin, expectedFees, token); vm.expectEmit(true, false, false, true, address(referendum)); - emit DistributorReferendum.Registered(distributor, 1641070803, expectedFees); + emit DistributorReferendum.Registered(distributor, expectedFees); IDistributorRegistrable(referendum).register(distributor, token); vm.stopPrank(); } @@ -136,7 +136,7 @@ contract DistributorReferendumTest is BaseTest { vm.warp(1641070802); // after register a distributor a Registered event is expected vm.expectEmit(true, false, false, true, address(referendum)); - emit DistributorReferendum.Approved(distributor, 1641070802); + emit DistributorReferendum.Approved(distributor); IDistributorRegistrable(referendum).approve(distributor); } @@ -163,7 +163,7 @@ contract DistributorReferendumTest is BaseTest { vm.warp(1641070801); // after register a distributor a Registered event is expected vm.expectEmit(true, false, false, true, address(referendum)); - emit DistributorReferendum.Revoked(distributor, 1641070801); + emit DistributorReferendum.Revoked(distributor); IDistributorRegistrable(referendum).revoke(distributor); }