From b72007a4c2b4d97babe2daf3a20cdb9e9ebc0873 Mon Sep 17 00:00:00 2001 From: Quazia Date: Mon, 3 Jun 2024 17:40:00 -0400 Subject: [PATCH] fix(quest budget): revise approval handling amounts --- .../11155111/run-1717450347.json | 178 ++++++++++++++++++ .../11155111/run-1717450764.json | 178 ++++++++++++++++++ .../11155111/run-latest.json | 136 ++++++------- contracts/QuestBudget.sol | 6 +- contracts/interfaces/IQuestFactory.sol | 3 +- test/QuestBudget.t.sol | 28 ++- test/mocks/QuestFactoryMock.sol | 9 +- 7 files changed, 458 insertions(+), 80 deletions(-) create mode 100644 broadcast/QuestBudget.s.sol/11155111/run-1717450347.json create mode 100644 broadcast/QuestBudget.s.sol/11155111/run-1717450764.json diff --git a/broadcast/QuestBudget.s.sol/11155111/run-1717450347.json b/broadcast/QuestBudget.s.sol/11155111/run-1717450347.json new file mode 100644 index 00000000..5a9b0852 --- /dev/null +++ b/broadcast/QuestBudget.s.sol/11155111/run-1717450347.json @@ -0,0 +1,178 @@ +{ + "transactions": [ + { + "hash": "0xddd217f82ff48dbcbd6d290d0fab6b976ec8d3698a9dd665979510947b98fbb2", + "transactionType": "CREATE", + "contractName": "QuestBudget", + "contractAddress": "0xF18CA2b222c7E1c532dA4CA8eBC0c9f0fCBE9Fe8", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xe662f9575634dbbca894b756d1a19a851c824f00", + "gas": "0x27f5e8", + "value": "0x0", + "data": "0x608080604052346100b95733638b78c6d819553360007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a363409feecd19805490600182166100ab576001600160401b039160011c6002600160401b031901610071575b6122a483816100bf8239f35b6002600160411b03905560209081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29080a13880610065565b63f92ee8a96000526004601cfd5b600080fdfe608080604052600436101561001a575b50361561001857005b005b600090813560e01c90816301ffc9a714610fec5750806310098ad514610fc857806319cbad0614610fa35780631c9fd0c314610f595780632569296214610f0e5780634359d28a14610e1e578063439fab9114610bf2578063451cc19114610bb357806354d1f13d14610b6d578063578bcf3514610b355780635aef467a14610afd57806361400c9914610ac0578063627bbbaa14610a53578063715018a614610a0d578063774c33ab146109cb5780638da5cb5b146109a057806392f5e0eb1461097a578063bc197c81146108d5578063d2514e8414610891578063de0580dc14610569578063e15cfcf5146104a1578063f04e283e14610420578063f1c30ec0146103db578063f23a6e6114610367578063f2fde38b146102f9578063f8724aba146102d1578063f9a802c31461020d578063fa4ca9b1146101d0578063fe9fbb80146101a25763fee81cf40361000f573461019f57602036600319011261019f576101866110f2565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b503461019f57602036600319011261019f5760206101c66101c16110f2565b612152565b6040519015158152f35b503461019f57602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c66102073660048601611163565b90611c0a565b503461019f57604036600319011261019f576102276110f2565b604051627eeac760e11b81523060048201526024803590820181905260209390926001600160a01b03168483604481845afa9283156102c657829361028e575b5090610286936040928252600286528282209082528552205490611bfd565b604051908152f35b919092508482813d83116102bf575b6102a781836111d7565b810103126102ba57905191610286610267565b600080fd5b503d61029d565b6040513d84823e3d90fd5b503461019f57604036600319011261019f5760206102866102f06110f2565b602435906121a7565b50602036600319011261019f5761030e6110f2565b610316612222565b8060601b1561035a576001600160a01b0316638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a35580f35b637448fbae82526004601cfd5b503461019f5760a036600319011261019f576103816110f2565b5061038a611108565b5060843567ffffffffffffffff81116103d7576103ab903690600401611163565b505060206040517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b5080fd5b503461019f57602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c66104123660048601611163565b9061041b612222565b61177c565b50602036600319011261019f576104356110f2565b61043d612222565b63389a75e1600c528082526020600c20805442116104945790826001600160a01b03925516638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a35580f35b636f5e881883526004601cfd5b503461019f57602036600319011261019f578060043567ffffffffffffffff8111610566576104d4903690600401611163565b91906104de612222565b6001600160a01b03825416803b156105625783918360446040518097819682957fe15cfcf500000000000000000000000000000000000000000000000000000000845260206004850152816024850152848401378181018301849052601f01601f191681010301925af180156102c657610556575080f35b61055f906111c3565b80f35b8280fd5b50fd5b503461019f5761016036600319011261019f5760043563ffffffff811681036103d757610594611108565b9067ffffffffffffffff9060c43582811161088d576105b790369060040161124c565b9160e435818111610889576105d090369060040161124c565b9061010435818111610885576105ea90369060040161124c565b90610124359081116108855761060490369060040161124c565b9161060e33612152565b1561085b5761062160a435608435611bea565b6001600160a01b03885416906040517f67dfa3e7000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610850578a9161080b575b509061271061068061ffff610687941683611bea565b0490611bfd565b906014526034526f095ea7b3000000000000000000000000875260208760446010828a5af13d1560018951141716156107fe576001600160a01b0395936107896020969461077663ffffffff956107638c96876034526107518d8954169a6040519e8f9d8e9c8d9b7fde0580dc000000000000000000000000000000000000000000000000000000008d521660048c01521660248a015260443560448a015260643560648a015260843560848a015260a43560a48a015261016060c48a01526101648901906113ea565b8781036003190160e4890152906113ea565b85810360031901610104870152906113ea565b83810360031901610124850152906113ea565b61014480359083015203925af19081156102c65782916107b8575b6020826001600160a01b0360405191168152f35b90506020813d6020116107f6575b816107d3602093836111d7565b810103126103d757516001600160a01b03811681036103d75760209150386107a4565b3d91506107c6565b633e3f8f7387526004601cfd5b90506020813d602011610848575b81610826602093836111d7565b8101031261084457519061ffff82168203610844579061271061066a565b8980fd5b3d9150610819565b6040513d8c823e3d90fd5b60046040517f82b42900000000000000000000000000000000000000000000000000000000008152fd5b8680fd5b8580fd5b8480fd5b503461019f57602036600319011261019f5761028660209160406108b36110f2565b916001600160a01b036108c584612189565b9316815260018552205490611bfd565b503461019f5760a036600319011261019f576108ef6110f2565b506108f8611108565b5067ffffffffffffffff6044358181116105625761091a903690600401611132565b505060643581811161056257610934903690600401611132565b50506084359081116103d75761094e903690600401611163565b505060206040517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b503461019f578060031936011261019f576001600160a01b036020915416604051908152f35b503461019f578060031936011261019f576020638b78c6d819546001600160a01b0360405191168152f35b503461019f57604036600319011261019f5760406020916001600160a01b036109f26110f2565b16815260028352818120602435825283522054604051908152f35b508060031936011261019f57610a21612222565b80638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35580f35b503461019f57602036600319011261019f576004358015158091036103d757610a7a612222565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000083549260a01b16911617815580f35b503461019f57602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c6610af73660048601611132565b906120c0565b50602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c6610b2f3660048601611163565b90611473565b503461019f57602036600319011261019f5760406020916001600160a01b03610b5c6110f2565b168152600183522054604051908152f35b508060031936011261019f5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b503461019f57602036600319011261019f5760043567ffffffffffffffff81116103d75790610be86020923690600401611163565b5050604051908152f35b503461019f576020806003193601126103d75767ffffffffffffffff90600435828111610e1a57610c27903690600401611163565b63409feecd1980546003808355949392919080610df5575b5090820191838184031261088557803590868211610df157019160608382031261088557604051610c6f81611191565b610c788461111e565b8152610c8585850161111e565b9385820194855260408101359088821161084457019180601f84011215610ded578235978811610dd95760059288841b9060405199610cc68984018c6111d7565b8a5287808b0192820101928311610dd55787809101915b838310610dbd5750505050604081019687526001600160a01b0393848092511680638b78c6d81955897f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3511673ffffffffffffffffffffffffffffffffffffffff19885416178755865b86518051821015610d805781831b018501518416885285855260408820805460ff19166001179055610d7b9061126a565b610d4a565b88848781610d8c578280f35b60027fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d292556001815280a181808280f35b8190610dc88461111e565b8152019101908790610cdd565b8a80fd5b602489634e487b7160e01b81526041600452fd5b8880fd5b8780fd5b600181811c14303b1015610e0d5760ff1b1b38610c3f565b63f92ee8a988526004601cfd5b8380fd5b503461019f57604036600319011261019f5767ffffffffffffffff60043581811161056257610e51903690600401611132565b91602435908111610e1a57610e6a903690600401611132565b610e75939193612222565b808203610ee457845b828110610e89578580f35b610e9481838761212c565b359081151580920361088557610eab81858761212c565b35916001600160a01b038316809303610df157610edf9288526003602052604088209060ff8019835416911617905561126a565b610e7e565b60046040517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b508060031936011261019f5763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461019f57602036600319011261019f576001600160a01b03610f7b6110f2565b610f83612222565b1673ffffffffffffffffffffffffffffffffffffffff1982541617815580f35b503461019f578060031936011261019f5760ff6020915460a01c166040519015158152f35b503461019f57602036600319011261019f576020610286610fe76110f2565b612189565b9050346103d75760203660031901126103d7576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361056257602092507f4e2312e0000000000000000000000000000000000000000000000000000000008114908115611062575b5015158152f35b7f5cd687ca00000000000000000000000000000000000000000000000000000000811491508115611095575b503861105b565b7f42606236000000000000000000000000000000000000000000000000000000008114915081156110c8575b503861108e565b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014386110c1565b600435906001600160a01b03821682036102ba57565b602435906001600160a01b03821682036102ba57565b35906001600160a01b03821682036102ba57565b9181601f840112156102ba5782359167ffffffffffffffff83116102ba576020808501948460051b0101116102ba57565b9181601f840112156102ba5782359167ffffffffffffffff83116102ba57602083818601950101116102ba57565b6060810190811067ffffffffffffffff8211176111ad57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116111ad57604052565b90601f8019910116810190811067ffffffffffffffff8211176111ad57604052565b67ffffffffffffffff81116111ad57601f01601f191660200190565b929192611221826111f9565b9161122f60405193846111d7565b8294818452818301116102ba578281602093846000960137010152565b9080601f830112156102ba5781602061126793359101611215565b90565b60001981146112795760010190565b634e487b7160e01b600052601160045260246000fd5b906020828203126102ba57813567ffffffffffffffff928382116102ba5701916080838303126102ba576040519260808401848110838211176111ad57604052803560038110156102ba5784526112e86020820161111e565b60208501526112f96040820161111e565b604085015260608101359182116102ba57019080601f830112156102ba5781602061132693359101611215565b606082015290565b60005b8381106113415750506000910152565b8181015183820152602001611331565b90602080838303126102ba57825167ffffffffffffffff938482116102ba5701926060848403126102ba576040519361138985611191565b80518552828101518386015260408101519182116102ba570182601f820112156102ba578051906113b9826111f9565b936113c760405195866111d7565b8285528383830101116102ba57826113e2938501910161132e565b604082015290565b906020916114038151809281855285808601910161132e565b601f01601f1916010190565b919261126795949160a0946001600160a01b0380921685521660208401526040830152606082015281608082015201906113ea565b908160209103126102ba57604051906020820182811067ffffffffffffffff8211176111ad5760405251815290565b61147f9181019061128f565b80516000906003811015611768576114eb57506114a9606082015160208082518301019101611444565b51908134036114b9575050600190565b6020015160405163cece04c560e01b81526001600160a01b0390911660048201526024810191909152604490fd5b0390fd5b81516003811015611768576001036115e257611514606083015160208082518301019101611444565b9160208101906001600160a01b03926020816064601c82604089895116970151968a519760405198606052306040526bffffffffffffffffffffffff199060601b16602c526f23b872dd000000000000000000000000600c525af13d1560018351141716156115d557606052604052611590308383511661223f565b92518093106115a157505050600190565b51166114e760405192839263cece04c560e01b845260048401602090939291936001600160a01b0360408201951681520152565b637939f42490526004601cfd5b90805160038110156117545760020361175057606081015161160e602091828082518301019101611351565b818301906001600160a01b0392838351169184604080970151168151838301948551918985015193823b1561174c57908b809493926116648d5197889687958694637921219560e11b865230906004870161140f565b03925af1801561174257611729575b50835190518651627eeac760e11b8152306004820152602481019190915291908190839087168180604481015b03915afa96871561171e57966116ee575b5050518094106116c45750505050600190565b51915163cece04c560e01b815291166001600160a01b031660048201526024810191909152604490fd5b9080929650813d8311611717575b61170681836111d7565b810103126102ba57519338806116b1565b503d6116fc565b8651903d90823e3d90fd5b918091976117396116a0946111c3565b97919250611673565b87513d8a823e3d90fd5b8b80fd5b5090565b602483634e487b7160e01b81526021600452fd5b602482634e487b7160e01b81526021600452fd5b6117889181019061128f565b80516003811015611bc057158015611bd6575b1561198e576117b7606082015160208082518301019101611444565b906001600160a01b03604081602084015116920151169151801560001461198857506117e281612189565b915b68929eee149b4bd21268923084541461197a57308455811561194a5761180983612189565b8111611909578260005260016020526040600020611828828254611bfd565b90558261189857600038818084865af11561188a577fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542915b604080516001600160a01b039092168252602082019290925290819081015b0390a2389055600190565b63b12d13eb6000526004601cfd5b81601452806034526fa9059cbb000000000000000000000000600052602060006044601082875af13d156001600051141716156118fb577fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542916000603452611860565b6390b8ec186000526004601cfd5b826114e761191682612189565b92604051938493632e2a182f60e11b8552600485016040919493926001600160a01b03606083019616825260208201520152565b6040516317e3057d60e31b81526001600160a01b0384811660048301529290921660248301526044820152606490fd5b63ab143c066000526004601cfd5b916117e4565b80516003811015611bc057600203611bba576060810151906119ba602092838082518301019101611351565b6001600160a01b0391828482015116926040809201511690825181868501518015600014611bb4575051627eeac760e11b8152306004820152602481018290528681604481895afa908115611ba957908391600091611b79575b50945b01519068929eee149b4bd21268963088541461197a573088558415611b4a57611a4082886121a7565b8611611b085786600052600281528360002090826000525282600020611a67868254611bfd565b9055853b156102ba5784600091611a9385519485938493637921219560e11b855289306004870161140f565b038183895af18015611afd579161187f917fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542959493611aee575b505192839283602090939291936001600160a01b0360408201951681520152565b611af7906111c3565b38611acd565b82513d6000823e3d90fd5b83876114e788611b1886846121a7565b9351938493632e2a182f60e11b8552600485016040919493926001600160a01b03606083019616825260208201520152565b83516317e3057d60e31b81526001600160a01b0388811660048301528616602482015260448101879052606490fd5b91508782813d8311611ba2575b611b9081836111d7565b8101031261019f575082905138611a14565b503d611b86565b83513d6000823e3d90fd5b94611a17565b50600090565b634e487b7160e01b600052602160045260246000fd5b5080516003811015611bc05760011461179b565b8181029291811591840414171561127957565b9190820180921161127957565b90611c1433612152565b1561085b57611267919060009160ff835460a01c161561085b57611c3a9181019061128f565b805160038110156117545760011480156120ae575b15611e3057611c6b606082015160208082518301019101611444565b602082016001600160a01b0390611c8482825116612189565b8351818111611dfe5750508160409151169301511690519068929eee149b4bd212689330855414611df1573085558115611dbe57611cc184612189565b8311611db057838152600160205260408120611cde848254611bfd565b905583611d44578038818086865af115611d375750604080516001600160a01b03909216825260208201929092527fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542918190810161187f565b63b12d13eb90526004601cfd5b81601452826034526fa9059cbb00000000000000000000000081526020816044601082885af13d156001835114171615611da3576034527fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435429190611860565b6390b8ec1890526004601cfd5b82846114e761191682612189565b506040516317e3057d60e31b81526001600160a01b03848116600483015291909116602482015260448101829052606490fd5b63ab143c0690526004601cfd5b8251604051632e2a182f60e11b81529085166001600160a01b0316600482015260248101929092526044820152606490fd5b805160038110156117545760020361175057606081015191611e5c602093848082518301019101611351565b908383016001600160a01b039182825116908451936040938885518095627eeac760e11b82528180611ea960049b308d8401602090939291936001600160a01b0360408201951681520152565b03915afa9384156120a4578394612075575b508887019384519080821161203a57505081859151169701511693838651935196015168929eee149b4bd2126898308a541461202e57308a558615611ff957611f04858a6121a7565b8811611fb957888452600281528584209085855252848320611f27888254611bfd565b9055873b15610562578291611f5287928988519788958695637921219560e11b87523090870161140f565b0381838a5af1908115611fae57509161187f917fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542959493611aee57505192839283602090939291936001600160a01b0360408201951681520152565b8351903d90823e3d90fd5b88836114e78a89611fca8a866121a7565b9051632e2a182f60e11b81526001600160a01b0390951693850193845260208401526040830152829160600190565b85516317e3057d60e31b81526001600160a01b03808b168286019081529089166020820152604081018a905281906060010390fd5b8263ab143c068552601cfd5b86945087936114e79351169451948594632e2a182f60e11b865285016040919493926001600160a01b03606083019616825260208201520152565b9093508881813d831161209d575b61208d81836111d7565b8101031261056257519238611ebb565b503d612083565b85513d85823e3d90fd5b50805160038110156117545715611c4f565b60005b8281106120d257505050600190565b8060051b820135601e19833603018112156102ba57820180359067ffffffffffffffff82116102ba576020019080360382136102ba5761211191611c0a565b156121245761211f9061126a565b6120c3565b505050600090565b919081101561213c5760051b0190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0380911680600052600360205260ff6040600020541691821561217b57505090565b638b78c6d819541614919050565b6001600160a01b03811661219c57504790565b61126790309061223f565b604051627eeac760e11b81523060048201526024810192909252602090829060449082906001600160a01b03165afa908115612216576000916121e8575090565b906020823d821161220e575b81612201602093836111d7565b8101031261019f57505190565b3d91506121f4565b6040513d6000823e3d90fd5b638b78c6d81954330361223157565b6382b429006000526004601cfd5b602460106020939284936014526f70a082310000000000000000000000006000525afa601f3d1116602051029056fea2646970667358221220851c0fe8990ee113c483f74c36815620cb965826000e714f19fd3544f654599864736f6c63430008130033", + "nonce": "0xb8", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa2c89750cd3938a1058837409ef38cbf744d3a09f648e96f6d7f0f496c62d863", + "transactionType": "CREATE", + "contractName": null, + "contractAddress": "0x4a761aa6726E8249cCE347058B23AC680a71865F", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xe662f9575634dbbca894b756d1a19a851c824f00", + "gas": "0x13e46", + "value": "0x0", + "data": "0x602c3d8160093d39f33d3d3d3d363d3d37363d73f18ca2b222c7e1c532da4ca8ebc0c9f0fcbe9fe85af43d3d93803e602a57fd5bf3", + "nonce": "0xb9", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x96cc37d32f4dc6b4083871f8822658883322bb8e538cb85bb84110537a1b5e75", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x4a761aa6726E8249cCE347058B23AC680a71865F", + "function": "initialize(bytes)", + "arguments": [ + "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000017f8ad14a2e745ea0f756bd57cd4852400be78c00000000000000000000000052629961f71c1c2564c5aa22372cb1b9fa9eba3e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000017f8ad14a2e745ea0f756bd57cd4852400be78c" + ], + "transaction": { + "type": "0x02", + "from": "0xe662f9575634dbbca894b756d1a19a851c824f00", + "to": "0x4a761aa6726e8249cce347058b23ac680a71865f", + "gas": "0x27e8b", + "value": "0x0", + "data": "0x439fab91000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000017f8ad14a2e745ea0f756bd57cd4852400be78c00000000000000000000000052629961f71c1c2564c5aa22372cb1b9fa9eba3e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000017f8ad14a2e745ea0f756bd57cd4852400be78c", + "nonce": "0xba", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xddd217f82ff48dbcbd6d290d0fab6b976ec8d3698a9dd665979510947b98fbb2", + "transactionIndex": "0xd", + "blockHash": "0xe767cd8bc38c7b585f60a54b4581ede7145f4ac94b585d842511ec322b4ee6fb", + "blockNumber": "0x5c11a8", + "from": "0xE662f9575634dbbca894B756d1A19A851c824f00", + "to": null, + "cumulativeGasUsed": "0x37debe", + "gasUsed": "0x1ebf61", + "contractAddress": "0xF18CA2b222c7E1c532dA4CA8eBC0c9f0fCBE9Fe8", + "logs": [ + { + "address": "0xF18CA2b222c7E1c532dA4CA8eBC0c9f0fCBE9Fe8", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f00" + ], + "data": "0x", + "blockHash": "0xe767cd8bc38c7b585f60a54b4581ede7145f4ac94b585d842511ec322b4ee6fb", + "blockNumber": "0x5c11a8", + "transactionHash": "0xddd217f82ff48dbcbd6d290d0fab6b976ec8d3698a9dd665979510947b98fbb2", + "transactionIndex": "0xd", + "logIndex": "0x31", + "removed": false + }, + { + "address": "0xF18CA2b222c7E1c532dA4CA8eBC0c9f0fCBE9Fe8", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0xe767cd8bc38c7b585f60a54b4581ede7145f4ac94b585d842511ec322b4ee6fb", + "blockNumber": "0x5c11a8", + "transactionHash": "0xddd217f82ff48dbcbd6d290d0fab6b976ec8d3698a9dd665979510947b98fbb2", + "transactionIndex": "0xd", + "logIndex": "0x32", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000800000000000804000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000001020000000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000004000000000000000020000000000000000000000000000200000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xf3f97d97" + }, + { + "transactionHash": "0xa2c89750cd3938a1058837409ef38cbf744d3a09f648e96f6d7f0f496c62d863", + "transactionIndex": "0xe", + "blockHash": "0xe767cd8bc38c7b585f60a54b4581ede7145f4ac94b585d842511ec322b4ee6fb", + "blockNumber": "0x5c11a8", + "from": "0xE662f9575634dbbca894B756d1A19A851c824f00", + "to": null, + "cumulativeGasUsed": "0x38d396", + "gasUsed": "0xf4d8", + "contractAddress": "0x4a761aa6726E8249cCE347058B23AC680a71865F", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xf3f97d97" + }, + { + "transactionHash": "0x96cc37d32f4dc6b4083871f8822658883322bb8e538cb85bb84110537a1b5e75", + "transactionIndex": "0xf", + "blockHash": "0xe767cd8bc38c7b585f60a54b4581ede7145f4ac94b585d842511ec322b4ee6fb", + "blockNumber": "0x5c11a8", + "from": "0xE662f9575634dbbca894B756d1A19A851c824f00", + "to": "0x4a761aa6726E8249cCE347058B23AC680a71865F", + "cumulativeGasUsed": "0x3aa1e2", + "gasUsed": "0x1ce4c", + "contractAddress": null, + "logs": [ + { + "address": "0x4a761aa6726E8249cCE347058B23AC680a71865F", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000017f8ad14a2e745ea0f756bd57cd4852400be78c" + ], + "data": "0x", + "blockHash": "0xe767cd8bc38c7b585f60a54b4581ede7145f4ac94b585d842511ec322b4ee6fb", + "blockNumber": "0x5c11a8", + "transactionHash": "0x96cc37d32f4dc6b4083871f8822658883322bb8e538cb85bb84110537a1b5e75", + "transactionIndex": "0xf", + "logIndex": "0x33", + "removed": false + }, + { + "address": "0x4a761aa6726E8249cCE347058B23AC680a71865F", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xe767cd8bc38c7b585f60a54b4581ede7145f4ac94b585d842511ec322b4ee6fb", + "blockNumber": "0x5c11a8", + "transactionHash": "0x96cc37d32f4dc6b4083871f8822658883322bb8e538cb85bb84110537a1b5e75", + "transactionIndex": "0xf", + "logIndex": "0x34", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000400000000000001000000000000000000000800000000000000020000000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000000000000000002000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000100000004000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xf3f97d97" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1717450347, + "chain": 11155111, + "commit": "4212f67" +} \ No newline at end of file diff --git a/broadcast/QuestBudget.s.sol/11155111/run-1717450764.json b/broadcast/QuestBudget.s.sol/11155111/run-1717450764.json new file mode 100644 index 00000000..6ace1b26 --- /dev/null +++ b/broadcast/QuestBudget.s.sol/11155111/run-1717450764.json @@ -0,0 +1,178 @@ +{ + "transactions": [ + { + "hash": "0xc9d8cd65ca990df31dcb36b88b4732cf0f06f895ac6b1d378907407eeb86bdc8", + "transactionType": "CREATE", + "contractName": "QuestBudget", + "contractAddress": "0x2AE565e22c07B4D850a258bFce8aC3cDAeEc1E32", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xe662f9575634dbbca894b756d1a19a851c824f00", + "gas": "0x27f5e8", + "value": "0x0", + "data": "0x608080604052346100b95733638b78c6d819553360007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a363409feecd19805490600182166100ab576001600160401b039160011c6002600160401b031901610071575b6122a483816100bf8239f35b6002600160411b03905560209081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29080a13880610065565b63f92ee8a96000526004601cfd5b600080fdfe608080604052600436101561001a575b50361561001857005b005b600090813560e01c90816301ffc9a714610fec5750806310098ad514610fc857806319cbad0614610fa35780631c9fd0c314610f595780632569296214610f0e5780634359d28a14610e1e578063439fab9114610bf2578063451cc19114610bb357806354d1f13d14610b6d578063578bcf3514610b355780635aef467a14610afd57806361400c9914610ac0578063627bbbaa14610a53578063715018a614610a0d578063774c33ab146109cb5780638da5cb5b146109a057806392f5e0eb1461097a578063bc197c81146108d5578063d2514e8414610891578063de0580dc14610569578063e15cfcf5146104a1578063f04e283e14610420578063f1c30ec0146103db578063f23a6e6114610367578063f2fde38b146102f9578063f8724aba146102d1578063f9a802c31461020d578063fa4ca9b1146101d0578063fe9fbb80146101a25763fee81cf40361000f573461019f57602036600319011261019f576101866110f2565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b503461019f57602036600319011261019f5760206101c66101c16110f2565b612152565b6040519015158152f35b503461019f57602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c66102073660048601611163565b90611c0a565b503461019f57604036600319011261019f576102276110f2565b604051627eeac760e11b81523060048201526024803590820181905260209390926001600160a01b03168483604481845afa9283156102c657829361028e575b5090610286936040928252600286528282209082528552205490611bfd565b604051908152f35b919092508482813d83116102bf575b6102a781836111d7565b810103126102ba57905191610286610267565b600080fd5b503d61029d565b6040513d84823e3d90fd5b503461019f57604036600319011261019f5760206102866102f06110f2565b602435906121a7565b50602036600319011261019f5761030e6110f2565b610316612222565b8060601b1561035a576001600160a01b0316638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a35580f35b637448fbae82526004601cfd5b503461019f5760a036600319011261019f576103816110f2565b5061038a611108565b5060843567ffffffffffffffff81116103d7576103ab903690600401611163565b505060206040517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b5080fd5b503461019f57602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c66104123660048601611163565b9061041b612222565b61177c565b50602036600319011261019f576104356110f2565b61043d612222565b63389a75e1600c528082526020600c20805442116104945790826001600160a01b03925516638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a35580f35b636f5e881883526004601cfd5b503461019f57602036600319011261019f578060043567ffffffffffffffff8111610566576104d4903690600401611163565b91906104de612222565b6001600160a01b03825416803b156105625783918360446040518097819682957fe15cfcf500000000000000000000000000000000000000000000000000000000845260206004850152816024850152848401378181018301849052601f01601f191681010301925af180156102c657610556575080f35b61055f906111c3565b80f35b8280fd5b50fd5b503461019f5761016036600319011261019f5760043563ffffffff811681036103d757610594611108565b9067ffffffffffffffff9060c43582811161088d576105b790369060040161124c565b9160e435818111610889576105d090369060040161124c565b9061010435818111610885576105ea90369060040161124c565b90610124359081116108855761060490369060040161124c565b9161060e33612152565b1561085b5761062160a435608435611bea565b6001600160a01b03885416906040517f67dfa3e7000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610850578a9161080b575b509061271061068061ffff610687941683611bea565b0490611bfd565b906014526034526f095ea7b3000000000000000000000000875260208760446010828a5af13d1560018951141716156107fe576001600160a01b0395936107896020969461077663ffffffff956107638c96876034526107518d8954169a6040519e8f9d8e9c8d9b7fde0580dc000000000000000000000000000000000000000000000000000000008d521660048c01521660248a015260443560448a015260643560648a015260843560848a015260a43560a48a015261016060c48a01526101648901906113ea565b8781036003190160e4890152906113ea565b85810360031901610104870152906113ea565b83810360031901610124850152906113ea565b61014480359083015203925af19081156102c65782916107b8575b6020826001600160a01b0360405191168152f35b90506020813d6020116107f6575b816107d3602093836111d7565b810103126103d757516001600160a01b03811681036103d75760209150386107a4565b3d91506107c6565b633e3f8f7387526004601cfd5b90506020813d602011610848575b81610826602093836111d7565b8101031261084457519061ffff82168203610844579061271061066a565b8980fd5b3d9150610819565b6040513d8c823e3d90fd5b60046040517f82b42900000000000000000000000000000000000000000000000000000000008152fd5b8680fd5b8580fd5b8480fd5b503461019f57602036600319011261019f5761028660209160406108b36110f2565b916001600160a01b036108c584612189565b9316815260018552205490611bfd565b503461019f5760a036600319011261019f576108ef6110f2565b506108f8611108565b5067ffffffffffffffff6044358181116105625761091a903690600401611132565b505060643581811161056257610934903690600401611132565b50506084359081116103d75761094e903690600401611163565b505060206040517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b503461019f578060031936011261019f576001600160a01b036020915416604051908152f35b503461019f578060031936011261019f576020638b78c6d819546001600160a01b0360405191168152f35b503461019f57604036600319011261019f5760406020916001600160a01b036109f26110f2565b16815260028352818120602435825283522054604051908152f35b508060031936011261019f57610a21612222565b80638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35580f35b503461019f57602036600319011261019f576004358015158091036103d757610a7a612222565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000083549260a01b16911617815580f35b503461019f57602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c6610af73660048601611132565b906120c0565b50602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c6610b2f3660048601611163565b90611473565b503461019f57602036600319011261019f5760406020916001600160a01b03610b5c6110f2565b168152600183522054604051908152f35b508060031936011261019f5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b503461019f57602036600319011261019f5760043567ffffffffffffffff81116103d75790610be86020923690600401611163565b5050604051908152f35b503461019f576020806003193601126103d75767ffffffffffffffff90600435828111610e1a57610c27903690600401611163565b63409feecd1980546003808355949392919080610df5575b5090820191838184031261088557803590868211610df157019160608382031261088557604051610c6f81611191565b610c788461111e565b8152610c8585850161111e565b9385820194855260408101359088821161084457019180601f84011215610ded578235978811610dd95760059288841b9060405199610cc68984018c6111d7565b8a5287808b0192820101928311610dd55787809101915b838310610dbd5750505050604081019687526001600160a01b0393848092511680638b78c6d81955897f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3511673ffffffffffffffffffffffffffffffffffffffff19885416178755865b86518051821015610d805781831b018501518416885285855260408820805460ff19166001179055610d7b9061126a565b610d4a565b88848781610d8c578280f35b60027fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d292556001815280a181808280f35b8190610dc88461111e565b8152019101908790610cdd565b8a80fd5b602489634e487b7160e01b81526041600452fd5b8880fd5b8780fd5b600181811c14303b1015610e0d5760ff1b1b38610c3f565b63f92ee8a988526004601cfd5b8380fd5b503461019f57604036600319011261019f5767ffffffffffffffff60043581811161056257610e51903690600401611132565b91602435908111610e1a57610e6a903690600401611132565b610e75939193612222565b808203610ee457845b828110610e89578580f35b610e9481838761212c565b359081151580920361088557610eab81858761212c565b35916001600160a01b038316809303610df157610edf9288526003602052604088209060ff8019835416911617905561126a565b610e7e565b60046040517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b508060031936011261019f5763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461019f57602036600319011261019f576001600160a01b03610f7b6110f2565b610f83612222565b1673ffffffffffffffffffffffffffffffffffffffff1982541617815580f35b503461019f578060031936011261019f5760ff6020915460a01c166040519015158152f35b503461019f57602036600319011261019f576020610286610fe76110f2565b612189565b9050346103d75760203660031901126103d7576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361056257602092507f4e2312e0000000000000000000000000000000000000000000000000000000008114908115611062575b5015158152f35b7f5cd687ca00000000000000000000000000000000000000000000000000000000811491508115611095575b503861105b565b7f42606236000000000000000000000000000000000000000000000000000000008114915081156110c8575b503861108e565b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014386110c1565b600435906001600160a01b03821682036102ba57565b602435906001600160a01b03821682036102ba57565b35906001600160a01b03821682036102ba57565b9181601f840112156102ba5782359167ffffffffffffffff83116102ba576020808501948460051b0101116102ba57565b9181601f840112156102ba5782359167ffffffffffffffff83116102ba57602083818601950101116102ba57565b6060810190811067ffffffffffffffff8211176111ad57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116111ad57604052565b90601f8019910116810190811067ffffffffffffffff8211176111ad57604052565b67ffffffffffffffff81116111ad57601f01601f191660200190565b929192611221826111f9565b9161122f60405193846111d7565b8294818452818301116102ba578281602093846000960137010152565b9080601f830112156102ba5781602061126793359101611215565b90565b60001981146112795760010190565b634e487b7160e01b600052601160045260246000fd5b906020828203126102ba57813567ffffffffffffffff928382116102ba5701916080838303126102ba576040519260808401848110838211176111ad57604052803560038110156102ba5784526112e86020820161111e565b60208501526112f96040820161111e565b604085015260608101359182116102ba57019080601f830112156102ba5781602061132693359101611215565b606082015290565b60005b8381106113415750506000910152565b8181015183820152602001611331565b90602080838303126102ba57825167ffffffffffffffff938482116102ba5701926060848403126102ba576040519361138985611191565b80518552828101518386015260408101519182116102ba570182601f820112156102ba578051906113b9826111f9565b936113c760405195866111d7565b8285528383830101116102ba57826113e2938501910161132e565b604082015290565b906020916114038151809281855285808601910161132e565b601f01601f1916010190565b919261126795949160a0946001600160a01b0380921685521660208401526040830152606082015281608082015201906113ea565b908160209103126102ba57604051906020820182811067ffffffffffffffff8211176111ad5760405251815290565b61147f9181019061128f565b80516000906003811015611768576114eb57506114a9606082015160208082518301019101611444565b51908134036114b9575050600190565b6020015160405163cece04c560e01b81526001600160a01b0390911660048201526024810191909152604490fd5b0390fd5b81516003811015611768576001036115e257611514606083015160208082518301019101611444565b9160208101906001600160a01b03926020816064601c82604089895116970151968a519760405198606052306040526bffffffffffffffffffffffff199060601b16602c526f23b872dd000000000000000000000000600c525af13d1560018351141716156115d557606052604052611590308383511661223f565b92518093106115a157505050600190565b51166114e760405192839263cece04c560e01b845260048401602090939291936001600160a01b0360408201951681520152565b637939f42490526004601cfd5b90805160038110156117545760020361175057606081015161160e602091828082518301019101611351565b818301906001600160a01b0392838351169184604080970151168151838301948551918985015193823b1561174c57908b809493926116648d5197889687958694637921219560e11b865230906004870161140f565b03925af1801561174257611729575b50835190518651627eeac760e11b8152306004820152602481019190915291908190839087168180604481015b03915afa96871561171e57966116ee575b5050518094106116c45750505050600190565b51915163cece04c560e01b815291166001600160a01b031660048201526024810191909152604490fd5b9080929650813d8311611717575b61170681836111d7565b810103126102ba57519338806116b1565b503d6116fc565b8651903d90823e3d90fd5b918091976117396116a0946111c3565b97919250611673565b87513d8a823e3d90fd5b8b80fd5b5090565b602483634e487b7160e01b81526021600452fd5b602482634e487b7160e01b81526021600452fd5b6117889181019061128f565b80516003811015611bc057158015611bd6575b1561198e576117b7606082015160208082518301019101611444565b906001600160a01b03604081602084015116920151169151801560001461198857506117e281612189565b915b68929eee149b4bd21268923084541461197a57308455811561194a5761180983612189565b8111611909578260005260016020526040600020611828828254611bfd565b90558261189857600038818084865af11561188a577fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542915b604080516001600160a01b039092168252602082019290925290819081015b0390a2389055600190565b63b12d13eb6000526004601cfd5b81601452806034526fa9059cbb000000000000000000000000600052602060006044601082875af13d156001600051141716156118fb577fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542916000603452611860565b6390b8ec186000526004601cfd5b826114e761191682612189565b92604051938493632e2a182f60e11b8552600485016040919493926001600160a01b03606083019616825260208201520152565b6040516317e3057d60e31b81526001600160a01b0384811660048301529290921660248301526044820152606490fd5b63ab143c066000526004601cfd5b916117e4565b80516003811015611bc057600203611bba576060810151906119ba602092838082518301019101611351565b6001600160a01b0391828482015116926040809201511690825181868501518015600014611bb4575051627eeac760e11b8152306004820152602481018290528681604481895afa908115611ba957908391600091611b79575b50945b01519068929eee149b4bd21268963088541461197a573088558415611b4a57611a4082886121a7565b8611611b085786600052600281528360002090826000525282600020611a67868254611bfd565b9055853b156102ba5784600091611a9385519485938493637921219560e11b855289306004870161140f565b038183895af18015611afd579161187f917fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542959493611aee575b505192839283602090939291936001600160a01b0360408201951681520152565b611af7906111c3565b38611acd565b82513d6000823e3d90fd5b83876114e788611b1886846121a7565b9351938493632e2a182f60e11b8552600485016040919493926001600160a01b03606083019616825260208201520152565b83516317e3057d60e31b81526001600160a01b0388811660048301528616602482015260448101879052606490fd5b91508782813d8311611ba2575b611b9081836111d7565b8101031261019f575082905138611a14565b503d611b86565b83513d6000823e3d90fd5b94611a17565b50600090565b634e487b7160e01b600052602160045260246000fd5b5080516003811015611bc05760011461179b565b8181029291811591840414171561127957565b9190820180921161127957565b90611c1433612152565b1561085b57611267919060009160ff835460a01c161561085b57611c3a9181019061128f565b805160038110156117545760011480156120ae575b15611e3057611c6b606082015160208082518301019101611444565b602082016001600160a01b0390611c8482825116612189565b8351818111611dfe5750508160409151169301511690519068929eee149b4bd212689330855414611df1573085558115611dbe57611cc184612189565b8311611db057838152600160205260408120611cde848254611bfd565b905583611d44578038818086865af115611d375750604080516001600160a01b03909216825260208201929092527fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542918190810161187f565b63b12d13eb90526004601cfd5b81601452826034526fa9059cbb00000000000000000000000081526020816044601082885af13d156001835114171615611da3576034527fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435429190611860565b6390b8ec1890526004601cfd5b82846114e761191682612189565b506040516317e3057d60e31b81526001600160a01b03848116600483015291909116602482015260448101829052606490fd5b63ab143c0690526004601cfd5b8251604051632e2a182f60e11b81529085166001600160a01b0316600482015260248101929092526044820152606490fd5b805160038110156117545760020361175057606081015191611e5c602093848082518301019101611351565b908383016001600160a01b039182825116908451936040938885518095627eeac760e11b82528180611ea960049b308d8401602090939291936001600160a01b0360408201951681520152565b03915afa9384156120a4578394612075575b508887019384519080821161203a57505081859151169701511693838651935196015168929eee149b4bd2126898308a541461202e57308a558615611ff957611f04858a6121a7565b8811611fb957888452600281528584209085855252848320611f27888254611bfd565b9055873b15610562578291611f5287928988519788958695637921219560e11b87523090870161140f565b0381838a5af1908115611fae57509161187f917fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542959493611aee57505192839283602090939291936001600160a01b0360408201951681520152565b8351903d90823e3d90fd5b88836114e78a89611fca8a866121a7565b9051632e2a182f60e11b81526001600160a01b0390951693850193845260208401526040830152829160600190565b85516317e3057d60e31b81526001600160a01b03808b168286019081529089166020820152604081018a905281906060010390fd5b8263ab143c068552601cfd5b86945087936114e79351169451948594632e2a182f60e11b865285016040919493926001600160a01b03606083019616825260208201520152565b9093508881813d831161209d575b61208d81836111d7565b8101031261056257519238611ebb565b503d612083565b85513d85823e3d90fd5b50805160038110156117545715611c4f565b60005b8281106120d257505050600190565b8060051b820135601e19833603018112156102ba57820180359067ffffffffffffffff82116102ba576020019080360382136102ba5761211191611c0a565b156121245761211f9061126a565b6120c3565b505050600090565b919081101561213c5760051b0190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0380911680600052600360205260ff6040600020541691821561217b57505090565b638b78c6d819541614919050565b6001600160a01b03811661219c57504790565b61126790309061223f565b604051627eeac760e11b81523060048201526024810192909252602090829060449082906001600160a01b03165afa908115612216576000916121e8575090565b906020823d821161220e575b81612201602093836111d7565b8101031261019f57505190565b3d91506121f4565b6040513d6000823e3d90fd5b638b78c6d81954330361223157565b6382b429006000526004601cfd5b602460106020939284936014526f70a082310000000000000000000000006000525afa601f3d1116602051029056fea2646970667358221220851c0fe8990ee113c483f74c36815620cb965826000e714f19fd3544f654599864736f6c63430008130033", + "nonce": "0xbb", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe657220cb787c1d8aca775b83178866d8cf809f4970670cd0977274b9c626114", + "transactionType": "CREATE", + "contractName": null, + "contractAddress": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xe662f9575634dbbca894b756d1a19a851c824f00", + "gas": "0x13e46", + "value": "0x0", + "data": "0x602c3d8160093d39f33d3d3d3d363d3d37363d732ae565e22c07b4d850a258bfce8ac3cdaeec1e325af43d3d93803e602a57fd5bf3", + "nonce": "0xbc", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x8e7a84200f6bd20407b61276b3eea75a595e9f5436661e2e349e3da3fcfe8114", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", + "function": "initialize(bytes)", + "arguments": [ + "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f0000000000000000000000000052629961f71c1c2564c5aa22372cb1b9fa9eba3e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f00" + ], + "transaction": { + "type": "0x02", + "from": "0xe662f9575634dbbca894b756d1a19a851c824f00", + "to": "0xff28c11c38c5689242728a2da5217aeba1297cab", + "gas": "0x27e6a", + "value": "0x0", + "data": "0x439fab91000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f0000000000000000000000000052629961f71c1c2564c5aa22372cb1b9fa9eba3e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f00", + "nonce": "0xbd", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xc9d8cd65ca990df31dcb36b88b4732cf0f06f895ac6b1d378907407eeb86bdc8", + "transactionIndex": "0xc", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", + "from": "0xE662f9575634dbbca894B756d1A19A851c824f00", + "to": null, + "cumulativeGasUsed": "0x25ed3f", + "gasUsed": "0x1ebf61", + "contractAddress": "0x2AE565e22c07B4D850a258bFce8aC3cDAeEc1E32", + "logs": [ + { + "address": "0x2AE565e22c07B4D850a258bFce8aC3cDAeEc1E32", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f00" + ], + "data": "0x", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", + "transactionHash": "0xc9d8cd65ca990df31dcb36b88b4732cf0f06f895ac6b1d378907407eeb86bdc8", + "transactionIndex": "0xc", + "logIndex": "0xd", + "removed": false + }, + { + "address": "0x2AE565e22c07B4D850a258bFce8aC3cDAeEc1E32", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", + "transactionHash": "0xc9d8cd65ca990df31dcb36b88b4732cf0f06f895ac6b1d378907407eeb86bdc8", + "transactionIndex": "0xc", + "logIndex": "0xe", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000804000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000001020000000000000000000800000000000000000000000000000000400000000000002000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000004000000000000000020000000000000000000000000000000000000000000000000000000000080000000", + "type": "0x2", + "effectiveGasPrice": "0x102bbdd6a" + }, + { + "transactionHash": "0xe657220cb787c1d8aca775b83178866d8cf809f4970670cd0977274b9c626114", + "transactionIndex": "0xd", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", + "from": "0xE662f9575634dbbca894B756d1A19A851c824f00", + "to": null, + "cumulativeGasUsed": "0x26e217", + "gasUsed": "0xf4d8", + "contractAddress": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x102bbdd6a" + }, + { + "transactionHash": "0x8e7a84200f6bd20407b61276b3eea75a595e9f5436661e2e349e3da3fcfe8114", + "transactionIndex": "0xe", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", + "from": "0xE662f9575634dbbca894B756d1A19A851c824f00", + "to": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", + "cumulativeGasUsed": "0x28b04b", + "gasUsed": "0x1ce34", + "contractAddress": null, + "logs": [ + { + "address": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f00" + ], + "data": "0x", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", + "transactionHash": "0x8e7a84200f6bd20407b61276b3eea75a595e9f5436661e2e349e3da3fcfe8114", + "transactionIndex": "0xe", + "logIndex": "0xf", + "removed": false + }, + { + "address": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", + "transactionHash": "0x8e7a84200f6bd20407b61276b3eea75a595e9f5436661e2e349e3da3fcfe8114", + "transactionIndex": "0xe", + "logIndex": "0x10", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000804000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000001020000000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000004080000000000000020000000000000000000000000000000000000000000000000000000400000000800", + "type": "0x2", + "effectiveGasPrice": "0x102bbdd6a" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1717450764, + "chain": 11155111, + "commit": "4212f67" +} \ No newline at end of file diff --git a/broadcast/QuestBudget.s.sol/11155111/run-latest.json b/broadcast/QuestBudget.s.sol/11155111/run-latest.json index 5e27d237..6ace1b26 100644 --- a/broadcast/QuestBudget.s.sol/11155111/run-latest.json +++ b/broadcast/QuestBudget.s.sol/11155111/run-latest.json @@ -1,29 +1,29 @@ { "transactions": [ { - "hash": "0xd287327909739b467e2a4e6af08abff214a9f1d3aaaa22843a53601bff794e4e", + "hash": "0xc9d8cd65ca990df31dcb36b88b4732cf0f06f895ac6b1d378907407eeb86bdc8", "transactionType": "CREATE", "contractName": "QuestBudget", - "contractAddress": "0x5D8AA745C4b35Fb46AF555a6FcD464946e9FD9D9", + "contractAddress": "0x2AE565e22c07B4D850a258bFce8aC3cDAeEc1E32", "function": null, "arguments": null, "transaction": { "type": "0x02", "from": "0xe662f9575634dbbca894b756d1a19a851c824f00", - "gas": "0x25fe93", + "gas": "0x27f5e8", "value": "0x0", - "data": "0x608080604052346100b95733638b78c6d819553360007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a363409feecd19805490600182166100ab576001600160401b039160011c6002600160401b031901610071575b6120da83816100bf8239f35b6002600160411b03905560209081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29080a13880610065565b63f92ee8a96000526004601cfd5b600080fdfe608080604052600436101561001a575b50361561001857005b005b60003560e01c90816301ffc9a714610e525750806310098ad514610e2f57806319cbad0614610e095780631c9fd0c314610dbc5780632569296214610d705780634359d28a14610c7f578063439fab9114610a5e578063451cc19114610a2057806354d1f13d146109d8578063578bcf351461099e5780635aef467a1461096757806361400c991461092b578063627bbbaa146108bb578063715018a614610875578063774c33ab1461082d5780638da5cb5b1461080257806392f5e0eb146107db578063bc197c8114610737578063d2514e84146106f3578063de0580dc14610491578063f04e283e1461040f578063f1c30ec0146103cb578063f23a6e611461035c578063f2fde38b146102ef578063f8724aba146102c8578063f9a802c314610207578063fa4ca9b1146101cb578063fe9fbb801461019e5763fee81cf414610166573861000f565b346101995760203660031901126101995761017f610f56565b63389a75e1600c52600052602080600c2054604051908152f35b600080fd5b346101995760203660031901126101995760206101c16101bc610f56565b611f87565b6040519015158152f35b346101995760203660031901126101995760043567ffffffffffffffff8111610199576101c16102016020923690600401610fc7565b90611a3b565b3461019957604036600319011261019957610220610f56565b604051627eeac760e11b8152306004820152602480359082018190526020926001600160a01b0316908383604481855afa9182156102bc5760009261028b575b610283935060005260028452604060002090600052835260406000205490611fbe565b604051908152f35b91508383813d83116102b5575b6102a28183611025565b8101031261019957610283925191610260565b503d610298565b6040513d6000823e3d90fd5b346101995760403660031901126101995760206102836102e6610f56565b60243590611fe9565b602036600319011261019957610303610f56565b61030b612058565b8060601b1561034e576001600160a01b0316638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355005b637448fbae6000526004601cfd5b346101995760a036600319011261019957610375610f56565b5061037e610f6c565b5060843567ffffffffffffffff81116101995761039f903690600401610fc7565b505060206040517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b346101995760203660031901126101995760043567ffffffffffffffff8111610199576101c16104016020923690600401610fc7565b9061040a612058565b6115ca565b602036600319011261019957610423610f56565b61042b612058565b63389a75e1600c52806000526020600c2090815442116104835760006001600160a01b03925516638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355005b636f5e88186000526004601cfd5b34610199576101603660031901126101995760043563ffffffff81168103610199576104bb610f6c565b67ffffffffffffffff9060c435828111610199576104dd90369060040161109a565b60e435838111610199576104f590369060040161109a565b610104358481116101995761050e90369060040161109a565b93610124359081116101995761052890369060040161109a565b9061053233611f87565b156106c9576001600160a01b036000541660145260a4356034526f095ea7b3000000000000000000000000600052602060006044601082885af13d156001600051141716156106bb576001600160a01b039561064963ffffffff93610636602098610623600096876034526106118d8954169a6040519e8f9d8e9c8d9b7fde0580dc000000000000000000000000000000000000000000000000000000008d521660048c01521660248a015260443560448a015260643560648a015260843560848a015260a43560a48a015261016060c48a0152610164890190611238565b8781036003190160e489015290611238565b8581036003190161010487015290611238565b8381036003190161012485015290611238565b61014480359083015203925af180156102bc57600090610678575b6020906001600160a01b0360405191168152f35b506020813d6020116106b3575b8161069260209383611025565b8101031261019957516001600160a01b038116810361019957602090610664565b3d9150610685565b633e3f8f736000526004601cfd5b60046040517f82b42900000000000000000000000000000000000000000000000000000000008152fd5b34610199576020366003190112610199576020610283610711610f56565b6001600160a01b0361072282611fcb565b91166000526001835260406000205490611fbe565b346101995760a036600319011261019957610750610f56565b50610759610f6c565b5067ffffffffffffffff6044358181116101995761077b903690600401610f96565b505060643581811161019957610795903690600401610f96565b5050608435908111610199576107af903690600401610fc7565b505060206040517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b346101995760003660031901126101995760206001600160a01b0360005416604051908152f35b34610199576000366003190112610199576020638b78c6d819546001600160a01b0360405191168152f35b34610199576040366003190112610199576001600160a01b0361084e610f56565b16600052600260205260406000206024356000526020526020604060002054604051908152f35b600036600319011261019957610889612058565b6000638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a355005b3461019957602036600319011261019957600435801515809103610199576108e1612058565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000006000549260a01b16911617600055600080f35b346101995760203660031901126101995760043567ffffffffffffffff8111610199576101c16109616020923690600401610f96565b90611ef5565b60203660031901126101995760043567ffffffffffffffff8111610199576101c16109986020923690600401610fc7565b906112c1565b34610199576020366003190112610199576001600160a01b036109bf610f56565b1660005260016020526020604060002054604051908152f35b60003660031901126101995763389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2005b346101995760203660031901126101995760043567ffffffffffffffff811161019957610a51903690600401610fc7565b5050602060405160008152f35b34610199576020806003193601126101995767ffffffffffffffff60043581811161019957610a91903690600401610fc7565b909263409feecd199384549260039380858855610c55575b5081019082818303126101995780359085821161019957019060608282031261019957604051610ad881610ff5565b610ae183610f82565b8152610aee848401610f82565b9284820193845260408101359087821161019957019180601f84011215610199578235968711610c3f5760059287841b9060405198610b2f8884018b611025565b895286808a01928201019283116101995786809101915b838310610c275750505050604081019586526001600160a01b0392838092511680638b78c6d8195560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3511673ffffffffffffffffffffffffffffffffffffffff19600054161760005560005b8551878151831015610bf25750908385610bed9383861b010151166000528585526040600020600160ff198254161790556110b8565b610bb7565b8581610bfa57005b60027fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d292556001815280a1005b8190610c3284610f82565b8152019101908690610b46565b634e487b7160e01b600052604160045260246000fd5b600181819893981c14303b1015610c715760ff1b1b9486610aa9565b63f92ee8a96000526004601cfd5b346101995760403660031901126101995767ffffffffffffffff60043581811161019957610cb1903690600401610f96565b909160243590811161019957610ccb903690600401610f96565b610cd6929192612058565b808203610d465760005b828110610ce957005b610cf4818386611f61565b359081151580920361019957610d0b818588611f61565b35916001600160a01b03831680930361019957610d4192600052600360205260406000209060ff801983541691161790556110b8565b610ce0565b60046040517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b60003660031901126101995763389a75e1600c52336000526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a2005b34610199576020366003190112610199576001600160a01b03610ddd610f56565b610de5612058565b1673ffffffffffffffffffffffffffffffffffffffff196000541617600055600080f35b3461019957600036600319011261019957602060ff60005460a01c166040519015158152f35b34610199576020366003190112610199576020610283610e4d610f56565b611fcb565b3461019957602036600319011261019957600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361019957817f4e2312e00000000000000000000000000000000000000000000000000000000060209314908115610ec6575b5015158152f35b7f5cd687ca00000000000000000000000000000000000000000000000000000000811491508115610ef9575b5083610ebf565b7f4260623600000000000000000000000000000000000000000000000000000000811491508115610f2c575b5083610ef2565b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501483610f25565b600435906001600160a01b038216820361019957565b602435906001600160a01b038216820361019957565b35906001600160a01b038216820361019957565b9181601f840112156101995782359167ffffffffffffffff8311610199576020808501948460051b01011161019957565b9181601f840112156101995782359167ffffffffffffffff8311610199576020838186019501011161019957565b6060810190811067ffffffffffffffff821117610c3f57604052565b67ffffffffffffffff8111610c3f57604052565b90601f8019910116810190811067ffffffffffffffff821117610c3f57604052565b67ffffffffffffffff8111610c3f57601f01601f191660200190565b92919261106f82611047565b9161107d6040519384611025565b829481845281830111610199578281602093846000960137010152565b9080601f83011215610199578160206110b593359101611063565b90565b60001981146110c75760010190565b634e487b7160e01b600052601160045260246000fd5b9060208282031261019957813567ffffffffffffffff9283821161019957019160808383031261019957604051926080840184811083821117610c3f576040528035600381101561019957845261113660208201610f82565b602085015261114760408201610f82565b6040850152606081013591821161019957019080601f830112156101995781602061117493359101611063565b606082015290565b60005b83811061118f5750506000910152565b818101518382015260200161117f565b906020808383031261019957825167ffffffffffffffff9384821161019957019260608484031261019957604051936111d785610ff5565b8051855282810151838601526040810151918211610199570182601f820112156101995780519061120782611047565b936112156040519586611025565b8285528383830101116101995782611230938501910161117c565b604082015290565b906020916112518151809281855285808601910161117c565b601f01601f1916010190565b91926110b595949160a0946001600160a01b038092168552166020840152604083015260608201528160808201520190611238565b9081602091031261019957604051906020820182811067ffffffffffffffff821117610c3f5760405251815290565b6112cd918101906110dd565b805160009060038110156115b65761133957506112f7606082015160208082518301019101611292565b5190813403611307575050600190565b6020015160405163cece04c560e01b81526001600160a01b0390911660048201526024810191909152604490fd5b0390fd5b815160038110156115b65760010361143057611362606083015160208082518301019101611292565b9160208101906001600160a01b03926020816064601c82604089895116970151968a519760405198606052306040526bffffffffffffffffffffffff199060601b16602c526f23b872dd000000000000000000000000600c525af13d156001835114171615611423576060526040526113de3083835116612075565b92518093106113ef57505050600190565b511661133560405192839263cece04c560e01b845260048401602090939291936001600160a01b0360408201951681520152565b637939f42490526004601cfd5b90805160038110156115a25760020361159e57606081015161145c60209182808251830101910161119f565b818301906001600160a01b0392838351169184604080970151168151838301948551918985015193823b1561159a57908b809493926114b28d5197889687958694637921219560e11b865230906004870161125d565b03925af1801561159057611577575b50835190518651627eeac760e11b8152306004820152602481019190915291908190839087168180604481015b03915afa96871561156c579661153c575b5050518094106115125750505050600190565b51915163cece04c560e01b815291166001600160a01b031660048201526024810191909152604490fd5b9080929650813d8311611565575b6115548183611025565b8101031261019957519338806114ff565b503d61154a565b8651903d90823e3d90fd5b918091976115876114ee94611011565b979192506114c1565b87513d8a823e3d90fd5b8b80fd5b5090565b602483634e487b7160e01b81526021600452fd5b602482634e487b7160e01b81526021600452fd5b6115d6918101906110dd565b80516003811015611a1157158015611a27575b156117dc57611605606082015160208082518301019101611292565b906001600160a01b0360408160208401511692015116915180156000146117d6575061163081611fcb565b915b68929eee149b4bd2126892308454146117c85730845581156117985761165783611fcb565b8111611757578260005260016020526040600020611676828254611fbe565b9055826116e657600038818084865af1156116d8577fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542915b604080516001600160a01b039092168252602082019290925290819081015b0390a2389055600190565b63b12d13eb6000526004601cfd5b81601452806034526fa9059cbb000000000000000000000000600052602060006044601082875af13d15600160005114171615611749577fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435429160006034526116ae565b6390b8ec186000526004601cfd5b8261133561176482611fcb565b92604051938493632e2a182f60e11b8552600485016040919493926001600160a01b03606083019616825260208201520152565b6040516317e3057d60e31b81526001600160a01b0384811660048301529290921660248301526044820152606490fd5b63ab143c066000526004601cfd5b91611632565b80516003811015611a1157600203611a0b5760608101519061180860209283808251830101910161119f565b6001600160a01b0391828482015116926040809201511690825181868501518015600014611a05575051627eeac760e11b8152306004820152602481018290528681604481895afa9081156119fa579083916000916119c7575b50945b01519068929eee149b4bd2126896308854146117c85730885584156119985761188e8288611fe9565b861161195657866000526002815283600020908260005252826000206118b5868254611fbe565b9055853b1561019957846000916118e185519485938493637921219560e11b855289306004870161125d565b038183895af1801561194b57916116cd917fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354295949361193c575b505192839283602090939291936001600160a01b0360408201951681520152565b61194590611011565b3861191b565b82513d6000823e3d90fd5b8387611335886119668684611fe9565b9351938493632e2a182f60e11b8552600485016040919493926001600160a01b03606083019616825260208201520152565b83516317e3057d60e31b81526001600160a01b0388811660048301528616602482015260448101879052606490fd5b91508782813d83116119f3575b6119de8183611025565b810103126119f0575082905138611862565b80fd5b503d6119d4565b83513d6000823e3d90fd5b94611865565b50600090565b634e487b7160e01b600052602160045260246000fd5b5080516003811015611a11576001146115e9565b90611a4533611f87565b156106c9576110b5919060009160ff835460a01c16156106c957611a6b918101906110dd565b805160038110156115a2576001148015611ee3575b15611c6157611a9c606082015160208082518301019101611292565b602082016001600160a01b0390611ab582825116611fcb565b8351818111611c2f5750508160409151169301511690519068929eee149b4bd212689330855414611c22573085558115611bef57611af284611fcb565b8311611be157838152600160205260408120611b0f848254611fbe565b905583611b75578038818086865af115611b685750604080516001600160a01b03909216825260208201929092527fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354291819081016116cd565b63b12d13eb90526004601cfd5b81601452826034526fa9059cbb00000000000000000000000081526020816044601082885af13d156001835114171615611bd4576034527fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354291906116ae565b6390b8ec1890526004601cfd5b828461133561176482611fcb565b506040516317e3057d60e31b81526001600160a01b03848116600483015291909116602482015260448101829052606490fd5b63ab143c0690526004601cfd5b8251604051632e2a182f60e11b81529085166001600160a01b0316600482015260248101929092526044820152606490fd5b805160038110156115a25760020361159e57606081015191611c8d60209384808251830101910161119f565b908383016001600160a01b039182825116908451936040938885518095627eeac760e11b82528180611cda60049b308d8401602090939291936001600160a01b0360408201951681520152565b03915afa938415611ed9578394611eaa575b5088870193845190808211611e6f57505081859151169701511693838651935196015168929eee149b4bd2126898308a5414611e6357308a558615611e2e57611d35858a611fe9565b8811611dee57888452600281528584209085855252848320611d58888254611fbe565b9055873b15611dea578291611d8387928988519788958695637921219560e11b87523090870161125d565b0381838a5af1908115611ddf5750916116cd917fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354295949361193c57505192839283602090939291936001600160a01b0360408201951681520152565b8351903d90823e3d90fd5b8280fd5b88836113358a89611dff8a86611fe9565b9051632e2a182f60e11b81526001600160a01b0390951693850193845260208401526040830152829160600190565b85516317e3057d60e31b81526001600160a01b03808b168286019081529089166020820152604081018a905281906060010390fd5b8263ab143c068552601cfd5b86945087936113359351169451948594632e2a182f60e11b865285016040919493926001600160a01b03606083019616825260208201520152565b9093508881813d8311611ed2575b611ec28183611025565b81010312611dea57519238611cec565b503d611eb8565b85513d85823e3d90fd5b50805160038110156115a25715611a80565b60005b828110611f0757505050600190565b8060051b820135601e198336030181121561019957820180359067ffffffffffffffff82116101995760200190803603821361019957611f4691611a3b565b15611f5957611f54906110b8565b611ef8565b505050600090565b9190811015611f715760051b0190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0380911680600052600360205260ff60406000205416918215611fb057505090565b638b78c6d819541614919050565b919082018092116110c757565b6001600160a01b038116611fde57504790565b6110b5903090612075565b604051627eeac760e11b81523060048201526024810192909252602090829060449082906001600160a01b03165afa9081156102bc5760009161202a575090565b906020823d8211612050575b8161204360209383611025565b810103126119f057505190565b3d9150612036565b638b78c6d81954330361206757565b6382b429006000526004601cfd5b602460106020939284936014526f70a082310000000000000000000000006000525afa601f3d1116602051029056fea26469706673582212201671d64ce18bab5189730607d017daac0475adf305c69e99745320c38cd9290364736f6c63430008130033", - "nonce": "0xad", + "data": "0x608080604052346100b95733638b78c6d819553360007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a363409feecd19805490600182166100ab576001600160401b039160011c6002600160401b031901610071575b6122a483816100bf8239f35b6002600160411b03905560209081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29080a13880610065565b63f92ee8a96000526004601cfd5b600080fdfe608080604052600436101561001a575b50361561001857005b005b600090813560e01c90816301ffc9a714610fec5750806310098ad514610fc857806319cbad0614610fa35780631c9fd0c314610f595780632569296214610f0e5780634359d28a14610e1e578063439fab9114610bf2578063451cc19114610bb357806354d1f13d14610b6d578063578bcf3514610b355780635aef467a14610afd57806361400c9914610ac0578063627bbbaa14610a53578063715018a614610a0d578063774c33ab146109cb5780638da5cb5b146109a057806392f5e0eb1461097a578063bc197c81146108d5578063d2514e8414610891578063de0580dc14610569578063e15cfcf5146104a1578063f04e283e14610420578063f1c30ec0146103db578063f23a6e6114610367578063f2fde38b146102f9578063f8724aba146102d1578063f9a802c31461020d578063fa4ca9b1146101d0578063fe9fbb80146101a25763fee81cf40361000f573461019f57602036600319011261019f576101866110f2565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b503461019f57602036600319011261019f5760206101c66101c16110f2565b612152565b6040519015158152f35b503461019f57602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c66102073660048601611163565b90611c0a565b503461019f57604036600319011261019f576102276110f2565b604051627eeac760e11b81523060048201526024803590820181905260209390926001600160a01b03168483604481845afa9283156102c657829361028e575b5090610286936040928252600286528282209082528552205490611bfd565b604051908152f35b919092508482813d83116102bf575b6102a781836111d7565b810103126102ba57905191610286610267565b600080fd5b503d61029d565b6040513d84823e3d90fd5b503461019f57604036600319011261019f5760206102866102f06110f2565b602435906121a7565b50602036600319011261019f5761030e6110f2565b610316612222565b8060601b1561035a576001600160a01b0316638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a35580f35b637448fbae82526004601cfd5b503461019f5760a036600319011261019f576103816110f2565b5061038a611108565b5060843567ffffffffffffffff81116103d7576103ab903690600401611163565b505060206040517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b5080fd5b503461019f57602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c66104123660048601611163565b9061041b612222565b61177c565b50602036600319011261019f576104356110f2565b61043d612222565b63389a75e1600c528082526020600c20805442116104945790826001600160a01b03925516638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a35580f35b636f5e881883526004601cfd5b503461019f57602036600319011261019f578060043567ffffffffffffffff8111610566576104d4903690600401611163565b91906104de612222565b6001600160a01b03825416803b156105625783918360446040518097819682957fe15cfcf500000000000000000000000000000000000000000000000000000000845260206004850152816024850152848401378181018301849052601f01601f191681010301925af180156102c657610556575080f35b61055f906111c3565b80f35b8280fd5b50fd5b503461019f5761016036600319011261019f5760043563ffffffff811681036103d757610594611108565b9067ffffffffffffffff9060c43582811161088d576105b790369060040161124c565b9160e435818111610889576105d090369060040161124c565b9061010435818111610885576105ea90369060040161124c565b90610124359081116108855761060490369060040161124c565b9161060e33612152565b1561085b5761062160a435608435611bea565b6001600160a01b03885416906040517f67dfa3e7000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610850578a9161080b575b509061271061068061ffff610687941683611bea565b0490611bfd565b906014526034526f095ea7b3000000000000000000000000875260208760446010828a5af13d1560018951141716156107fe576001600160a01b0395936107896020969461077663ffffffff956107638c96876034526107518d8954169a6040519e8f9d8e9c8d9b7fde0580dc000000000000000000000000000000000000000000000000000000008d521660048c01521660248a015260443560448a015260643560648a015260843560848a015260a43560a48a015261016060c48a01526101648901906113ea565b8781036003190160e4890152906113ea565b85810360031901610104870152906113ea565b83810360031901610124850152906113ea565b61014480359083015203925af19081156102c65782916107b8575b6020826001600160a01b0360405191168152f35b90506020813d6020116107f6575b816107d3602093836111d7565b810103126103d757516001600160a01b03811681036103d75760209150386107a4565b3d91506107c6565b633e3f8f7387526004601cfd5b90506020813d602011610848575b81610826602093836111d7565b8101031261084457519061ffff82168203610844579061271061066a565b8980fd5b3d9150610819565b6040513d8c823e3d90fd5b60046040517f82b42900000000000000000000000000000000000000000000000000000000008152fd5b8680fd5b8580fd5b8480fd5b503461019f57602036600319011261019f5761028660209160406108b36110f2565b916001600160a01b036108c584612189565b9316815260018552205490611bfd565b503461019f5760a036600319011261019f576108ef6110f2565b506108f8611108565b5067ffffffffffffffff6044358181116105625761091a903690600401611132565b505060643581811161056257610934903690600401611132565b50506084359081116103d75761094e903690600401611163565b505060206040517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b503461019f578060031936011261019f576001600160a01b036020915416604051908152f35b503461019f578060031936011261019f576020638b78c6d819546001600160a01b0360405191168152f35b503461019f57604036600319011261019f5760406020916001600160a01b036109f26110f2565b16815260028352818120602435825283522054604051908152f35b508060031936011261019f57610a21612222565b80638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35580f35b503461019f57602036600319011261019f576004358015158091036103d757610a7a612222565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000083549260a01b16911617815580f35b503461019f57602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c6610af73660048601611132565b906120c0565b50602036600319011261019f576004359067ffffffffffffffff821161019f5760206101c6610b2f3660048601611163565b90611473565b503461019f57602036600319011261019f5760406020916001600160a01b03610b5c6110f2565b168152600183522054604051908152f35b508060031936011261019f5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b503461019f57602036600319011261019f5760043567ffffffffffffffff81116103d75790610be86020923690600401611163565b5050604051908152f35b503461019f576020806003193601126103d75767ffffffffffffffff90600435828111610e1a57610c27903690600401611163565b63409feecd1980546003808355949392919080610df5575b5090820191838184031261088557803590868211610df157019160608382031261088557604051610c6f81611191565b610c788461111e565b8152610c8585850161111e565b9385820194855260408101359088821161084457019180601f84011215610ded578235978811610dd95760059288841b9060405199610cc68984018c6111d7565b8a5287808b0192820101928311610dd55787809101915b838310610dbd5750505050604081019687526001600160a01b0393848092511680638b78c6d81955897f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3511673ffffffffffffffffffffffffffffffffffffffff19885416178755865b86518051821015610d805781831b018501518416885285855260408820805460ff19166001179055610d7b9061126a565b610d4a565b88848781610d8c578280f35b60027fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d292556001815280a181808280f35b8190610dc88461111e565b8152019101908790610cdd565b8a80fd5b602489634e487b7160e01b81526041600452fd5b8880fd5b8780fd5b600181811c14303b1015610e0d5760ff1b1b38610c3f565b63f92ee8a988526004601cfd5b8380fd5b503461019f57604036600319011261019f5767ffffffffffffffff60043581811161056257610e51903690600401611132565b91602435908111610e1a57610e6a903690600401611132565b610e75939193612222565b808203610ee457845b828110610e89578580f35b610e9481838761212c565b359081151580920361088557610eab81858761212c565b35916001600160a01b038316809303610df157610edf9288526003602052604088209060ff8019835416911617905561126a565b610e7e565b60046040517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b508060031936011261019f5763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461019f57602036600319011261019f576001600160a01b03610f7b6110f2565b610f83612222565b1673ffffffffffffffffffffffffffffffffffffffff1982541617815580f35b503461019f578060031936011261019f5760ff6020915460a01c166040519015158152f35b503461019f57602036600319011261019f576020610286610fe76110f2565b612189565b9050346103d75760203660031901126103d7576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361056257602092507f4e2312e0000000000000000000000000000000000000000000000000000000008114908115611062575b5015158152f35b7f5cd687ca00000000000000000000000000000000000000000000000000000000811491508115611095575b503861105b565b7f42606236000000000000000000000000000000000000000000000000000000008114915081156110c8575b503861108e565b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014386110c1565b600435906001600160a01b03821682036102ba57565b602435906001600160a01b03821682036102ba57565b35906001600160a01b03821682036102ba57565b9181601f840112156102ba5782359167ffffffffffffffff83116102ba576020808501948460051b0101116102ba57565b9181601f840112156102ba5782359167ffffffffffffffff83116102ba57602083818601950101116102ba57565b6060810190811067ffffffffffffffff8211176111ad57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116111ad57604052565b90601f8019910116810190811067ffffffffffffffff8211176111ad57604052565b67ffffffffffffffff81116111ad57601f01601f191660200190565b929192611221826111f9565b9161122f60405193846111d7565b8294818452818301116102ba578281602093846000960137010152565b9080601f830112156102ba5781602061126793359101611215565b90565b60001981146112795760010190565b634e487b7160e01b600052601160045260246000fd5b906020828203126102ba57813567ffffffffffffffff928382116102ba5701916080838303126102ba576040519260808401848110838211176111ad57604052803560038110156102ba5784526112e86020820161111e565b60208501526112f96040820161111e565b604085015260608101359182116102ba57019080601f830112156102ba5781602061132693359101611215565b606082015290565b60005b8381106113415750506000910152565b8181015183820152602001611331565b90602080838303126102ba57825167ffffffffffffffff938482116102ba5701926060848403126102ba576040519361138985611191565b80518552828101518386015260408101519182116102ba570182601f820112156102ba578051906113b9826111f9565b936113c760405195866111d7565b8285528383830101116102ba57826113e2938501910161132e565b604082015290565b906020916114038151809281855285808601910161132e565b601f01601f1916010190565b919261126795949160a0946001600160a01b0380921685521660208401526040830152606082015281608082015201906113ea565b908160209103126102ba57604051906020820182811067ffffffffffffffff8211176111ad5760405251815290565b61147f9181019061128f565b80516000906003811015611768576114eb57506114a9606082015160208082518301019101611444565b51908134036114b9575050600190565b6020015160405163cece04c560e01b81526001600160a01b0390911660048201526024810191909152604490fd5b0390fd5b81516003811015611768576001036115e257611514606083015160208082518301019101611444565b9160208101906001600160a01b03926020816064601c82604089895116970151968a519760405198606052306040526bffffffffffffffffffffffff199060601b16602c526f23b872dd000000000000000000000000600c525af13d1560018351141716156115d557606052604052611590308383511661223f565b92518093106115a157505050600190565b51166114e760405192839263cece04c560e01b845260048401602090939291936001600160a01b0360408201951681520152565b637939f42490526004601cfd5b90805160038110156117545760020361175057606081015161160e602091828082518301019101611351565b818301906001600160a01b0392838351169184604080970151168151838301948551918985015193823b1561174c57908b809493926116648d5197889687958694637921219560e11b865230906004870161140f565b03925af1801561174257611729575b50835190518651627eeac760e11b8152306004820152602481019190915291908190839087168180604481015b03915afa96871561171e57966116ee575b5050518094106116c45750505050600190565b51915163cece04c560e01b815291166001600160a01b031660048201526024810191909152604490fd5b9080929650813d8311611717575b61170681836111d7565b810103126102ba57519338806116b1565b503d6116fc565b8651903d90823e3d90fd5b918091976117396116a0946111c3565b97919250611673565b87513d8a823e3d90fd5b8b80fd5b5090565b602483634e487b7160e01b81526021600452fd5b602482634e487b7160e01b81526021600452fd5b6117889181019061128f565b80516003811015611bc057158015611bd6575b1561198e576117b7606082015160208082518301019101611444565b906001600160a01b03604081602084015116920151169151801560001461198857506117e281612189565b915b68929eee149b4bd21268923084541461197a57308455811561194a5761180983612189565b8111611909578260005260016020526040600020611828828254611bfd565b90558261189857600038818084865af11561188a577fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542915b604080516001600160a01b039092168252602082019290925290819081015b0390a2389055600190565b63b12d13eb6000526004601cfd5b81601452806034526fa9059cbb000000000000000000000000600052602060006044601082875af13d156001600051141716156118fb577fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542916000603452611860565b6390b8ec186000526004601cfd5b826114e761191682612189565b92604051938493632e2a182f60e11b8552600485016040919493926001600160a01b03606083019616825260208201520152565b6040516317e3057d60e31b81526001600160a01b0384811660048301529290921660248301526044820152606490fd5b63ab143c066000526004601cfd5b916117e4565b80516003811015611bc057600203611bba576060810151906119ba602092838082518301019101611351565b6001600160a01b0391828482015116926040809201511690825181868501518015600014611bb4575051627eeac760e11b8152306004820152602481018290528681604481895afa908115611ba957908391600091611b79575b50945b01519068929eee149b4bd21268963088541461197a573088558415611b4a57611a4082886121a7565b8611611b085786600052600281528360002090826000525282600020611a67868254611bfd565b9055853b156102ba5784600091611a9385519485938493637921219560e11b855289306004870161140f565b038183895af18015611afd579161187f917fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542959493611aee575b505192839283602090939291936001600160a01b0360408201951681520152565b611af7906111c3565b38611acd565b82513d6000823e3d90fd5b83876114e788611b1886846121a7565b9351938493632e2a182f60e11b8552600485016040919493926001600160a01b03606083019616825260208201520152565b83516317e3057d60e31b81526001600160a01b0388811660048301528616602482015260448101879052606490fd5b91508782813d8311611ba2575b611b9081836111d7565b8101031261019f575082905138611a14565b503d611b86565b83513d6000823e3d90fd5b94611a17565b50600090565b634e487b7160e01b600052602160045260246000fd5b5080516003811015611bc05760011461179b565b8181029291811591840414171561127957565b9190820180921161127957565b90611c1433612152565b1561085b57611267919060009160ff835460a01c161561085b57611c3a9181019061128f565b805160038110156117545760011480156120ae575b15611e3057611c6b606082015160208082518301019101611444565b602082016001600160a01b0390611c8482825116612189565b8351818111611dfe5750508160409151169301511690519068929eee149b4bd212689330855414611df1573085558115611dbe57611cc184612189565b8311611db057838152600160205260408120611cde848254611bfd565b905583611d44578038818086865af115611d375750604080516001600160a01b03909216825260208201929092527fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542918190810161187f565b63b12d13eb90526004601cfd5b81601452826034526fa9059cbb00000000000000000000000081526020816044601082885af13d156001835114171615611da3576034527fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435429190611860565b6390b8ec1890526004601cfd5b82846114e761191682612189565b506040516317e3057d60e31b81526001600160a01b03848116600483015291909116602482015260448101829052606490fd5b63ab143c0690526004601cfd5b8251604051632e2a182f60e11b81529085166001600160a01b0316600482015260248101929092526044820152606490fd5b805160038110156117545760020361175057606081015191611e5c602093848082518301019101611351565b908383016001600160a01b039182825116908451936040938885518095627eeac760e11b82528180611ea960049b308d8401602090939291936001600160a01b0360408201951681520152565b03915afa9384156120a4578394612075575b508887019384519080821161203a57505081859151169701511693838651935196015168929eee149b4bd2126898308a541461202e57308a558615611ff957611f04858a6121a7565b8811611fb957888452600281528584209085855252848320611f27888254611bfd565b9055873b15610562578291611f5287928988519788958695637921219560e11b87523090870161140f565b0381838a5af1908115611fae57509161187f917fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542959493611aee57505192839283602090939291936001600160a01b0360408201951681520152565b8351903d90823e3d90fd5b88836114e78a89611fca8a866121a7565b9051632e2a182f60e11b81526001600160a01b0390951693850193845260208401526040830152829160600190565b85516317e3057d60e31b81526001600160a01b03808b168286019081529089166020820152604081018a905281906060010390fd5b8263ab143c068552601cfd5b86945087936114e79351169451948594632e2a182f60e11b865285016040919493926001600160a01b03606083019616825260208201520152565b9093508881813d831161209d575b61208d81836111d7565b8101031261056257519238611ebb565b503d612083565b85513d85823e3d90fd5b50805160038110156117545715611c4f565b60005b8281106120d257505050600190565b8060051b820135601e19833603018112156102ba57820180359067ffffffffffffffff82116102ba576020019080360382136102ba5761211191611c0a565b156121245761211f9061126a565b6120c3565b505050600090565b919081101561213c5760051b0190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0380911680600052600360205260ff6040600020541691821561217b57505090565b638b78c6d819541614919050565b6001600160a01b03811661219c57504790565b61126790309061223f565b604051627eeac760e11b81523060048201526024810192909252602090829060449082906001600160a01b03165afa908115612216576000916121e8575090565b906020823d821161220e575b81612201602093836111d7565b8101031261019f57505190565b3d91506121f4565b6040513d6000823e3d90fd5b638b78c6d81954330361223157565b6382b429006000526004601cfd5b602460106020939284936014526f70a082310000000000000000000000006000525afa601f3d1116602051029056fea2646970667358221220851c0fe8990ee113c483f74c36815620cb965826000e714f19fd3544f654599864736f6c63430008130033", + "nonce": "0xbb", "accessList": [] }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0xdd038c03083cf34670d646d5c33673b72f4ffaace285935b6acc74513cd941bd", + "hash": "0xe657220cb787c1d8aca775b83178866d8cf809f4970670cd0977274b9c626114", "transactionType": "CREATE", "contractName": null, - "contractAddress": "0x9A3A2044A5D73736be0fC1968af4D4BAF1b9b89D", + "contractAddress": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", "function": null, "arguments": null, "transaction": { @@ -31,30 +31,30 @@ "from": "0xe662f9575634dbbca894b756d1a19a851c824f00", "gas": "0x13e46", "value": "0x0", - "data": "0x602c3d8160093d39f33d3d3d3d363d3d37363d735d8aa745c4b35fb46af555a6fcd464946e9fd9d95af43d3d93803e602a57fd5bf3", - "nonce": "0xae", + "data": "0x602c3d8160093d39f33d3d3d3d363d3d37363d732ae565e22c07b4d850a258bfce8ac3cdaeec1e325af43d3d93803e602a57fd5bf3", + "nonce": "0xbc", "accessList": [] }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x69f481a3294cdc44eba27dc68436d5ed8c45b76146f31be5f1c22fd206301360", + "hash": "0x8e7a84200f6bd20407b61276b3eea75a595e9f5436661e2e349e3da3fcfe8114", "transactionType": "CALL", "contractName": null, - "contractAddress": "0x9A3A2044A5D73736be0fC1968af4D4BAF1b9b89D", + "contractAddress": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", "function": "initialize(bytes)", "arguments": [ - "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000017f8ad14a2e745ea0f756bd57cd4852400be78c00000000000000000000000052629961f71c1c2564c5aa22372cb1b9fa9eba3e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000017f8ad14a2e745ea0f756bd57cd4852400be78c" + "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f0000000000000000000000000052629961f71c1c2564c5aa22372cb1b9fa9eba3e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f00" ], "transaction": { "type": "0x02", "from": "0xe662f9575634dbbca894b756d1a19a851c824f00", - "to": "0x9a3a2044a5d73736be0fc1968af4d4baf1b9b89d", - "gas": "0x27e6e", + "to": "0xff28c11c38c5689242728a2da5217aeba1297cab", + "gas": "0x27e6a", "value": "0x0", - "data": "0x439fab91000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000017f8ad14a2e745ea0f756bd57cd4852400be78c00000000000000000000000052629961f71c1c2564c5aa22372cb1b9fa9eba3e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000017f8ad14a2e745ea0f756bd57cd4852400be78c", - "nonce": "0xaf", + "data": "0x439fab91000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f0000000000000000000000000052629961f71c1c2564c5aa22372cb1b9fa9eba3e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f00", + "nonce": "0xbd", "accessList": [] }, "additionalContracts": [], @@ -63,116 +63,116 @@ ], "receipts": [ { - "transactionHash": "0xd287327909739b467e2a4e6af08abff214a9f1d3aaaa22843a53601bff794e4e", - "transactionIndex": "0x7", - "blockHash": "0xca79f7b1448518685ab8464b17337378cc74abbf6e07e1cf5ec5da7f3bd2c417", - "blockNumber": "0x5c0e1e", + "transactionHash": "0xc9d8cd65ca990df31dcb36b88b4732cf0f06f895ac6b1d378907407eeb86bdc8", + "transactionIndex": "0xc", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", "from": "0xE662f9575634dbbca894B756d1A19A851c824f00", "to": null, - "cumulativeGasUsed": "0x218440", - "gasUsed": "0x1d3c15", - "contractAddress": "0x5D8AA745C4b35Fb46AF555a6FcD464946e9FD9D9", + "cumulativeGasUsed": "0x25ed3f", + "gasUsed": "0x1ebf61", + "contractAddress": "0x2AE565e22c07B4D850a258bFce8aC3cDAeEc1E32", "logs": [ { - "address": "0x5D8AA745C4b35Fb46AF555a6FcD464946e9FD9D9", + "address": "0x2AE565e22c07B4D850a258bFce8aC3cDAeEc1E32", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f00" ], "data": "0x", - "blockHash": "0xca79f7b1448518685ab8464b17337378cc74abbf6e07e1cf5ec5da7f3bd2c417", - "blockNumber": "0x5c0e1e", - "transactionHash": "0xd287327909739b467e2a4e6af08abff214a9f1d3aaaa22843a53601bff794e4e", - "transactionIndex": "0x7", - "logIndex": "0x3", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", + "transactionHash": "0xc9d8cd65ca990df31dcb36b88b4732cf0f06f895ac6b1d378907407eeb86bdc8", + "transactionIndex": "0xc", + "logIndex": "0xd", "removed": false }, { - "address": "0x5D8AA745C4b35Fb46AF555a6FcD464946e9FD9D9", + "address": "0x2AE565e22c07B4D850a258bFce8aC3cDAeEc1E32", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0xca79f7b1448518685ab8464b17337378cc74abbf6e07e1cf5ec5da7f3bd2c417", - "blockNumber": "0x5c0e1e", - "transactionHash": "0xd287327909739b467e2a4e6af08abff214a9f1d3aaaa22843a53601bff794e4e", - "transactionIndex": "0x7", - "logIndex": "0x4", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", + "transactionHash": "0xc9d8cd65ca990df31dcb36b88b4732cf0f06f895ac6b1d378907407eeb86bdc8", + "transactionIndex": "0xc", + "logIndex": "0xe", "removed": false } ], "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000804000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000001000000000000000000000000000000000001020000000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000100040000000000000000000000000000000000000001000000000000000000000000000000000004000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000804000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000001020000000000000000000800000000000000000000000000000000400000000000002000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000004000000000000000020000000000000000000000000000000000000000000000000000000000080000000", "type": "0x2", - "effectiveGasPrice": "0x1b8e58186" + "effectiveGasPrice": "0x102bbdd6a" }, { - "transactionHash": "0xdd038c03083cf34670d646d5c33673b72f4ffaace285935b6acc74513cd941bd", - "transactionIndex": "0x8", - "blockHash": "0xca79f7b1448518685ab8464b17337378cc74abbf6e07e1cf5ec5da7f3bd2c417", - "blockNumber": "0x5c0e1e", + "transactionHash": "0xe657220cb787c1d8aca775b83178866d8cf809f4970670cd0977274b9c626114", + "transactionIndex": "0xd", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", "from": "0xE662f9575634dbbca894B756d1A19A851c824f00", "to": null, - "cumulativeGasUsed": "0x227918", + "cumulativeGasUsed": "0x26e217", "gasUsed": "0xf4d8", - "contractAddress": "0x9A3A2044A5D73736be0fC1968af4D4BAF1b9b89D", + "contractAddress": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", "logs": [], "status": "0x1", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "effectiveGasPrice": "0x1b8e58186" + "effectiveGasPrice": "0x102bbdd6a" }, { - "transactionHash": "0x69f481a3294cdc44eba27dc68436d5ed8c45b76146f31be5f1c22fd206301360", - "transactionIndex": "0x9", - "blockHash": "0xca79f7b1448518685ab8464b17337378cc74abbf6e07e1cf5ec5da7f3bd2c417", - "blockNumber": "0x5c0e1e", + "transactionHash": "0x8e7a84200f6bd20407b61276b3eea75a595e9f5436661e2e349e3da3fcfe8114", + "transactionIndex": "0xe", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", "from": "0xE662f9575634dbbca894B756d1A19A851c824f00", - "to": "0x9A3A2044A5D73736be0fC1968af4D4BAF1b9b89D", - "cumulativeGasUsed": "0x24474f", - "gasUsed": "0x1ce37", + "to": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", + "cumulativeGasUsed": "0x28b04b", + "gasUsed": "0x1ce34", "contractAddress": null, "logs": [ { - "address": "0x9A3A2044A5D73736be0fC1968af4D4BAF1b9b89D", + "address": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000017f8ad14a2e745ea0f756bd57cd4852400be78c" + "0x000000000000000000000000e662f9575634dbbca894b756d1a19a851c824f00" ], "data": "0x", - "blockHash": "0xca79f7b1448518685ab8464b17337378cc74abbf6e07e1cf5ec5da7f3bd2c417", - "blockNumber": "0x5c0e1e", - "transactionHash": "0x69f481a3294cdc44eba27dc68436d5ed8c45b76146f31be5f1c22fd206301360", - "transactionIndex": "0x9", - "logIndex": "0x5", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", + "transactionHash": "0x8e7a84200f6bd20407b61276b3eea75a595e9f5436661e2e349e3da3fcfe8114", + "transactionIndex": "0xe", + "logIndex": "0xf", "removed": false }, { - "address": "0x9A3A2044A5D73736be0fC1968af4D4BAF1b9b89D", + "address": "0xfF28C11c38c5689242728A2da5217AEba1297Cab", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xca79f7b1448518685ab8464b17337378cc74abbf6e07e1cf5ec5da7f3bd2c417", - "blockNumber": "0x5c0e1e", - "transactionHash": "0x69f481a3294cdc44eba27dc68436d5ed8c45b76146f31be5f1c22fd206301360", - "transactionIndex": "0x9", - "logIndex": "0x6", + "blockHash": "0x64fff4b13eb0af33d1aba7cbc87ffc97ec67225248b4d7216c879459fe21eb4a", + "blockNumber": "0x5c11c4", + "transactionHash": "0x8e7a84200f6bd20407b61276b3eea75a595e9f5436661e2e349e3da3fcfe8114", + "transactionIndex": "0xe", + "logIndex": "0x10", "removed": false } ], "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000001000000000000000000000000000000000000020200000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000200000000000000001000000000000000000000000000000100000004000000000000000020000000000000000000080000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000804000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000001020000000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000004080000000000000020000000000000000000000000000000000000000000000000000000400000000800", "type": "0x2", - "effectiveGasPrice": "0x1b8e58186" + "effectiveGasPrice": "0x102bbdd6a" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1717437866, + "timestamp": 1717450764, "chain": 11155111, - "commit": "6fd63bc" + "commit": "4212f67" } \ No newline at end of file diff --git a/contracts/QuestBudget.sol b/contracts/QuestBudget.sol index 14909960..3a6aa150 100644 --- a/contracts/QuestBudget.sol +++ b/contracts/QuestBudget.sol @@ -160,7 +160,11 @@ contract QuestBudget is Budget, IERC1155Receiver, ReentrancyGuard { string memory projectName_, uint256 referralRewardFee_ ) public virtual onlyAuthorized returns (address) { - rewardTokenAddress_.safeApprove(address(questFactory), rewardAmount_); + uint256 maxTotalRewards = totalParticipants_ * rewardAmount_; + uint256 questFee = uint256(IQuestFactory(questFactory).questFee()); + uint256 maxProtocolReward = (maxTotalRewards * questFee) / 10_000; // Assuming questFee is 2000 + uint256 approvalAmount = maxTotalRewards + maxProtocolReward; + rewardTokenAddress_.safeApprove(address(questFactory), approvalAmount); return IQuestFactory(questFactory).createERC20Quest( txHashChainId_, rewardTokenAddress_, diff --git a/contracts/interfaces/IQuestFactory.sol b/contracts/interfaces/IQuestFactory.sol index 108b221f..359acf7c 100644 --- a/contracts/interfaces/IQuestFactory.sol +++ b/contracts/interfaces/IQuestFactory.sol @@ -194,7 +194,8 @@ interface IQuestFactory { string memory actionType, string memory questName ) external pure returns (string memory); - + function questFee() external view returns (uint16); + // Create function create1155QuestAndQueue( address rewardTokenAddress_, diff --git a/test/QuestBudget.t.sol b/test/QuestBudget.t.sol index 1b3a79c7..7f90f61a 100644 --- a/test/QuestBudget.t.sol +++ b/test/QuestBudget.t.sol @@ -378,17 +378,22 @@ contract QuestBudgetTest is Test, TestUtils, IERC1155Receiver { uint256 endTime_ = block.timestamp + 1 days; uint256 startTime_ = block.timestamp; uint256 totalParticipants_ = 10; - uint256 rewardAmount_ = 100 ether; + uint256 rewardAmount_ = 1 ether; string memory questId_ = "testQuest"; string memory actionType_ = "testAction"; string memory questName_ = "Test Quest"; string memory projectName_ = "Test Project"; uint256 referralRewardFee_ = 10 ether; - + + uint256 maxTotalRewards = totalParticipants_ * rewardAmount_; + uint256 questFee = uint256(mockQuestFactory.questFee()); + uint256 maxProtocolReward = (maxTotalRewards * questFee) / 10_000; // Assuming questFee is 2000 + uint256 approvalAmount = maxTotalRewards + maxProtocolReward; + mockERC20.mint(address(this), approvalAmount); // Ensure the budget has enough tokens for the reward - mockERC20.approve(address(questBudget), rewardAmount_); + mockERC20.approve(address(questBudget), approvalAmount); questBudget.allocate( - _makeFungibleTransfer(Budget.AssetType.ERC20, address(mockERC20), address(this), rewardAmount_) + _makeFungibleTransfer(Budget.AssetType.ERC20, address(mockERC20), address(this), approvalAmount) ); // Create the new quest @@ -410,7 +415,7 @@ contract QuestBudgetTest is Test, TestUtils, IERC1155Receiver { assertTrue(questAddress != address(0)); // Ensure the quest contract has the correct reward amount - assertEq(IERC20(rewardTokenAddress_).balanceOf(questAddress), rewardAmount_); + assertEq(IERC20(rewardTokenAddress_).balanceOf(questAddress), approvalAmount); } /////////////////////////// @@ -424,16 +429,21 @@ contract QuestBudgetTest is Test, TestUtils, IERC1155Receiver { uint256 endTime_ = block.timestamp + 1 days; uint256 startTime_ = block.timestamp; uint256 totalParticipants_ = 10; - uint256 rewardAmount_ = 100 ether; + uint256 rewardAmount_ = 1 ether; string memory questId_ = "testQuest"; string memory actionType_ = "testAction"; string memory questName_ = "Test Quest"; string memory projectName_ = "Test Project"; uint256 referralRewardFee_ = 10 ether; + uint256 maxTotalRewards = totalParticipants_ * rewardAmount_; + uint256 questFee = uint256(mockQuestFactory.questFee()); + uint256 maxProtocolReward = (maxTotalRewards * questFee) / 10_000; // Assuming questFee is 2000 + uint256 approvalAmount = maxTotalRewards + maxProtocolReward; + mockERC20.mint(address(this), approvalAmount); // Ensure the budget has enough tokens for the reward - mockERC20.approve(address(questBudget), rewardAmount_); - bytes memory allocateBytes = _makeFungibleTransfer(Budget.AssetType.ERC20, address(mockERC20), address(this), rewardAmount_); + mockERC20.approve(address(questBudget), approvalAmount); + bytes memory allocateBytes = _makeFungibleTransfer(Budget.AssetType.ERC20, address(mockERC20), address(this), approvalAmount); questBudget.allocate(allocateBytes); console.logBytes(allocateBytes); @@ -456,7 +466,7 @@ contract QuestBudgetTest is Test, TestUtils, IERC1155Receiver { assertTrue(questAddress != address(0)); // Ensure the quest contract has the correct reward amount - assertEq(IERC20(rewardTokenAddress_).balanceOf(questAddress), rewardAmount_); + assertEq(IERC20(rewardTokenAddress_).balanceOf(questAddress), approvalAmount); vm.expectEmit(); diff --git a/test/mocks/QuestFactoryMock.sol b/test/mocks/QuestFactoryMock.sol index ebd2acdb..0d6c5bdf 100644 --- a/test/mocks/QuestFactoryMock.sol +++ b/test/mocks/QuestFactoryMock.sol @@ -57,6 +57,10 @@ contract QuestFactoryMock { return false; } + function questFee() external view returns (uint16) { + return 2000; + } + function createERC20Quest( uint32 txHashChainId_, @@ -71,6 +75,9 @@ contract QuestFactoryMock { string memory projectName_, uint256 referralRewardFee_ ) external returns (address) { + uint256 maxTotalRewards = totalParticipants_ * rewardAmount_; + uint256 maxProtocolReward = (maxTotalRewards * 2000) / 10_000; // Assuming questFee is 2000 + uint256 approvalAmount = maxTotalRewards + maxProtocolReward; questData = QuestData({ txHashChainId: txHashChainId_, rewardTokenAddress: rewardTokenAddress_, @@ -87,7 +94,7 @@ contract QuestFactoryMock { }); // Transfer rewardAmount_ tokens from the caller to this contract - require(IERC20(rewardTokenAddress_).transferFrom(msg.sender, address(this), rewardAmount_), "Transfer failed"); + require(IERC20(rewardTokenAddress_).transferFrom(msg.sender, address(this), approvalAmount), "Transfer failed"); // Return this contract's address as the "created" quest contract return address(this);