diff --git a/packages/foundry/broadcast/Deploy.s.sol/480/run-1731798716.json b/packages/foundry/broadcast/Deploy.s.sol/480/run-1731798716.json new file mode 100644 index 0000000..219199b --- /dev/null +++ b/packages/foundry/broadcast/Deploy.s.sol/480/run-1731798716.json @@ -0,0 +1,104 @@ +{ + "transactions": [ + { + "hash": "0x260ca8840d7abe1bb87776946027897936e92de96eb78958e4edad990b7c5812", + "transactionType": "CREATE", + "contractName": "Permit2Vault", + "contractAddress": "0x29c4b679f04c0a86983b19380766d3b0ca679a59", + "function": null, + "arguments": [ + "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "0x4639B9F663C14Bad89Ddcc16966e85Bc81dCCD40" + ], + "transaction": { + "from": "0x4639b9f663c14bad89ddcc16966e85bc81dccd40", + "gas": "0xa1810", + "value": "0x0", + "input": "0x60a0604052348015600f57600080fd5b506040516108da3803806108da833981016040819052602c916058565b506001600160a01b03166080526086565b80516001600160a01b0381168114605357600080fd5b919050565b60008060408385031215606a57600080fd5b607183603d565b9150607d60208401603d565b90509250929050565b6080516108336100a76000396000818160af01526102c701526108336000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636cb5dc991161005b5780636cb5dc99146100ee5780638d00e14e14610101578063a1db97821461013a578063ad7a672f1461014d57600080fd5b80635431c94e146100825780635c4abd54146100975780636afdd850146100aa575b600080fd5b6100956100903660046105f2565b610156565b005b6100956100a536600461062b565b6101d3565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100956100fc3660046106cf565b610383565b61012c61010f3660046105f2565b600160209081526000928352604080842090915290825290205481565b6040519081526020016100e5565b6100956101483660046106cf565b610483565b61012c60025481565b60025460405163a9059cbb60e01b81526001600160a01b03838116600483015260248201929092529083169063a9059cbb906044016020604051808303816000875af11580156101aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ce91906106fb565b505050565b60005460ff161561021b5760405162461bcd60e51b815260206004820152600d60248201526c6e6f207265656e7472616e637960981b60448201526064015b60405180910390fd5b6000805460ff191660019081178255338252602090815260408083206001600160a01b038a1684529091528120805487929061025890849061073a565b925050819055508460026000828254610271919061073a565b90915550506040805160a0810182526001600160a01b0388811660608301908152608083018990528252602080830188905282840187905283518085018552308152908101899052925163187945bd60e11b81527f0000000000000000000000000000000000000000000000000000000000000000909116926330f28b7a926103059290919033908890889060040161077c565b600060405180830381600087803b15801561031f57600080fd5b505af1158015610333573d6000803e3d6000fd5b505060408051338152602081018990527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4935001905060405180910390a150506000805460ff1916905550505050565b3360009081526001602090815260408083206001600160a01b0386168452909152812080548392906103b690849061073a565b9250508190555080600260008282546103cf919061073a565b909155505060405163a9059cbb60e01b8152306004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044591906106fb565b5060408051338152602081018390527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4910160405180910390a15050565b60005460ff16156104c65760405162461bcd60e51b815260206004820152600d60248201526c6e6f207265656e7472616e637960981b6044820152606401610212565b6000805460ff191660019081178255338252602090815260408083206001600160a01b0386168452909152812080548392906105039084906107ea565b92505081905550806002600082825461051c91906107ea565b909155505060405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561056e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059291906106fb565b5060408051338152602081018390527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a150506000805460ff19169055565b6001600160a01b03811681146105ef57600080fd5b50565b6000806040838503121561060557600080fd5b8235610610816105da565b91506020830135610620816105da565b809150509250929050565b60008060008060008060a0878903121561064457600080fd5b863561064f816105da565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff81111561068057600080fd5b8701601f8101891361069157600080fd5b803567ffffffffffffffff8111156106a857600080fd5b8960208284010111156106ba57600080fd5b60208201935080925050509295509295509295565b600080604083850312156106e257600080fd5b82356106ed816105da565b946020939093013593505050565b60006020828403121561070d57600080fd5b8151801515811461071d57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561074d5761074d610724565b92915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b855180516001600160a01b039081168352602091820151828401528188015160408085019190915288015160608401528651811660808401529086015160a0830152841660c082015261010060e082018190526000906107df9083018486610753565b979650505050505050565b8181038181111561074d5761074d61072456fea2646970667358221220b679dc2034436d9282261c81ee6ebc476a110510563f45f7b14d687c319052c864736f6c634300081c0033000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000004639b9f663c14bad89ddcc16966e85bc81dccd40", + "nonce": "0x21", + "chainId": "0x1e0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7a6c4070ea25e67ab6d9965abb299c74fd7656b0c8c6928276e1acebccccf07a", + "transactionType": "CREATE", + "contractName": "HumanOracleV1", + "contractAddress": "0x8cbef8f4ca9020a7ea6565480e3d90e1704ffadc", + "function": null, + "arguments": [ + "0x17B354dD2595411ff79041f930e491A4Df39A278", + "1", + "app_22ea9fb73d53333c2997e8f16e60cc6b", + "registration", + "0x2cFc85d8E48F8EAB294be644d9E25C3030863003", + "0x29C4B679F04C0a86983b19380766D3B0ca679a59" + ], + "transaction": { + "from": "0x4639b9f663c14bad89ddcc16966e85bc81dccd40", + "gas": "0x2270aa", + "value": "0x0", + "input": "0x60c0604052600160805234801561001557600080fd5b50604051611fef380380611fef833981016040819052610034916101f1565b600080546001600160a01b0319166001600160a01b0388161790556080859052604051869086908690869061009c9061008a90610075908590602001610295565b60408051601f198184030181529190526100dd565b826040516020016100759291906102b1565b60a0525050600680546001600160a01b039586166001600160a01b0319918216179091556007805494909516931692909217909255506102d7945050505050565b60006008826040516020016100f29190610295565b60408051601f198184030181529190528051602090910120901c92915050565b80516001600160a01b038116811461012957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015f578181015183820152602001610147565b50506000910152565b600082601f83011261017957600080fd5b81516001600160401b038111156101925761019261012e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101c0576101c061012e565b6040528181528382016020018510156101d857600080fd5b6101e9826020830160208701610144565b949350505050565b60008060008060008060c0878903121561020a57600080fd5b61021387610112565b6020880151604089015191975095506001600160401b0381111561023657600080fd5b61024289828a01610168565b606089015190955090506001600160401b0381111561026057600080fd5b61026c89828a01610168565b93505061027b60808801610112565b915061028960a08801610112565b90509295509295509295565b600082516102a7818460208701610144565b9190910192915050565b828152600082516102c9816020850160208701610144565b919091016020019392505050565b60805160a051611cf36102fc6000396000610d6501526000610d270152611cf36000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80639c1f819811610097578063c8382a3311610066578063c8382a3314610277578063d4e51d301461028a578063dca090041461029d578063fbfa77cf146102b057600080fd5b80639c1f8198146101f2578063a5260ad914610215578063a87430ba14610228578063b74207021461026457600080fd5b80635839a889116100d35780635839a8891461017c578063753e9ef01461018f5780637ccec52c146101ba57806391e40730146101cf57600080fd5b80630bfb705914610105578063163f7522146101255780633cbc2ef2146101485780634e9b9e001461015b575b600080fd5b61010d6102c3565b60405161011c9392919061157d565b60405180910390f35b6101386101333660046115d7565b610440565b604051901515815260200161011c565b6101386101563660046115f2565b610473565b61016e6101693660046115f2565b6104a3565b60405190815260200161011c565b61013861018a3660046115f2565b6104b6565b6000546101a2906001600160a01b031681565b6040516001600160a01b03909116815260200161011c565b6101cd6101c8366004611664565b6104fe565b005b61016e6101dd3660046116d7565b60036020526000908152604090206001015481565b6102056102003660046116d7565b61079f565b60405161011c94939291906116f0565b6101cd61022336600461173a565b610871565b61024f6102363660046115d7565b6001602081905260009182526040909120805491015482565b6040805192835260208301919091520161011c565b61016e6102723660046116d7565b610a55565b6101386102853660046116d7565b610bf9565b6101cd610298366004611897565b610c13565b6006546101a2906001600160a01b031681565b6007546101a2906001600160a01b031681565b606080606060006102d360045490565b9050806001600160401b038111156102ed576102ed6117f6565b604051908082528060200260200182016040528015610316578160200160208202803683370190505b509350806001600160401b03811115610331576103316117f6565b60405190808252806020026020018201604052801561036457816020015b606081526020019060019003908161034f5790505b509250806001600160401b0381111561037f5761037f6117f6565b6040519080825280602002602001820160405280156103a8578160200160208202803683370190505b50915060005b8181101561043957808582815181106103c9576103c96118e7565b6020026020010181815250506103de81610e66565b8482815181106103f0576103f06118e7565b60200260200101819052506104148160009081526003602052604090206001015490565b838281518110610426576104266118e7565b60209081029190910101526001016103ae565b5050909192565b6001600160a01b0381166000908152600160205260408120541561046657506001919050565b506000919050565b919050565b60008181526003602090815260408083206001600160a01b038616845260020190915290205460ff165b92915050565b60006104af8383610f1c565b9392505050565b60008181526003602052604081205460005b818110156104f3576104db858583610f94565b156104eb5760019250505061049d565b6001016104c8565b506000949350505050565b3360009081526001602052604081205490036105555760405162461bcd60e51b815260206004820152601160248201527075736572206e6f74206578697374696e6760781b60448201526064015b60405180910390fd5b600087815260036020526040812054889133905b828110156105d057600061057e838684610f94565b90508015156001036105c75760405162461bcd60e51b81526020600482015260126024820152711d5cd95c88185b1c9958591e481d9bdd195960721b604482015260640161054c565b50600101610569565b5089436105dc82610ff4565b11156106215760405162461bcd60e51b81526020600482015260146024820152731d9bdd19481a185cc81b9bdd081cdd185c9d195960621b604482015260640161054c565b4361062b82611022565b61063483610ff4565b61063e9190611913565b101561067d5760405162461bcd60e51b815260206004820152600e60248201526d1d9bdd19481a185cc8195b99195960921b604482015260640161054c565b60058911156106ce5760405162461bcd60e51b815260206004820152601760248201527f6d6178207374616b696e6720616d6f756e742069732035000000000000000000604482015260640161054c565b336106db818d8d8d611050565b600754600654604051631712af5560e21b81526001600160a01b0392831692635c4abd5492610719929116908e908e908e908e908e90600401611926565b600060405180830381600087803b15801561073357600080fd5b505af1158015610747573d6000803e3d6000fd5b5050604080518e8152602081018e90528f93506001600160a01b03851692507f65658daa50ece7e5d9b3c4700c400745f04137171d9d6896eed2f10437013ee7910160405180910390a3505050505050505050505050565b6060806000606060006107be8660009081526003602052604090205490565b60008781526003602052604090206001015493509050806001600160401b038111156107ec576107ec6117f6565b604051908082528060200260200182016040528015610815578160200160208202803683370190505b50915060005b818110156108525761082d878261110e565b83828151811061083f5761083f6118e7565b602090810291909101015260010161081b565b5061085c86610e66565b61086587611148565b94509450509193509193565b6004546040805160a08101825282815281516020601f8b0181900481028201810190935289815260009280830191908c908c90819084018382808284376000920191909152505050908252506020016108ca888a611979565b81526020808201889052604090910186905260048054600181018255600091909152825160059091027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b810191825591830151929350839290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c01906109519082611a97565b506040820151805161096d9160028401916020909101906113d0565b506060820151816003015560808201518160040155505061098e8284611245565b600754600654604051636cb5dc9960e01b81526001600160a01b03918216600482015260248101869052911690636cb5dc9990604401600060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b50505050817f6912e5abe531ca5f3b6f973f97278ab6731cdec0178a7b3c2c7a5822a3f1732b610a2184610e66565b610a2a85610ff4565b610a3386611022565b604051610a4293929190611b55565b60405180910390a2505050505050505050565b60008143610a6282611022565b610a6b83610ff4565b610a759190611913565b10610ab65760405162461bcd60e51b8152602060048201526011602482015270766f7465207374696c6c2061637469766560781b604482015260640161054c565b33610ac18185610473565b15610b055760405162461bcd60e51b81526020600482015260146024820152731d5cd95c88185b1c9958591e4818db185a5b595960621b604482015260640161054c565b60008481526003602090815260408083206001600160a01b03851684526002019091529020805460ff191660011790556000610b418286610f1c565b6007546006546040516350edcbc160e11b81526001600160a01b03918216600482015260248101849052929350169063a1db978290604401600060405180830381600087803b158015610b9357600080fd5b505af1158015610ba7573d6000803e3d6000fd5b5050505084826001600160a01b03167ff01da32686223933d8a18a391060918c7f11a3648639edd87ae013e2e273174383604051610be791815260200190565b60405180910390a39250505b50919050565b6000610c04826112df565b43111561046657506001919050565b3360009081526001602052604090205415610c695760405162461bcd60e51b815260206004820152601660248201527507573657220616c7265616479207369676e65642075760541b604482015260640161054c565b6000339050600080600084806020019051810190610c879190611b7a565b600082815260026020526040902054929550909350915060ff161515600103610cf25760405162461bcd60e51b815260206004820152601e60248201527f6e756c6c69666965724861736820616c7265616479206578697374696e670000604482015260640161054c565b6000546040516bffffffffffffffffffffffff19606087901b1660208201526001600160a01b0390911690633bc778e39085907f000000000000000000000000000000000000000000000000000000000000000090610d62906034016040516020818303038152906040526112fd565b867f0000000000000000000000000000000000000000000000000000000000000000876040518763ffffffff1660e01b8152600401610da696959493929190611c0f565b60006040518083038186803b158015610dbe57600080fd5b505afa158015610dd2573d6000803e3d6000fd5b5050506000838152600260209081526040808320805460ff1916600190811790915581518083018352878152438185019081526001600160a01b038b168087528386529584902082518082559151930183905583519081529384019190915293507f47c8e83729a89f8b0c23b722e4c21f48295ddfcd683910c564e11e6b6037d01c910160405180910390a2505050505050565b606060048281548110610e7b57610e7b6118e7565b90600052602060002090600502016001018054610e9790611a14565b80601f0160208091040260200160405190810160405280929190818152602001828054610ec390611a14565b8015610f105780601f10610ee557610100808354040283529160200191610f10565b820191906000526020600020905b815481529060010190602001808311610ef357829003601f168201915b50505050509050919050565b600080610f2883611332565b9050610f35848483610f94565b610f4357600091505061049d565b6000610f5085858461137e565b600085815260036020526040812060010154919250610f6f868561110e565b9050600083610f7e8385611c68565b610f889190611c8a565b98975050505050505050565b6000828152600360205260408120805483908110610fb457610fb46118e7565b600091825260208083206001600160a01b03881684526001600290930201919091019052604090205415610fea575060016104af565b5060009392505050565b600060048281548110611009576110096118e7565b9060005260206000209060050201600301549050919050565b600060048281548110611037576110376118e7565b9060005260206000209060050201600401549050919050565b6000838152600360205260409020805482919084908110611073576110736118e7565b600091825260208083206001600160a01b0389168452600160029093020191909101815260408083209390935585825260039052208054829190849081106110bd576110bd6118e7565b906000526020600020906002020160000160008282546110dd9190611913565b909155505060008381526003602052604081206001018054839290611103908490611913565b909155505050505050565b600082815260036020526040812080548390811061112e5761112e6118e7565b906000526020600020906002020160000154905092915050565b60606004828154811061115d5761115d6118e7565b9060005260206000209060050201600201805480602002602001604051908101604052809291908181526020016000905b8282101561123a5783829060005260206000200180546111ad90611a14565b80601f01602080910402602001604051908101604052809291908181526020018280546111d990611a14565b80156112265780601f106111fb57610100808354040283529160200191611226565b820191906000526020600020905b81548152906001019060200180831161120957829003601f168201915b50505050508152602001906001019061118e565b505050509050919050565b6000828152600360205260408120600181018390556004805491929185908110611271576112716118e7565b6000918252602082206002600590920201015491506112908285611c68565b905060005b828110156112d7578354600101808555600085905282908590839081106112be576112be6118e7565b6000918252602090912060029091020155600101611295565b505050505050565b60006112ea82611022565b6112f383610ff4565b61049d9190611913565b60006008826040516020016113129190611ca1565b60408051601f198184030181529190528051602090910120901c92915050565b60008181526003602052604081205460008060005b8381101561137557600061135b878361110e565b90508084101561136c578093508192505b50600101611347565b50949350505050565b600082815260036020526040812080548390811061139e5761139e6118e7565b600091825260208083206001600160a01b03881684526001600290930201919091019052604090205490509392505050565b828054828255906000526020600020908101928215611416579160200282015b8281111561141657825182906114069082611a97565b50916020019190600101906113f0565b50611422929150611426565b5090565b8082111561142257600061143a8282611443565b50600101611426565b50805461144f90611a14565b6000825580601f1061145f575050565b601f01602090049060005260206000209081019061147d9190611480565b50565b5b808211156114225760008155600101611481565b600081518084526020840193506020830160005b828110156114c75781518652602095860195909101906001016114a9565b5093949350505050565b60005b838110156114ec5781810151838201526020016114d4565b50506000910152565b6000815180845261150d8160208601602086016114d1565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b8381101561157157601f1985840301885261155b8383516114f5565b602098890198909350919091019060010161153f565b50909695505050505050565b6060815260006115906060830186611495565b82810360208401526115a28186611521565b905082810360408401526115b68185611495565b9695505050505050565b80356001600160a01b038116811461046e57600080fd5b6000602082840312156115e957600080fd5b6104af826115c0565b6000806040838503121561160557600080fd5b61160e836115c0565b946020939093013593505050565b60008083601f84011261162e57600080fd5b5081356001600160401b0381111561164557600080fd5b60208301915083602082850101111561165d57600080fd5b9250929050565b600080600080600080600060c0888a03121561167f57600080fd5b873596506020880135955060408801359450606088013593506080880135925060a08801356001600160401b038111156116b857600080fd5b6116c48a828b0161161c565b989b979a50959850939692959293505050565b6000602082840312156116e957600080fd5b5035919050565b60808152600061170360808301876114f5565b82810360208401526117158187611521565b9050846040840152828103606084015261172f8185611495565b979650505050505050565b600080600080600080600060a0888a03121561175557600080fd5b87356001600160401b0381111561176b57600080fd5b6117778a828b0161161c565b90985096505060208801356001600160401b0381111561179657600080fd5b8801601f81018a136117a757600080fd5b80356001600160401b038111156117bd57600080fd5b8a60208260051b84010111156117d257600080fd5b979a9699506020019760408101359660608201359650608090910135945092505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611834576118346117f6565b604052919050565b6000806001600160401b03841115611856576118566117f6565b50601f8301601f191660200161186b8161180c565b91505082815283838301111561188057600080fd5b828260208301376000602084830101529392505050565b6000602082840312156118a957600080fd5b81356001600160401b038111156118bf57600080fd5b8201601f810184136118d057600080fd5b6118df8482356020840161183c565b949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561049d5761049d6118fd565b60018060a01b038716815285602082015284604082015283606082015260a060808201528160a0820152818360c0830137600081830160c090810191909152601f909201601f1916010195945050505050565b60006001600160401b03831115611992576119926117f6565b8260051b6119a26020820161180c565b848152908301906020810190368311156119bb57600080fd5b845b83811015611a0a5780356001600160401b038111156119db57600080fd5b860136601f8201126119ec57600080fd5b6119fb3682356020840161183c565b845250602092830192016119bd565b5095945050505050565b600181811c90821680611a2857607f821691505b602082108103610bf357634e487b7160e01b600052602260045260246000fd5b601f821115611a9257806000526020600020601f840160051c81016020851015611a6f5750805b601f840160051c820191505b81811015611a8f5760008155600101611a7b565b50505b505050565b81516001600160401b03811115611ab057611ab06117f6565b611ac481611abe8454611a14565b84611a48565b6020601f821160018114611af85760008315611ae05750848201515b600019600385901b1c1916600184901b178455611a8f565b600084815260208120601f198516915b82811015611b285787850151825560209485019460019092019101611b08565b5084821015611b465786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b606081526000611b6860608301866114f5565b60208301949094525060400152919050565b60008060006101408486031215611b9057600080fd5b835160208501519093509150605f84018513611bab57600080fd5b60405161010081016001600160401b0381118282101715611bce57611bce6117f6565b60405280610140860187811115611be457600080fd5b604087015b81811015611c01578051835260209283019201611be9565b505050809150509250925092565b60006101a08201905087825286602083015285604083015284606083015283608083015260a082018360005b6008811015611c5a578151835260209283019290910190600101611c3b565b505050979650505050505050565b600082611c8557634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761049d5761049d6118fd565b60008251611cb38184602087016114d1565b919091019291505056fea264697066735822122089556ce5f5b7139311e7816da8771d7ebfb13eef88b88c401655247cf325eab564736f6c634300081c003300000000000000000000000017b354dd2595411ff79041f930e491a4df39a278000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000002cfc85d8e48f8eab294be644d9e25c303086300300000000000000000000000029c4b679f04c0a86983b19380766d3b0ca679a5900000000000000000000000000000000000000000000000000000000000000246170705f323265613966623733643533333333633239393765386631366536306363366200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c726567697374726174696f6e0000000000000000000000000000000000000000", + "nonce": "0x22", + "chainId": "0x1e0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x86fbf", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x260ca8840d7abe1bb87776946027897936e92de96eb78958e4edad990b7c5812", + "transactionIndex": "0x1", + "blockHash": "0x15165c0ad09b82d5f2c4ea3534af7627da45086380d3cf49c1fdcfa758d3f5c8", + "blockNumber": "0x5f15f1", + "gasUsed": "0x7c450", + "effectiveGasPrice": "0xf433f", + "blobGasUsed": "0x0", + "from": "0x4639b9f663c14bad89ddcc16966e85bc81dccd40", + "to": null, + "contractAddress": "0x29c4b679f04c0a86983b19380766d3b0ca679a59", + "l1BaseFeeScalar": "0x21f9", + "l1BlobBaseFee": "0xd2be11b5", + "l1BlobBaseFeeScalar": "0xc5f4f", + "l1Fee": "0x578e5811cb2", + "l1GasPrice": "0x293c5fb17", + "l1GasUsed": "0x5553" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x22efe2", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x7a6c4070ea25e67ab6d9965abb299c74fd7656b0c8c6928276e1acebccccf07a", + "transactionIndex": "0x2", + "blockHash": "0x15165c0ad09b82d5f2c4ea3534af7627da45086380d3cf49c1fdcfa758d3f5c8", + "blockNumber": "0x5f15f1", + "gasUsed": "0x1a8023", + "effectiveGasPrice": "0xf433f", + "blobGasUsed": "0x0", + "from": "0x4639b9f663c14bad89ddcc16966e85bc81dccd40", + "to": null, + "contractAddress": "0x8cbef8f4ca9020a7ea6565480e3d90e1704ffadc", + "l1BaseFeeScalar": "0x21f9", + "l1BlobBaseFee": "0xd2be11b5", + "l1BlobBaseFeeScalar": "0xc5f4f", + "l1Fee": "0x1382c9332927", + "l1GasPrice": "0x293c5fb17", + "l1GasUsed": "0x1303a" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1731798716, + "chain": 480, + "commit": "754c393" +} \ No newline at end of file diff --git a/packages/foundry/broadcast/Deploy.s.sol/480/run-latest.json b/packages/foundry/broadcast/Deploy.s.sol/480/run-latest.json index 9f1084d..219199b 100644 --- a/packages/foundry/broadcast/Deploy.s.sol/480/run-latest.json +++ b/packages/foundry/broadcast/Deploy.s.sol/480/run-latest.json @@ -1,25 +1,46 @@ { "transactions": [ { - "hash": "0x3a17ba181669bbe9cdebf3a6c1ea1a62de5963b33867b6dce3f03cee174247d2", + "hash": "0x260ca8840d7abe1bb87776946027897936e92de96eb78958e4edad990b7c5812", + "transactionType": "CREATE", + "contractName": "Permit2Vault", + "contractAddress": "0x29c4b679f04c0a86983b19380766d3b0ca679a59", + "function": null, + "arguments": [ + "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "0x4639B9F663C14Bad89Ddcc16966e85Bc81dCCD40" + ], + "transaction": { + "from": "0x4639b9f663c14bad89ddcc16966e85bc81dccd40", + "gas": "0xa1810", + "value": "0x0", + "input": "0x60a0604052348015600f57600080fd5b506040516108da3803806108da833981016040819052602c916058565b506001600160a01b03166080526086565b80516001600160a01b0381168114605357600080fd5b919050565b60008060408385031215606a57600080fd5b607183603d565b9150607d60208401603d565b90509250929050565b6080516108336100a76000396000818160af01526102c701526108336000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636cb5dc991161005b5780636cb5dc99146100ee5780638d00e14e14610101578063a1db97821461013a578063ad7a672f1461014d57600080fd5b80635431c94e146100825780635c4abd54146100975780636afdd850146100aa575b600080fd5b6100956100903660046105f2565b610156565b005b6100956100a536600461062b565b6101d3565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100956100fc3660046106cf565b610383565b61012c61010f3660046105f2565b600160209081526000928352604080842090915290825290205481565b6040519081526020016100e5565b6100956101483660046106cf565b610483565b61012c60025481565b60025460405163a9059cbb60e01b81526001600160a01b03838116600483015260248201929092529083169063a9059cbb906044016020604051808303816000875af11580156101aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ce91906106fb565b505050565b60005460ff161561021b5760405162461bcd60e51b815260206004820152600d60248201526c6e6f207265656e7472616e637960981b60448201526064015b60405180910390fd5b6000805460ff191660019081178255338252602090815260408083206001600160a01b038a1684529091528120805487929061025890849061073a565b925050819055508460026000828254610271919061073a565b90915550506040805160a0810182526001600160a01b0388811660608301908152608083018990528252602080830188905282840187905283518085018552308152908101899052925163187945bd60e11b81527f0000000000000000000000000000000000000000000000000000000000000000909116926330f28b7a926103059290919033908890889060040161077c565b600060405180830381600087803b15801561031f57600080fd5b505af1158015610333573d6000803e3d6000fd5b505060408051338152602081018990527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4935001905060405180910390a150506000805460ff1916905550505050565b3360009081526001602090815260408083206001600160a01b0386168452909152812080548392906103b690849061073a565b9250508190555080600260008282546103cf919061073a565b909155505060405163a9059cbb60e01b8152306004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044591906106fb565b5060408051338152602081018390527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4910160405180910390a15050565b60005460ff16156104c65760405162461bcd60e51b815260206004820152600d60248201526c6e6f207265656e7472616e637960981b6044820152606401610212565b6000805460ff191660019081178255338252602090815260408083206001600160a01b0386168452909152812080548392906105039084906107ea565b92505081905550806002600082825461051c91906107ea565b909155505060405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561056e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059291906106fb565b5060408051338152602081018390527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a150506000805460ff19169055565b6001600160a01b03811681146105ef57600080fd5b50565b6000806040838503121561060557600080fd5b8235610610816105da565b91506020830135610620816105da565b809150509250929050565b60008060008060008060a0878903121561064457600080fd5b863561064f816105da565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff81111561068057600080fd5b8701601f8101891361069157600080fd5b803567ffffffffffffffff8111156106a857600080fd5b8960208284010111156106ba57600080fd5b60208201935080925050509295509295509295565b600080604083850312156106e257600080fd5b82356106ed816105da565b946020939093013593505050565b60006020828403121561070d57600080fd5b8151801515811461071d57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561074d5761074d610724565b92915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b855180516001600160a01b039081168352602091820151828401528188015160408085019190915288015160608401528651811660808401529086015160a0830152841660c082015261010060e082018190526000906107df9083018486610753565b979650505050505050565b8181038181111561074d5761074d61072456fea2646970667358221220b679dc2034436d9282261c81ee6ebc476a110510563f45f7b14d687c319052c864736f6c634300081c0033000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000004639b9f663c14bad89ddcc16966e85bc81dccd40", + "nonce": "0x21", + "chainId": "0x1e0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7a6c4070ea25e67ab6d9965abb299c74fd7656b0c8c6928276e1acebccccf07a", "transactionType": "CREATE", "contractName": "HumanOracleV1", - "contractAddress": "0x7447696e22c7074683c4ebcc53d3321939f3b403", + "contractAddress": "0x8cbef8f4ca9020a7ea6565480e3d90e1704ffadc", "function": null, "arguments": [ "0x17B354dD2595411ff79041f930e491A4Df39A278", "1", "app_22ea9fb73d53333c2997e8f16e60cc6b", "registration", - "0x000000000022D473030F116dDEE9F6B43aC78BA3", - "0x4639B9F663C14Bad89Ddcc16966e85Bc81dCCD40" + "0x2cFc85d8E48F8EAB294be644d9E25C3030863003", + "0x29C4B679F04C0a86983b19380766D3B0ca679a59" ], "transaction": { "from": "0x4639b9f663c14bad89ddcc16966e85bc81dccd40", - "gas": "0x26c89a", + "gas": "0x2270aa", "value": "0x0", - "input": "0x60e0604052600160805234801561001557600080fd5b506040516124ac3803806124ac833981016040819052610034916101d6565b600080546001600160a01b0319166001600160a01b03881617905560808590526040518290829088908890889088906100a09061008e9061007990859060200161027a565b60408051601f198184030181529190526100c2565b82604051602001610079929190610296565b60a0525050506001600160a01b0390921660c052506102bc9650505050505050565b60006008826040516020016100d7919061027a565b60408051601f198184030181529190528051602090910120901c92915050565b80516001600160a01b038116811461010e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561014457818101518382015260200161012c565b50506000910152565b600082601f83011261015e57600080fd5b81516001600160401b0381111561017757610177610113565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101a5576101a5610113565b6040528181528382016020018510156101bd57600080fd5b6101ce826020830160208701610129565b949350505050565b60008060008060008060c087890312156101ef57600080fd5b6101f8876100f7565b6020880151604089015191975095506001600160401b0381111561021b57600080fd5b61022789828a0161014d565b606089015190955090506001600160401b0381111561024557600080fd5b61025189828a0161014d565b935050610260608088016100f7565b915061026e60a088016100f7565b90509295509295509295565b6000825161028c818460208701610129565b9190910192915050565b828152600082516102ae816020850160208701610129565b919091016020019392505050565b60805160a05160c0516121ba6102f2600039600081816101f3015261072501526000610f3101526000610ef301526121ba6000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638d00e14e116100b8578063a87430ba1161007c578063a87430ba146102ea578063ad7a672f14610326578063b74207021461032f578063c8382a3314610342578063d4e51d3014610355578063e6b7c0e51461036857600080fd5b80638d00e14e1461025357806391e407301461027e5780639c1f8198146102a1578063a1db9782146102c4578063a5260ad9146102d757600080fd5b80635839a889116100ff5780635839a889146101c85780635c4abd54146101db5780636afdd850146101ee5780636cb5dc991461022d578063753e9ef01461024057600080fd5b80630bfb70591461013c578063163f75221461015c5780633cbc2ef21461017f5780634e9b9e00146101925780635431c94e146101b3575b600080fd5b61014461037b565b60405161015393929190611971565b60405180910390f35b61016f61016a3660046119c9565b6104f8565b6040519015158152602001610153565b61016f61018d3660046119e6565b610526565b6101a56101a03660046119e6565b610556565b604051908152602001610153565b6101c66101c1366004611a12565b610569565b005b61016f6101d63660046119e6565b6105e6565b6101c66101e9366004611a93565b61062e565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610153565b6101c661023b3660046119e6565b6107e1565b600054610215906001600160a01b031681565b6101a5610261366004611a12565b600460209081526000928352604080842090915290825290205481565b6101a561028c366004611b05565b60066020526000908152604090206001015481565b6102b46102af366004611b05565b6108e1565b6040516101539493929190611b1e565b6101c66102d23660046119e6565b6109b3565b6101c66102e5366004611b68565b610b0d565b6103116102f83660046119c9565b6001602081905260009182526040909120805491015482565b60408051928352602083019190915201610153565b6101a560055481565b6101a561033d366004611b05565b610c89565b61016f610350366004611b05565b610dc5565b6101c6610363366004611cc5565b610ddf565b6101c6610376366004611d15565b611032565b6060806060600061038b60075490565b9050806001600160401b038111156103a5576103a5611c24565b6040519080825280602002602001820160405280156103ce578160200160208202803683370190505b509350806001600160401b038111156103e9576103e9611c24565b60405190808252806020026020018201604052801561041c57816020015b60608152602001906001900390816104075790505b509250806001600160401b0381111561043757610437611c24565b604051908082528060200260200182016040528015610460578160200160208202803683370190505b50915060005b818110156104f1578085828151811061048157610481611d41565b6020026020010181815250506104968161125a565b8482815181106104a8576104a8611d41565b60200260200101819052506104cc8160009081526006602052604090206001015490565b8382815181106104de576104de611d41565b6020908102919091010152600101610466565b5050909192565b6001600160a01b0381166000908152600160205260408120541561051e57506001919050565b506000919050565b60008181526006602090815260408083206001600160a01b038616845260020190915290205460ff165b92915050565b60006105628383611310565b9392505050565b60055460405163a9059cbb60e01b81526001600160a01b03838116600483015260248201929092529083169063a9059cbb906044016020604051808303816000875af11580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e19190611d57565b505050565b60008181526006602052604081205460005b818110156106235761060b858583611388565b1561061b57600192505050610550565b6001016105f8565b506000949350505050565b60035460ff16156106765760405162461bcd60e51b815260206004820152600d60248201526c6e6f207265656e7472616e637960981b60448201526064015b60405180910390fd5b6003805460ff191660011790553360009081526004602090815260408083206001600160a01b038a168452909152812080548792906106b6908490611d8f565b9250508190555084600560008282546106cf9190611d8f565b90915550506040805160a0810182526001600160a01b0388811660608301908152608083018990528252602080830188905282840187905283518085018552308152908101899052925163187945bd60e11b81527f0000000000000000000000000000000000000000000000000000000000000000909116926330f28b7a9261076392909190339088908890600401611dcb565b600060405180830381600087803b15801561077d57600080fd5b505af1158015610791573d6000803e3d6000fd5b505060408051338152602081018990527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4935001905060405180910390a150506003805460ff1916905550505050565b3360009081526004602090815260408083206001600160a01b038616845290915281208054839290610814908490611d8f565b92505081905550806005600082825461082d9190611d8f565b909155505060405163a9059cbb60e01b8152306004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190611d57565b5060408051338152602081018390527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4910160405180910390a15050565b6060806000606060006109008660009081526006602052604090205490565b60008781526006602052604090206001015493509050806001600160401b0381111561092e5761092e611c24565b604051908082528060200260200182016040528015610957578160200160208202803683370190505b50915060005b818110156109945761096f87826113e8565b83828151811061098157610981611d41565b602090810291909101015260010161095d565b5061099e8661125a565b6109a787611422565b94509450509193509193565b60035460ff16156109f65760405162461bcd60e51b815260206004820152600d60248201526c6e6f207265656e7472616e637960981b604482015260640161066d565b6003805460ff191660011790553360009081526004602090815260408083206001600160a01b038616845290915281208054839290610a36908490611e2e565b925050819055508060056000828254610a4f9190611e2e565b909155505060405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac59190611d57565b5060408051338152602081018390527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a150506003805460ff19169055565b6007546040805160a08101825282815281516020601f8b0181900481028201810190935289815260009280830191908c908c9081908401838280828437600092019190915250505090825250602001610b66888a611e41565b81526020808201889052604090910186905260078054600181018255600091909152825160059091027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688810191825591830151929350839290917fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6890190610bed9082611f5e565b5060408201518051610c099160028401916020909101906117c4565b5060608201518160030155608082015181600401555050610c2a828461151f565b817f6912e5abe531ca5f3b6f973f97278ab6731cdec0178a7b3c2c7a5822a3f1732b610c558461125a565b610c5e856115b9565b610c67866115e7565b604051610c769392919061201c565b60405180910390a2505050505050505050565b60008143610c96826115e7565b610c9f836115b9565b610ca99190611d8f565b10610cea5760405162461bcd60e51b8152602060048201526011602482015270766f7465207374696c6c2061637469766560781b604482015260640161066d565b33610cf58185610526565b15610d395760405162461bcd60e51b81526020600482015260146024820152731d5cd95c88185b1c9958591e4818db185a5b595960621b604482015260640161066d565b60008481526006602090815260408083206001600160a01b03851684526002019091529020805460ff191660011790556000610d758286611310565b905084826001600160a01b03167ff01da32686223933d8a18a391060918c7f11a3648639edd87ae013e2e273174383604051610db391815260200190565b60405180910390a39250505b50919050565b6000610dd082611615565b43111561051e57506001919050565b3360009081526001602052604090205415610e355760405162461bcd60e51b815260206004820152601660248201527507573657220616c7265616479207369676e65642075760541b604482015260640161066d565b6000339050600080600084806020019051810190610e539190612041565b600082815260026020526040902054929550909350915060ff161515600103610ebe5760405162461bcd60e51b815260206004820152601e60248201527f6e756c6c69666965724861736820616c7265616479206578697374696e670000604482015260640161066d565b6000546040516bffffffffffffffffffffffff19606087901b1660208201526001600160a01b0390911690633bc778e39085907f000000000000000000000000000000000000000000000000000000000000000090610f2e90603401604051602081830303815290604052611633565b867f0000000000000000000000000000000000000000000000000000000000000000876040518763ffffffff1660e01b8152600401610f72969594939291906120d6565b60006040518083038186803b158015610f8a57600080fd5b505afa158015610f9e573d6000803e3d6000fd5b5050506000838152600260209081526040808320805460ff1916600190811790915581518083018352878152438185019081526001600160a01b038b168087528386529584902082518082559151930183905583519081529384019190915293507f47c8e83729a89f8b0c23b722e4c21f48295ddfcd683910c564e11e6b6037d01c910160405180910390a2505050505050565b3360009081526001602052604081205490036110845760405162461bcd60e51b815260206004820152601160248201527075736572206e6f74206578697374696e6760781b604482015260640161066d565b600083815260066020526040812054849133905b828110156110ff5760006110ad838684611388565b90508015156001036110f65760405162461bcd60e51b81526020600482015260126024820152711d5cd95c88185b1c9958591e481d9bdd195960721b604482015260640161066d565b50600101611098565b50854361110b826115b9565b11156111505760405162461bcd60e51b81526020600482015260146024820152731d9bdd19481a185cc81b9bdd081cdd185c9d195960621b604482015260640161066d565b4361115a826115e7565b611163836115b9565b61116d9190611d8f565b10156111ac5760405162461bcd60e51b815260206004820152600e60248201526d1d9bdd19481a185cc8195b99195960921b604482015260640161066d565b60058511156111fd5760405162461bcd60e51b815260206004820152601760248201527f6d6178207374616b696e6720616d6f756e742069732035000000000000000000604482015260640161066d565b3361120a81898989611668565b604080518881526020810188905289916001600160a01b038416917f65658daa50ece7e5d9b3c4700c400745f04137171d9d6896eed2f10437013ee7910160405180910390a35050505050505050565b60606007828154811061126f5761126f611d41565b9060005260206000209060050201600101805461128b90611edc565b80601f01602080910402602001604051908101604052809291908181526020018280546112b790611edc565b80156113045780601f106112d957610100808354040283529160200191611304565b820191906000526020600020905b8154815290600101906020018083116112e757829003601f168201915b50505050509050919050565b60008061131c83611726565b9050611329848483611388565b611337576000915050610550565b6000611344858584611772565b60008581526006602052604081206001015491925061136386856113e8565b9050600083611372838561212f565b61137c9190612151565b98975050505050505050565b60008281526006602052604081208054839081106113a8576113a8611d41565b600091825260208083206001600160a01b038816845260016002909302019190910190526040902054156113de57506001610562565b5060009392505050565b600082815260066020526040812080548390811061140857611408611d41565b906000526020600020906002020160000154905092915050565b60606007828154811061143757611437611d41565b9060005260206000209060050201600201805480602002602001604051908101604052809291908181526020016000905b8282101561151457838290600052602060002001805461148790611edc565b80601f01602080910402602001604051908101604052809291908181526020018280546114b390611edc565b80156115005780601f106114d557610100808354040283529160200191611500565b820191906000526020600020905b8154815290600101906020018083116114e357829003601f168201915b505050505081526020019060010190611468565b505050509050919050565b600082815260066020526040812060018101839055600780549192918590811061154b5761154b611d41565b60009182526020822060026005909202010154915061156a828561212f565b905060005b828110156115b15783546001018085556000859052829085908390811061159857611598611d41565b600091825260209091206002909102015560010161156f565b505050505050565b6000600782815481106115ce576115ce611d41565b9060005260206000209060050201600301549050919050565b6000600782815481106115fc576115fc611d41565b9060005260206000209060050201600401549050919050565b6000611620826115e7565b611629836115b9565b6105509190611d8f565b60006008826040516020016116489190612168565b60408051601f198184030181529190528051602090910120901c92915050565b600083815260066020526040902080548291908490811061168b5761168b611d41565b600091825260208083206001600160a01b0389168452600160029093020191909101815260408083209390935585825260069052208054829190849081106116d5576116d5611d41565b906000526020600020906002020160000160008282546116f59190611d8f565b90915550506000838152600660205260408120600101805483929061171b908490611d8f565b909155505050505050565b60008181526006602052604081205460008060005b8381101561176957600061174f87836113e8565b905080841015611760578093508192505b5060010161173b565b50949350505050565b600082815260066020526040812080548390811061179257611792611d41565b600091825260208083206001600160a01b03881684526001600290930201919091019052604090205490509392505050565b82805482825590600052602060002090810192821561180a579160200282015b8281111561180a57825182906117fa9082611f5e565b50916020019190600101906117e4565b5061181692915061181a565b5090565b8082111561181657600061182e8282611837565b5060010161181a565b50805461184390611edc565b6000825580601f10611853575050565b601f0160209004906000526020600020908101906118719190611874565b50565b5b808211156118165760008155600101611875565b600081518084526020840193506020830160005b828110156118bb57815186526020958601959091019060010161189d565b5093949350505050565b60005b838110156118e05781810151838201526020016118c8565b50506000910152565b600081518084526119018160208601602086016118c5565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b8381101561196557601f1985840301885261194f8383516118e9565b6020988901989093509190910190600101611933565b50909695505050505050565b6060815260006119846060830186611889565b82810360208401526119968186611915565b905082810360408401526119aa8185611889565b9695505050505050565b6001600160a01b038116811461187157600080fd5b6000602082840312156119db57600080fd5b8135610562816119b4565b600080604083850312156119f957600080fd5b8235611a04816119b4565b946020939093013593505050565b60008060408385031215611a2557600080fd5b8235611a30816119b4565b91506020830135611a40816119b4565b809150509250929050565b60008083601f840112611a5d57600080fd5b5081356001600160401b03811115611a7457600080fd5b602083019150836020828501011115611a8c57600080fd5b9250929050565b60008060008060008060a08789031215611aac57600080fd5b8635611ab7816119b4565b955060208701359450604087013593506060870135925060808701356001600160401b03811115611ae757600080fd5b611af389828a01611a4b565b979a9699509497509295939492505050565b600060208284031215611b1757600080fd5b5035919050565b608081526000611b3160808301876118e9565b8281036020840152611b438187611915565b90508460408401528281036060840152611b5d8185611889565b979650505050505050565b600080600080600080600060a0888a031215611b8357600080fd5b87356001600160401b03811115611b9957600080fd5b611ba58a828b01611a4b565b90985096505060208801356001600160401b03811115611bc457600080fd5b8801601f81018a13611bd557600080fd5b80356001600160401b03811115611beb57600080fd5b8a60208260051b8401011115611c0057600080fd5b979a9699506020019760408101359660608201359650608090910135945092505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c6257611c62611c24565b604052919050565b6000806001600160401b03841115611c8457611c84611c24565b50601f8301601f1916602001611c9981611c3a565b915050828152838383011115611cae57600080fd5b828260208301376000602084830101529392505050565b600060208284031215611cd757600080fd5b81356001600160401b03811115611ced57600080fd5b8201601f81018413611cfe57600080fd5b611d0d84823560208401611c6a565b949350505050565b600080600060608486031215611d2a57600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d6957600080fd5b8151801515811461056257600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561055057610550611d79565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b855180516001600160a01b039081168352602091820151828401528188015160408085019190915288015160608401528651811660808401529086015160a0830152841660c082015261010060e08201819052600090611b5d9083018486611da2565b8181038181111561055057610550611d79565b60006001600160401b03831115611e5a57611e5a611c24565b8260051b611e6a60208201611c3a565b84815290830190602081019036831115611e8357600080fd5b845b83811015611ed25780356001600160401b03811115611ea357600080fd5b860136601f820112611eb457600080fd5b611ec336823560208401611c6a565b84525060209283019201611e85565b5095945050505050565b600181811c90821680611ef057607f821691505b602082108103610dbf57634e487b7160e01b600052602260045260246000fd5b601f8211156105e157806000526020600020601f840160051c81016020851015611f375750805b601f840160051c820191505b81811015611f575760008155600101611f43565b5050505050565b81516001600160401b03811115611f7757611f77611c24565b611f8b81611f858454611edc565b84611f10565b6020601f821160018114611fbf5760008315611fa75750848201515b600019600385901b1c1916600184901b178455611f57565b600084815260208120601f198516915b82811015611fef5787850151825560209485019460019092019101611fcf565b508482101561200d5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60608152600061202f60608301866118e9565b60208301949094525060400152919050565b6000806000610140848603121561205757600080fd5b835160208501519093509150605f8401851361207257600080fd5b60405161010081016001600160401b038111828210171561209557612095611c24565b604052806101408601878111156120ab57600080fd5b604087015b818110156120c85780518352602092830192016120b0565b505050809150509250925092565b60006101a08201905087825286602083015285604083015284606083015283608083015260a082018360005b6008811015612121578151835260209283019290910190600101612102565b505050979650505050505050565b60008261214c57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761055057610550611d79565b6000825161217a8184602087016118c5565b919091019291505056fea26469706673582212206650efa1dae8a0ebdd2388adee91ea6c26f2c5cdccd3df46cd613bee5401597d64736f6c634300081c003300000000000000000000000017b354dd2595411ff79041f930e491a4df39a278000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000004639b9f663c14bad89ddcc16966e85bc81dccd4000000000000000000000000000000000000000000000000000000000000000246170705f323265613966623733643533333333633239393765386631366536306363366200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c726567697374726174696f6e0000000000000000000000000000000000000000", - "nonce": "0x20", + "input": "0x60c0604052600160805234801561001557600080fd5b50604051611fef380380611fef833981016040819052610034916101f1565b600080546001600160a01b0319166001600160a01b0388161790556080859052604051869086908690869061009c9061008a90610075908590602001610295565b60408051601f198184030181529190526100dd565b826040516020016100759291906102b1565b60a0525050600680546001600160a01b039586166001600160a01b0319918216179091556007805494909516931692909217909255506102d7945050505050565b60006008826040516020016100f29190610295565b60408051601f198184030181529190528051602090910120901c92915050565b80516001600160a01b038116811461012957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015f578181015183820152602001610147565b50506000910152565b600082601f83011261017957600080fd5b81516001600160401b038111156101925761019261012e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101c0576101c061012e565b6040528181528382016020018510156101d857600080fd5b6101e9826020830160208701610144565b949350505050565b60008060008060008060c0878903121561020a57600080fd5b61021387610112565b6020880151604089015191975095506001600160401b0381111561023657600080fd5b61024289828a01610168565b606089015190955090506001600160401b0381111561026057600080fd5b61026c89828a01610168565b93505061027b60808801610112565b915061028960a08801610112565b90509295509295509295565b600082516102a7818460208701610144565b9190910192915050565b828152600082516102c9816020850160208701610144565b919091016020019392505050565b60805160a051611cf36102fc6000396000610d6501526000610d270152611cf36000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80639c1f819811610097578063c8382a3311610066578063c8382a3314610277578063d4e51d301461028a578063dca090041461029d578063fbfa77cf146102b057600080fd5b80639c1f8198146101f2578063a5260ad914610215578063a87430ba14610228578063b74207021461026457600080fd5b80635839a889116100d35780635839a8891461017c578063753e9ef01461018f5780637ccec52c146101ba57806391e40730146101cf57600080fd5b80630bfb705914610105578063163f7522146101255780633cbc2ef2146101485780634e9b9e001461015b575b600080fd5b61010d6102c3565b60405161011c9392919061157d565b60405180910390f35b6101386101333660046115d7565b610440565b604051901515815260200161011c565b6101386101563660046115f2565b610473565b61016e6101693660046115f2565b6104a3565b60405190815260200161011c565b61013861018a3660046115f2565b6104b6565b6000546101a2906001600160a01b031681565b6040516001600160a01b03909116815260200161011c565b6101cd6101c8366004611664565b6104fe565b005b61016e6101dd3660046116d7565b60036020526000908152604090206001015481565b6102056102003660046116d7565b61079f565b60405161011c94939291906116f0565b6101cd61022336600461173a565b610871565b61024f6102363660046115d7565b6001602081905260009182526040909120805491015482565b6040805192835260208301919091520161011c565b61016e6102723660046116d7565b610a55565b6101386102853660046116d7565b610bf9565b6101cd610298366004611897565b610c13565b6006546101a2906001600160a01b031681565b6007546101a2906001600160a01b031681565b606080606060006102d360045490565b9050806001600160401b038111156102ed576102ed6117f6565b604051908082528060200260200182016040528015610316578160200160208202803683370190505b509350806001600160401b03811115610331576103316117f6565b60405190808252806020026020018201604052801561036457816020015b606081526020019060019003908161034f5790505b509250806001600160401b0381111561037f5761037f6117f6565b6040519080825280602002602001820160405280156103a8578160200160208202803683370190505b50915060005b8181101561043957808582815181106103c9576103c96118e7565b6020026020010181815250506103de81610e66565b8482815181106103f0576103f06118e7565b60200260200101819052506104148160009081526003602052604090206001015490565b838281518110610426576104266118e7565b60209081029190910101526001016103ae565b5050909192565b6001600160a01b0381166000908152600160205260408120541561046657506001919050565b506000919050565b919050565b60008181526003602090815260408083206001600160a01b038616845260020190915290205460ff165b92915050565b60006104af8383610f1c565b9392505050565b60008181526003602052604081205460005b818110156104f3576104db858583610f94565b156104eb5760019250505061049d565b6001016104c8565b506000949350505050565b3360009081526001602052604081205490036105555760405162461bcd60e51b815260206004820152601160248201527075736572206e6f74206578697374696e6760781b60448201526064015b60405180910390fd5b600087815260036020526040812054889133905b828110156105d057600061057e838684610f94565b90508015156001036105c75760405162461bcd60e51b81526020600482015260126024820152711d5cd95c88185b1c9958591e481d9bdd195960721b604482015260640161054c565b50600101610569565b5089436105dc82610ff4565b11156106215760405162461bcd60e51b81526020600482015260146024820152731d9bdd19481a185cc81b9bdd081cdd185c9d195960621b604482015260640161054c565b4361062b82611022565b61063483610ff4565b61063e9190611913565b101561067d5760405162461bcd60e51b815260206004820152600e60248201526d1d9bdd19481a185cc8195b99195960921b604482015260640161054c565b60058911156106ce5760405162461bcd60e51b815260206004820152601760248201527f6d6178207374616b696e6720616d6f756e742069732035000000000000000000604482015260640161054c565b336106db818d8d8d611050565b600754600654604051631712af5560e21b81526001600160a01b0392831692635c4abd5492610719929116908e908e908e908e908e90600401611926565b600060405180830381600087803b15801561073357600080fd5b505af1158015610747573d6000803e3d6000fd5b5050604080518e8152602081018e90528f93506001600160a01b03851692507f65658daa50ece7e5d9b3c4700c400745f04137171d9d6896eed2f10437013ee7910160405180910390a3505050505050505050505050565b6060806000606060006107be8660009081526003602052604090205490565b60008781526003602052604090206001015493509050806001600160401b038111156107ec576107ec6117f6565b604051908082528060200260200182016040528015610815578160200160208202803683370190505b50915060005b818110156108525761082d878261110e565b83828151811061083f5761083f6118e7565b602090810291909101015260010161081b565b5061085c86610e66565b61086587611148565b94509450509193509193565b6004546040805160a08101825282815281516020601f8b0181900481028201810190935289815260009280830191908c908c90819084018382808284376000920191909152505050908252506020016108ca888a611979565b81526020808201889052604090910186905260048054600181018255600091909152825160059091027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b810191825591830151929350839290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c01906109519082611a97565b506040820151805161096d9160028401916020909101906113d0565b506060820151816003015560808201518160040155505061098e8284611245565b600754600654604051636cb5dc9960e01b81526001600160a01b03918216600482015260248101869052911690636cb5dc9990604401600060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b50505050817f6912e5abe531ca5f3b6f973f97278ab6731cdec0178a7b3c2c7a5822a3f1732b610a2184610e66565b610a2a85610ff4565b610a3386611022565b604051610a4293929190611b55565b60405180910390a2505050505050505050565b60008143610a6282611022565b610a6b83610ff4565b610a759190611913565b10610ab65760405162461bcd60e51b8152602060048201526011602482015270766f7465207374696c6c2061637469766560781b604482015260640161054c565b33610ac18185610473565b15610b055760405162461bcd60e51b81526020600482015260146024820152731d5cd95c88185b1c9958591e4818db185a5b595960621b604482015260640161054c565b60008481526003602090815260408083206001600160a01b03851684526002019091529020805460ff191660011790556000610b418286610f1c565b6007546006546040516350edcbc160e11b81526001600160a01b03918216600482015260248101849052929350169063a1db978290604401600060405180830381600087803b158015610b9357600080fd5b505af1158015610ba7573d6000803e3d6000fd5b5050505084826001600160a01b03167ff01da32686223933d8a18a391060918c7f11a3648639edd87ae013e2e273174383604051610be791815260200190565b60405180910390a39250505b50919050565b6000610c04826112df565b43111561046657506001919050565b3360009081526001602052604090205415610c695760405162461bcd60e51b815260206004820152601660248201527507573657220616c7265616479207369676e65642075760541b604482015260640161054c565b6000339050600080600084806020019051810190610c879190611b7a565b600082815260026020526040902054929550909350915060ff161515600103610cf25760405162461bcd60e51b815260206004820152601e60248201527f6e756c6c69666965724861736820616c7265616479206578697374696e670000604482015260640161054c565b6000546040516bffffffffffffffffffffffff19606087901b1660208201526001600160a01b0390911690633bc778e39085907f000000000000000000000000000000000000000000000000000000000000000090610d62906034016040516020818303038152906040526112fd565b867f0000000000000000000000000000000000000000000000000000000000000000876040518763ffffffff1660e01b8152600401610da696959493929190611c0f565b60006040518083038186803b158015610dbe57600080fd5b505afa158015610dd2573d6000803e3d6000fd5b5050506000838152600260209081526040808320805460ff1916600190811790915581518083018352878152438185019081526001600160a01b038b168087528386529584902082518082559151930183905583519081529384019190915293507f47c8e83729a89f8b0c23b722e4c21f48295ddfcd683910c564e11e6b6037d01c910160405180910390a2505050505050565b606060048281548110610e7b57610e7b6118e7565b90600052602060002090600502016001018054610e9790611a14565b80601f0160208091040260200160405190810160405280929190818152602001828054610ec390611a14565b8015610f105780601f10610ee557610100808354040283529160200191610f10565b820191906000526020600020905b815481529060010190602001808311610ef357829003601f168201915b50505050509050919050565b600080610f2883611332565b9050610f35848483610f94565b610f4357600091505061049d565b6000610f5085858461137e565b600085815260036020526040812060010154919250610f6f868561110e565b9050600083610f7e8385611c68565b610f889190611c8a565b98975050505050505050565b6000828152600360205260408120805483908110610fb457610fb46118e7565b600091825260208083206001600160a01b03881684526001600290930201919091019052604090205415610fea575060016104af565b5060009392505050565b600060048281548110611009576110096118e7565b9060005260206000209060050201600301549050919050565b600060048281548110611037576110376118e7565b9060005260206000209060050201600401549050919050565b6000838152600360205260409020805482919084908110611073576110736118e7565b600091825260208083206001600160a01b0389168452600160029093020191909101815260408083209390935585825260039052208054829190849081106110bd576110bd6118e7565b906000526020600020906002020160000160008282546110dd9190611913565b909155505060008381526003602052604081206001018054839290611103908490611913565b909155505050505050565b600082815260036020526040812080548390811061112e5761112e6118e7565b906000526020600020906002020160000154905092915050565b60606004828154811061115d5761115d6118e7565b9060005260206000209060050201600201805480602002602001604051908101604052809291908181526020016000905b8282101561123a5783829060005260206000200180546111ad90611a14565b80601f01602080910402602001604051908101604052809291908181526020018280546111d990611a14565b80156112265780601f106111fb57610100808354040283529160200191611226565b820191906000526020600020905b81548152906001019060200180831161120957829003601f168201915b50505050508152602001906001019061118e565b505050509050919050565b6000828152600360205260408120600181018390556004805491929185908110611271576112716118e7565b6000918252602082206002600590920201015491506112908285611c68565b905060005b828110156112d7578354600101808555600085905282908590839081106112be576112be6118e7565b6000918252602090912060029091020155600101611295565b505050505050565b60006112ea82611022565b6112f383610ff4565b61049d9190611913565b60006008826040516020016113129190611ca1565b60408051601f198184030181529190528051602090910120901c92915050565b60008181526003602052604081205460008060005b8381101561137557600061135b878361110e565b90508084101561136c578093508192505b50600101611347565b50949350505050565b600082815260036020526040812080548390811061139e5761139e6118e7565b600091825260208083206001600160a01b03881684526001600290930201919091019052604090205490509392505050565b828054828255906000526020600020908101928215611416579160200282015b8281111561141657825182906114069082611a97565b50916020019190600101906113f0565b50611422929150611426565b5090565b8082111561142257600061143a8282611443565b50600101611426565b50805461144f90611a14565b6000825580601f1061145f575050565b601f01602090049060005260206000209081019061147d9190611480565b50565b5b808211156114225760008155600101611481565b600081518084526020840193506020830160005b828110156114c75781518652602095860195909101906001016114a9565b5093949350505050565b60005b838110156114ec5781810151838201526020016114d4565b50506000910152565b6000815180845261150d8160208601602086016114d1565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b8381101561157157601f1985840301885261155b8383516114f5565b602098890198909350919091019060010161153f565b50909695505050505050565b6060815260006115906060830186611495565b82810360208401526115a28186611521565b905082810360408401526115b68185611495565b9695505050505050565b80356001600160a01b038116811461046e57600080fd5b6000602082840312156115e957600080fd5b6104af826115c0565b6000806040838503121561160557600080fd5b61160e836115c0565b946020939093013593505050565b60008083601f84011261162e57600080fd5b5081356001600160401b0381111561164557600080fd5b60208301915083602082850101111561165d57600080fd5b9250929050565b600080600080600080600060c0888a03121561167f57600080fd5b873596506020880135955060408801359450606088013593506080880135925060a08801356001600160401b038111156116b857600080fd5b6116c48a828b0161161c565b989b979a50959850939692959293505050565b6000602082840312156116e957600080fd5b5035919050565b60808152600061170360808301876114f5565b82810360208401526117158187611521565b9050846040840152828103606084015261172f8185611495565b979650505050505050565b600080600080600080600060a0888a03121561175557600080fd5b87356001600160401b0381111561176b57600080fd5b6117778a828b0161161c565b90985096505060208801356001600160401b0381111561179657600080fd5b8801601f81018a136117a757600080fd5b80356001600160401b038111156117bd57600080fd5b8a60208260051b84010111156117d257600080fd5b979a9699506020019760408101359660608201359650608090910135945092505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611834576118346117f6565b604052919050565b6000806001600160401b03841115611856576118566117f6565b50601f8301601f191660200161186b8161180c565b91505082815283838301111561188057600080fd5b828260208301376000602084830101529392505050565b6000602082840312156118a957600080fd5b81356001600160401b038111156118bf57600080fd5b8201601f810184136118d057600080fd5b6118df8482356020840161183c565b949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561049d5761049d6118fd565b60018060a01b038716815285602082015284604082015283606082015260a060808201528160a0820152818360c0830137600081830160c090810191909152601f909201601f1916010195945050505050565b60006001600160401b03831115611992576119926117f6565b8260051b6119a26020820161180c565b848152908301906020810190368311156119bb57600080fd5b845b83811015611a0a5780356001600160401b038111156119db57600080fd5b860136601f8201126119ec57600080fd5b6119fb3682356020840161183c565b845250602092830192016119bd565b5095945050505050565b600181811c90821680611a2857607f821691505b602082108103610bf357634e487b7160e01b600052602260045260246000fd5b601f821115611a9257806000526020600020601f840160051c81016020851015611a6f5750805b601f840160051c820191505b81811015611a8f5760008155600101611a7b565b50505b505050565b81516001600160401b03811115611ab057611ab06117f6565b611ac481611abe8454611a14565b84611a48565b6020601f821160018114611af85760008315611ae05750848201515b600019600385901b1c1916600184901b178455611a8f565b600084815260208120601f198516915b82811015611b285787850151825560209485019460019092019101611b08565b5084821015611b465786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b606081526000611b6860608301866114f5565b60208301949094525060400152919050565b60008060006101408486031215611b9057600080fd5b835160208501519093509150605f84018513611bab57600080fd5b60405161010081016001600160401b0381118282101715611bce57611bce6117f6565b60405280610140860187811115611be457600080fd5b604087015b81811015611c01578051835260209283019201611be9565b505050809150509250925092565b60006101a08201905087825286602083015285604083015284606083015283608083015260a082018360005b6008811015611c5a578151835260209283019290910190600101611c3b565b505050979650505050505050565b600082611c8557634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761049d5761049d6118fd565b60008251611cb38184602087016114d1565b919091019291505056fea264697066735822122089556ce5f5b7139311e7816da8771d7ebfb13eef88b88c401655247cf325eab564736f6c634300081c003300000000000000000000000017b354dd2595411ff79041f930e491a4df39a278000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000002cfc85d8e48f8eab294be644d9e25c303086300300000000000000000000000029c4b679f04c0a86983b19380766d3b0ca679a5900000000000000000000000000000000000000000000000000000000000000246170705f323265613966623733643533333333633239393765386631366536306363366200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c726567697374726174696f6e0000000000000000000000000000000000000000", + "nonce": "0x22", "chainId": "0x1e0" }, "additionalContracts": [], @@ -29,32 +50,55 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x1e8328", + "cumulativeGasUsed": "0x86fbf", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x0", - "transactionHash": "0x3a17ba181669bbe9cdebf3a6c1ea1a62de5963b33867b6dce3f03cee174247d2", + "transactionHash": "0x260ca8840d7abe1bb87776946027897936e92de96eb78958e4edad990b7c5812", "transactionIndex": "0x1", - "blockHash": "0x6e8ef5f5b1d63c8e44116c976ff20d3a2d11ceeb17efebc77952415f4e113c46", - "blockNumber": "0x5f1469", - "gasUsed": "0x1dd7c5", + "blockHash": "0x15165c0ad09b82d5f2c4ea3534af7627da45086380d3cf49c1fdcfa758d3f5c8", + "blockNumber": "0x5f15f1", + "gasUsed": "0x7c450", + "effectiveGasPrice": "0xf433f", + "blobGasUsed": "0x0", + "from": "0x4639b9f663c14bad89ddcc16966e85bc81dccd40", + "to": null, + "contractAddress": "0x29c4b679f04c0a86983b19380766d3b0ca679a59", + "l1BaseFeeScalar": "0x21f9", + "l1BlobBaseFee": "0xd2be11b5", + "l1BlobBaseFeeScalar": "0xc5f4f", + "l1Fee": "0x578e5811cb2", + "l1GasPrice": "0x293c5fb17", + "l1GasUsed": "0x5553" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x22efe2", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x7a6c4070ea25e67ab6d9965abb299c74fd7656b0c8c6928276e1acebccccf07a", + "transactionIndex": "0x2", + "blockHash": "0x15165c0ad09b82d5f2c4ea3534af7627da45086380d3cf49c1fdcfa758d3f5c8", + "blockNumber": "0x5f15f1", + "gasUsed": "0x1a8023", "effectiveGasPrice": "0xf433f", "blobGasUsed": "0x0", "from": "0x4639b9f663c14bad89ddcc16966e85bc81dccd40", "to": null, - "contractAddress": "0x7447696e22c7074683c4ebcc53d3321939f3b403", + "contractAddress": "0x8cbef8f4ca9020a7ea6565480e3d90e1704ffadc", "l1BaseFeeScalar": "0x21f9", - "l1BlobBaseFee": "0x6c1d8d5f", + "l1BlobBaseFee": "0xd2be11b5", "l1BlobBaseFeeScalar": "0xc5f4f", - "l1Fee": "0xe10d1e91ba8", - "l1GasPrice": "0x259ce7dae", - "l1GasUsed": "0x1501e" + "l1Fee": "0x1382c9332927", + "l1GasPrice": "0x293c5fb17", + "l1GasUsed": "0x1303a" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1731797931, + "timestamp": 1731798716, "chain": 480, - "commit": "7a78cb5" + "commit": "754c393" } \ No newline at end of file diff --git a/packages/foundry/contracts/HumanOracleV1.sol b/packages/foundry/contracts/HumanOracleV1.sol index 21c6e3f..e834420 100644 --- a/packages/foundry/contracts/HumanOracleV1.sol +++ b/packages/foundry/contracts/HumanOracleV1.sol @@ -1,13 +1,13 @@ //SPDX-License-Identifier: MIT pragma solidity ^0.8.28; -import {IWorldID} from "../lib/world-id-onchain-template/contracts/src/interfaces/IWorldID.sol"; import {WorldIdRegister} from "./WorldIdRegister.sol"; import {Permit2Vault} from "./Permit2Vault.sol"; import {ByteHasher} from "./ByteHasher.sol"; +import {IERC20} from "../interfaces/IERC20.sol"; // import "forge-std/console.sol"; -contract HumanOracleV1 is WorldIdRegister, Permit2Vault { +contract HumanOracleV1 is WorldIdRegister { // ==================== // ====== Structs ===== @@ -42,6 +42,8 @@ contract HumanOracleV1 is WorldIdRegister, Permit2Vault { // private mapping (uint256 => bool) private registeredNullifierHashes; + IERC20 public worldToken; + Permit2Vault public vault; // ==================== @@ -100,7 +102,9 @@ contract HumanOracleV1 is WorldIdRegister, Permit2Vault { // === Constructor ==== // ==================== - constructor(address _worldIdAddr, uint256 _groupId, string memory _appId, string memory _action, address _permit, address _owner) WorldIdRegister(_worldIdAddr, _groupId, _appId, _action) Permit2Vault(_permit, _owner) { + constructor(address _worldIdAddr, uint256 _groupId, string memory _appId, string memory _action, address _worldTokenAddr, address _vault) WorldIdRegister(_worldIdAddr, _groupId, _appId, _action) { + worldToken = IERC20(_worldTokenAddr); + vault = Permit2Vault(_vault); } // ==================== @@ -109,10 +113,18 @@ contract HumanOracleV1 is WorldIdRegister, Permit2Vault { // external - function submitVotingDecisionWithStake(uint256 voteId, uint256 answerIndex, uint256 amount) userExists() hasNotVoted(voteId) voteActive(voteId) external { + function submitVotingDecisionWithStake( + uint256 voteId, + uint256 answerIndex, + uint256 amount, + uint256 nonce, + uint256 deadline, + bytes calldata signature + ) userExists() hasNotVoted(voteId) voteActive(voteId) external { require(amount <= 5, "max staking amount is 5"); address userAddr = address(msg.sender); stakeForAnswer(userAddr, voteId, answerIndex, amount); + vault.depositERC20(worldToken, amount, nonce, deadline, signature); emit VoteSubmitted(userAddr, voteId, answerIndex, amount); } @@ -121,6 +133,7 @@ contract HumanOracleV1 is WorldIdRegister, Permit2Vault { require(!hasUserClaimedForVote(userAddr, voteId), "user already claimed"); setUserHasClaimedToTrueForVote(userAddr, voteId); uint256 payout = getStakeResolvedUserAmount(userAddr, voteId); + vault.withdrawERC20(worldToken, payout); emit RewardClaimed(userAddr, voteId, payout); return payout; } @@ -146,6 +159,8 @@ contract HumanOracleV1 is WorldIdRegister, Permit2Vault { createNewStake(voteId, bounty); + vault.depositERC20Regular(worldToken, bounty); + emit VoteCreated(voteId, getVoteQuestion(voteId), getVoteStartBlock(voteId), getVoteDurationInBlocks(voteId)); } diff --git a/packages/foundry/contractsToVerify/HumanOracleV1.sol b/packages/foundry/contractsToVerify/HumanOracleV1.sol new file mode 100644 index 0000000..d894972 --- /dev/null +++ b/packages/foundry/contractsToVerify/HumanOracleV1.sol @@ -0,0 +1,329 @@ +//SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +import {IWorldID} from "./IWorldID.sol"; +import {WorldIdRegister} from "./WorldIdRegister.sol"; +import {Permit2Vault} from "./Permit2Vault.sol"; +import {ByteHasher} from "./ByteHasher.sol"; +import {IERC20} from "./IERC20.sol"; +// import "forge-std/console.sol"; + +contract HumanOracleV1 is WorldIdRegister { + + // ==================== + // ====== Structs ===== + // ==================== + + struct Option { + uint256 totalStake; + mapping (address => uint256) userStakes; + } + + struct Stake { + Option[] answers; + uint256 totalStake; + mapping (address => bool) hasUserClaimed; + } + + struct Vote { + uint256 id; + string question; + string[] answers; + uint256 startBlock; + uint256 durationInBlocks; + } + + // ==================== + // ==== Variables ===== + // ==================== + + // public + mapping (uint256 => Stake) public stakesForVoteIds; + Vote[] votes; + + // private + mapping (uint256 => bool) private registeredNullifierHashes; + IERC20 public worldToken; + Permit2Vault public vault; + + + // ==================== + // ====== Events ====== + // ==================== + + event VoteCreated(uint256 indexed voteId, string question, uint256 startBlock, uint256 durationInBlocks); + + event VoteSubmitted(address indexed user, uint256 indexed voteId, uint256 answerIndex, uint256 stakeAmount); + + event RewardClaimed(address indexed user, uint256 indexed voteId, uint256 rewardAmount); + + // ==================== + // ==== Modifiers ===== + // ==================== + + modifier hasNotVoted(uint256 voteId) { + uint256 answerCount = getStakeAnswerCount(voteId); + address userAddr = address(msg.sender); + for (uint i = 0; i < answerCount; i++) { + bool hasVoted = hasUserVotedForStakeAnswer(userAddr, voteId, i); + if (hasVoted == true) { + revert("user already voted"); + } + } + _; + } + + modifier voteActive(uint256 voteId) { + require(getVoteStartBlock(voteId) <= block.number, "vote has not started"); + require(getVoteStartBlock(voteId) + getVoteDurationInBlocks(voteId) >= block.number, "vote has ended"); + _; + } + + modifier voteEnded(uint256 voteId) { + require(getVoteStartBlock(voteId) + getVoteDurationInBlocks(voteId) < block.number, "vote still active"); + _; + } + + modifier userExists() { + if (users[address(msg.sender)].nullifierHash == 0) { + revert("user not existing"); + } + _; + } + + // security measurement + // modifier userOldEnough(uint256 voteId) { + // if (users[address(msg.sender)].createdAtBlock > getVoteStartBlock(voteId)) { + // revert("user was created after voting begun"); + // } + // _; + // } + + // ==================== + // === Constructor ==== + // ==================== + + constructor(address _worldIdAddr, uint256 _groupId, string memory _appId, string memory _action, address _worldTokenAddr, address _vault) WorldIdRegister(_worldIdAddr, _groupId, _appId, _action) { + worldToken = IERC20(_worldTokenAddr); + vault = Permit2Vault(_vault); + } + + // ==================== + // ==== Functions ===== + // ==================== + + // external + + function submitVotingDecisionWithStake( + uint256 voteId, + uint256 answerIndex, + uint256 amount, + uint256 nonce, + uint256 deadline, + bytes calldata signature + ) userExists() hasNotVoted(voteId) voteActive(voteId) external { + require(amount <= 5, "max staking amount is 5"); + address userAddr = address(msg.sender); + stakeForAnswer(userAddr, voteId, answerIndex, amount); + vault.depositERC20(worldToken, amount, nonce, deadline, signature); + emit VoteSubmitted(userAddr, voteId, answerIndex, amount); + } + + function claimRewardForVote(uint256 voteId) voteEnded(voteId) external returns (uint256) { + address userAddr = address(msg.sender); + require(!hasUserClaimedForVote(userAddr, voteId), "user already claimed"); + setUserHasClaimedToTrueForVote(userAddr, voteId); + uint256 payout = getStakeResolvedUserAmount(userAddr, voteId); + vault.withdrawERC20(worldToken, payout); + emit RewardClaimed(userAddr, voteId, payout); + return payout; + } + + function isUserRegistered(address userAddr) external view returns (bool) { + if (users[userAddr].nullifierHash != 0) { + return true; + } else { + return false; + } + } + + function createVote(string calldata question, string[] calldata answers, uint256 startBlock, uint256 durationInBlocks, uint256 bounty) external { + uint256 voteId = votes.length; + Vote memory newVote = Vote({ + id: voteId, + question: question, + answers: answers, + startBlock: startBlock, + durationInBlocks: durationInBlocks + }); + votes.push(newVote); + + createNewStake(voteId, bounty); + + vault.depositERC20Regular(worldToken, bounty); + + emit VoteCreated(voteId, getVoteQuestion(voteId), getVoteStartBlock(voteId), getVoteDurationInBlocks(voteId)); + } + + function getVotingPage(uint256 voteId) external view returns ( + string memory question, + string[] memory answers, + uint256 totalStake, + uint256[] memory stakePerAnswer + ) { + uint256 answerCount = getStakeAnswerCount(voteId); + totalStake = getStakeTotalStake(voteId); + stakePerAnswer = new uint256[](answerCount); + + for (uint i = 0; i < answerCount; i++) { + stakePerAnswer[i] = getStakeAnswerStake(voteId, i); + } + + return (getVoteQuestion(voteId), getVoteAnswers(voteId), totalStake, stakePerAnswer); + } + + function getVotingList() external view returns ( + uint256[] memory ids, + string[] memory questions, + uint256[] memory totalStakes + ) { + uint256 voteCount = getVoteCount(); + ids = new uint256[](voteCount); + questions = new string[](voteCount); + totalStakes = new uint256[](voteCount); + + for (uint i = 0; i < voteCount; i++) { + ids[i] = i; + questions[i] = getVoteQuestion(i); + totalStakes[i] = getStakeTotalStake(i); + } + + return (ids, questions, totalStakes); + } + + function isVotingOver(uint256 voteId) external view returns (bool) { + if (block.number > getVoteEndBlock(voteId)) { + return true; + } else { + return false; + } + } + + function hasUserVotedForVote(address userAddr, uint256 voteId) external view returns (bool) { + uint256 answerCount = getStakeAnswerCount(voteId); + for (uint i = 0; i < answerCount; i++) { + if (hasUserVotedForStakeAnswer(userAddr, voteId, i)) { + return true; + } + } + return false; + } + + function hasUserClaimedForVote(address userAddr, uint256 voteId) public view returns (bool) { + return stakesForVoteIds[voteId].hasUserClaimed[userAddr]; + } + + function getUserPayoutForVote(address userAddr, uint256 voteId) public view returns (uint256 payout) { + return getStakeResolvedUserAmount(userAddr, voteId); + } + + // internal + + // stake related + function createNewStake(uint256 voteId, uint256 initialStake) internal { + Stake storage newStake = stakesForVoteIds[voteId]; + newStake.totalStake = initialStake; + uint256 answerCount = votes[voteId].answers.length; + uint256 initialStakePerAnswer = initialStake / answerCount; + for (uint i = 0; i < answerCount; i++) { + newStake.answers.push(); + newStake.answers[i].totalStake = initialStakePerAnswer; + } + } + + function stakeForAnswer(address userAddr, uint256 voteId, uint256 answerIndex, uint256 amount) internal { + stakesForVoteIds[voteId].answers[answerIndex].userStakes[userAddr] = amount; + stakesForVoteIds[voteId].answers[answerIndex].totalStake += amount; + stakesForVoteIds[voteId].totalStake += amount; + } + + function setUserHasClaimedToTrueForVote(address userAddr, uint256 voteId) internal { + stakesForVoteIds[voteId].hasUserClaimed[userAddr] = true; + } + + function getStakeResolvedUserAmount(address userAddr, uint256 voteId) internal view returns (uint256 amount) { + uint256 highestStakeAnswerIndex = getStakeHighestAnswerIndex(voteId); + if (!hasUserVotedForStakeAnswer(userAddr, voteId, highestStakeAnswerIndex)) { + return 0; + } + uint256 userStake = getUserStakeOfStakeAnswer(userAddr, voteId, highestStakeAnswerIndex); + uint256 totalStake = getStakeTotalStake(voteId); + uint256 answerStake = getStakeAnswerStake(voteId, highestStakeAnswerIndex); + uint256 userPayout = totalStake / answerStake * userStake; + return userPayout; + } + + function getStakeHighestAnswerIndex(uint256 voteId) internal view returns (uint256 answerIndex) { + uint256 answerCount = getStakeAnswerCount(voteId); + uint256 highestAmount = 0; + uint256 highestIndex = 0; + + for (uint i = 0; i < answerCount; i++) { + uint256 answerStake = getStakeAnswerStake(voteId, i); + if (highestAmount < answerStake) { + highestAmount = answerStake; + highestIndex = i; + } + } + return highestIndex; + } + + function getStakeAnswerStake(uint256 voteId, uint256 answerIndex) internal view returns (uint256 stake) { + return stakesForVoteIds[voteId].answers[answerIndex].totalStake; + } + + function getStakeAnswerCount(uint256 voteId) internal view returns (uint256 count) { + return stakesForVoteIds[voteId].answers.length; + } + + function getStakeTotalStake(uint256 voteId) internal view returns (uint256 stake) { + return stakesForVoteIds[voteId].totalStake; + } + + function hasUserVotedForStakeAnswer(address userAddr, uint256 voteId, uint256 answerIndex) internal view returns (bool voted) { + if (stakesForVoteIds[voteId].answers[answerIndex].userStakes[userAddr] != 0) { + return true; + } else { + return false; + } + } + + function getUserStakeOfStakeAnswer(address userAddr, uint256 voteId, uint256 answerIndex) internal view returns (uint256 amount) { + return stakesForVoteIds[voteId].answers[answerIndex].userStakes[userAddr]; + } + + // vote related + function getVoteCount() internal view returns (uint256 count) { + return votes.length; + } + + function getVoteQuestion(uint256 voteId) internal view returns (string memory question) { + return votes[voteId].question; + } + + function getVoteAnswers(uint256 voteId) internal view returns (string[] memory answers) { + return votes[voteId].answers; + } + + function getVoteStartBlock(uint256 voteId) internal view returns (uint256 startBlock) { + return votes[voteId].startBlock; + } + + function getVoteDurationInBlocks(uint256 voteId) internal view returns (uint256 durationInBlocks) { + return votes[voteId].durationInBlocks; + } + + function getVoteEndBlock(uint256 voteId) internal view returns (uint256 endBlock) { + return getVoteStartBlock(voteId) + getVoteDurationInBlocks(voteId); + } +} \ No newline at end of file diff --git a/packages/foundry/contractsToVerify/WorldIDRegister.sol b/packages/foundry/contractsToVerify/WorldIDRegister.sol index ac6f27b..f90adc8 100644 --- a/packages/foundry/contractsToVerify/WorldIDRegister.sol +++ b/packages/foundry/contractsToVerify/WorldIDRegister.sol @@ -5,7 +5,7 @@ import {IWorldID} from "./IWorldID.sol"; import {ByteHasher} from "./ByteHasher.sol"; // import "forge-std/console.sol"; -contract WorldIDRegister { +contract WorldIdRegister { using ByteHasher for bytes; diff --git a/packages/foundry/script/DeployHumanOracleV1.s.sol b/packages/foundry/script/DeployHumanOracleV1.s.sol index 090c8b3..a3cd8b9 100644 --- a/packages/foundry/script/DeployHumanOracleV1.s.sol +++ b/packages/foundry/script/DeployHumanOracleV1.s.sol @@ -15,7 +15,8 @@ contract DeployHumanOracleV1 is ScaffoldETHDeploy { address public owner = 0x4639B9F663C14Bad89Ddcc16966e85Bc81dCCD40; function run() external ScaffoldEthDeployerRunner { - HumanOracleV1 humanOracle = new HumanOracleV1(worldIdAddr, groupId, appId, action, permit, owner); + Permit2Vault vault = new Permit2Vault(permit, owner); + HumanOracleV1 humanOracle = new HumanOracleV1(worldIdAddr, groupId, appId, action, worldToken, address(vault)); console.logString( string.concat( "HumanOracleWithWorldIdRegister deployed at: ", vm.toString(address(humanOracle)) diff --git a/packages/nextjs-app/src/contracts/deployedContracts.ts b/packages/nextjs-app/src/contracts/deployedContracts.ts index c04d33e..d60dee5 100644 --- a/packages/nextjs-app/src/contracts/deployedContracts.ts +++ b/packages/nextjs-app/src/contracts/deployedContracts.ts @@ -288,32 +288,12 @@ const deployedContracts = { }, }, 480: { - HumanOracleV1: { - address: "0x7447696e22c7074683c4ebcc53d3321939f3b403", + Permit2Vault: { + address: "0x29c4b679f04c0a86983b19380766d3b0ca679a59", abi: [ { type: "constructor", inputs: [ - { - name: "_worldIdAddr", - type: "address", - internalType: "address", - }, - { - name: "_groupId", - type: "uint256", - internalType: "uint256", - }, - { - name: "_appId", - type: "string", - internalType: "string", - }, - { - name: "_action", - type: "string", - internalType: "string", - }, { name: "_permit", type: "address", @@ -342,49 +322,121 @@ const deployedContracts = { }, { type: "function", - name: "claimRewardForVote", + name: "depositERC20", inputs: [ { - name: "voteId", + name: "token", + type: "address", + internalType: "contract IERC20", + }, + { + name: "amount", type: "uint256", internalType: "uint256", }, + { + name: "nonce", + type: "uint256", + internalType: "uint256", + }, + { + name: "deadline", + type: "uint256", + internalType: "uint256", + }, + { + name: "signature", + type: "bytes", + internalType: "bytes", + }, ], - outputs: [ + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "depositERC20Regular", + inputs: [ { - name: "", + name: "token", + type: "address", + internalType: "contract IERC20", + }, + { + name: "amount", type: "uint256", internalType: "uint256", }, ], + outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "createVote", + name: "rescueTokens", inputs: [ { - name: "question", - type: "string", - internalType: "string", + name: "token", + type: "address", + internalType: "contract IERC20", }, { - name: "answers", - type: "string[]", - internalType: "string[]", + name: "recipient", + type: "address", + internalType: "address", }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "tokenBalancesByUser", + inputs: [ { - name: "startBlock", + name: "", + type: "address", + internalType: "address", + }, + { + name: "", + type: "address", + internalType: "contract IERC20", + }, + ], + outputs: [ + { + name: "", type: "uint256", internalType: "uint256", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalBalance", + inputs: [], + outputs: [ { - name: "durationInBlocks", + name: "", type: "uint256", internalType: "uint256", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "withdrawERC20", + inputs: [ { - name: "bounty", + name: "token", + type: "address", + internalType: "contract IERC20", + }, + { + name: "amount", type: "uint256", internalType: "uint256", }, @@ -393,49 +445,130 @@ const deployedContracts = { stateMutability: "nonpayable", }, { - type: "function", - name: "depositERC20", + type: "event", + name: "Deposited", inputs: [ { - name: "token", + name: "from", type: "address", - internalType: "contract IERC20", + indexed: false, + internalType: "address", }, { name: "amount", type: "uint256", + indexed: false, internalType: "uint256", }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdrawn", + inputs: [ { - name: "nonce", + name: "to", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "amount", type: "uint256", + indexed: false, internalType: "uint256", }, + ], + anonymous: false, + }, + ], + inheritedFunctions: {}, + }, + HumanOracleV1: { + address: "0x8cbef8f4ca9020a7ea6565480e3d90e1704ffadc", + abi: [ + { + type: "constructor", + inputs: [ + { + name: "_worldIdAddr", + type: "address", + internalType: "address", + }, { - name: "deadline", + name: "_groupId", type: "uint256", internalType: "uint256", }, { - name: "signature", - type: "bytes", - internalType: "bytes", + name: "_appId", + type: "string", + internalType: "string", + }, + { + name: "_action", + type: "string", + internalType: "string", + }, + { + name: "_worldTokenAddr", + type: "address", + internalType: "address", + }, + { + name: "_vault", + type: "address", + internalType: "address", }, ], - outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "depositERC20Regular", + name: "claimRewardForVote", inputs: [ { - name: "token", - type: "address", - internalType: "contract IERC20", + name: "voteId", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "amount", + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createVote", + inputs: [ + { + name: "question", + type: "string", + internalType: "string", + }, + { + name: "answers", + type: "string[]", + internalType: "string[]", + }, + { + name: "startBlock", + type: "uint256", + internalType: "uint256", + }, + { + name: "durationInBlocks", + type: "uint256", + internalType: "uint256", + }, + { + name: "bounty", type: "uint256", internalType: "uint256", }, @@ -610,24 +743,6 @@ const deployedContracts = { ], stateMutability: "view", }, - { - type: "function", - name: "rescueTokens", - inputs: [ - { - name: "token", - type: "address", - internalType: "contract IERC20", - }, - { - name: "recipient", - type: "address", - internalType: "address", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, { type: "function", name: "signUpWithWorldId", @@ -679,46 +794,24 @@ const deployedContracts = { type: "uint256", internalType: "uint256", }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "tokenBalancesByUser", - inputs: [ - { - name: "", - type: "address", - internalType: "address", - }, - { - name: "", - type: "address", - internalType: "contract IERC20", - }, - ], - outputs: [ { - name: "", + name: "nonce", type: "uint256", internalType: "uint256", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "totalBalance", - inputs: [], - outputs: [ { - name: "", + name: "deadline", type: "uint256", internalType: "uint256", }, + { + name: "signature", + type: "bytes", + internalType: "bytes", + }, ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { type: "function", @@ -746,21 +839,16 @@ const deployedContracts = { }, { type: "function", - name: "withdrawERC20", - inputs: [ + name: "vault", + inputs: [], + outputs: [ { - name: "token", + name: "", type: "address", - internalType: "contract IERC20", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", + internalType: "contract Permit2Vault", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", @@ -776,23 +864,17 @@ const deployedContracts = { stateMutability: "view", }, { - type: "event", - name: "Deposited", - inputs: [ + type: "function", + name: "worldToken", + inputs: [], + outputs: [ { - name: "from", + name: "", type: "address", - indexed: false, - internalType: "address", - }, - { - name: "amount", - type: "uint256", - indexed: false, - internalType: "uint256", + internalType: "contract IERC20", }, ], - anonymous: false, + stateMutability: "view", }, { type: "event", @@ -906,37 +988,11 @@ const deployedContracts = { ], anonymous: false, }, - { - type: "event", - name: "Withdrawn", - inputs: [ - { - name: "to", - type: "address", - indexed: false, - internalType: "address", - }, - { - name: "amount", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, ], inheritedFunctions: { signUpWithWorldId: "contracts/WorldIdRegister.sol", users: "contracts/WorldIdRegister.sol", worldId: "contracts/WorldIdRegister.sol", - PERMIT2: "contracts/Permit2Vault.sol", - depositERC20: "contracts/Permit2Vault.sol", - depositERC20Regular: "contracts/Permit2Vault.sol", - rescueTokens: "contracts/Permit2Vault.sol", - tokenBalancesByUser: "contracts/Permit2Vault.sol", - totalBalance: "contracts/Permit2Vault.sol", - withdrawERC20: "contracts/Permit2Vault.sol", }, }, }, diff --git a/packages/nextjs/contracts/deployedContracts.ts b/packages/nextjs/contracts/deployedContracts.ts index 9e88142..ad095b2 100644 --- a/packages/nextjs/contracts/deployedContracts.ts +++ b/packages/nextjs/contracts/deployedContracts.ts @@ -289,32 +289,12 @@ const deployedContracts = { }, }, 480: { - HumanOracleV1: { - address: "0x7447696e22c7074683c4ebcc53d3321939f3b403", + Permit2Vault: { + address: "0x29c4b679f04c0a86983b19380766d3b0ca679a59", abi: [ { type: "constructor", inputs: [ - { - name: "_worldIdAddr", - type: "address", - internalType: "address", - }, - { - name: "_groupId", - type: "uint256", - internalType: "uint256", - }, - { - name: "_appId", - type: "string", - internalType: "string", - }, - { - name: "_action", - type: "string", - internalType: "string", - }, { name: "_permit", type: "address", @@ -343,49 +323,121 @@ const deployedContracts = { }, { type: "function", - name: "claimRewardForVote", + name: "depositERC20", inputs: [ { - name: "voteId", + name: "token", + type: "address", + internalType: "contract IERC20", + }, + { + name: "amount", type: "uint256", internalType: "uint256", }, + { + name: "nonce", + type: "uint256", + internalType: "uint256", + }, + { + name: "deadline", + type: "uint256", + internalType: "uint256", + }, + { + name: "signature", + type: "bytes", + internalType: "bytes", + }, ], - outputs: [ + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "depositERC20Regular", + inputs: [ { - name: "", + name: "token", + type: "address", + internalType: "contract IERC20", + }, + { + name: "amount", type: "uint256", internalType: "uint256", }, ], + outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "createVote", + name: "rescueTokens", inputs: [ { - name: "question", - type: "string", - internalType: "string", + name: "token", + type: "address", + internalType: "contract IERC20", }, { - name: "answers", - type: "string[]", - internalType: "string[]", + name: "recipient", + type: "address", + internalType: "address", }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "tokenBalancesByUser", + inputs: [ { - name: "startBlock", + name: "", + type: "address", + internalType: "address", + }, + { + name: "", + type: "address", + internalType: "contract IERC20", + }, + ], + outputs: [ + { + name: "", type: "uint256", internalType: "uint256", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalBalance", + inputs: [], + outputs: [ { - name: "durationInBlocks", + name: "", type: "uint256", internalType: "uint256", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "withdrawERC20", + inputs: [ { - name: "bounty", + name: "token", + type: "address", + internalType: "contract IERC20", + }, + { + name: "amount", type: "uint256", internalType: "uint256", }, @@ -394,49 +446,130 @@ const deployedContracts = { stateMutability: "nonpayable", }, { - type: "function", - name: "depositERC20", + type: "event", + name: "Deposited", inputs: [ { - name: "token", + name: "from", type: "address", - internalType: "contract IERC20", + indexed: false, + internalType: "address", }, { name: "amount", type: "uint256", + indexed: false, internalType: "uint256", }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdrawn", + inputs: [ { - name: "nonce", + name: "to", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "amount", type: "uint256", + indexed: false, internalType: "uint256", }, + ], + anonymous: false, + }, + ], + inheritedFunctions: {}, + }, + HumanOracleV1: { + address: "0x8cbef8f4ca9020a7ea6565480e3d90e1704ffadc", + abi: [ + { + type: "constructor", + inputs: [ + { + name: "_worldIdAddr", + type: "address", + internalType: "address", + }, { - name: "deadline", + name: "_groupId", type: "uint256", internalType: "uint256", }, { - name: "signature", - type: "bytes", - internalType: "bytes", + name: "_appId", + type: "string", + internalType: "string", + }, + { + name: "_action", + type: "string", + internalType: "string", + }, + { + name: "_worldTokenAddr", + type: "address", + internalType: "address", + }, + { + name: "_vault", + type: "address", + internalType: "address", }, ], - outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "depositERC20Regular", + name: "claimRewardForVote", inputs: [ { - name: "token", - type: "address", - internalType: "contract IERC20", + name: "voteId", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "amount", + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "createVote", + inputs: [ + { + name: "question", + type: "string", + internalType: "string", + }, + { + name: "answers", + type: "string[]", + internalType: "string[]", + }, + { + name: "startBlock", + type: "uint256", + internalType: "uint256", + }, + { + name: "durationInBlocks", + type: "uint256", + internalType: "uint256", + }, + { + name: "bounty", type: "uint256", internalType: "uint256", }, @@ -611,24 +744,6 @@ const deployedContracts = { ], stateMutability: "view", }, - { - type: "function", - name: "rescueTokens", - inputs: [ - { - name: "token", - type: "address", - internalType: "contract IERC20", - }, - { - name: "recipient", - type: "address", - internalType: "address", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, { type: "function", name: "signUpWithWorldId", @@ -680,46 +795,24 @@ const deployedContracts = { type: "uint256", internalType: "uint256", }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "tokenBalancesByUser", - inputs: [ - { - name: "", - type: "address", - internalType: "address", - }, - { - name: "", - type: "address", - internalType: "contract IERC20", - }, - ], - outputs: [ { - name: "", + name: "nonce", type: "uint256", internalType: "uint256", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "totalBalance", - inputs: [], - outputs: [ { - name: "", + name: "deadline", type: "uint256", internalType: "uint256", }, + { + name: "signature", + type: "bytes", + internalType: "bytes", + }, ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { type: "function", @@ -747,21 +840,16 @@ const deployedContracts = { }, { type: "function", - name: "withdrawERC20", - inputs: [ + name: "vault", + inputs: [], + outputs: [ { - name: "token", + name: "", type: "address", - internalType: "contract IERC20", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", + internalType: "contract Permit2Vault", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", @@ -777,23 +865,17 @@ const deployedContracts = { stateMutability: "view", }, { - type: "event", - name: "Deposited", - inputs: [ + type: "function", + name: "worldToken", + inputs: [], + outputs: [ { - name: "from", + name: "", type: "address", - indexed: false, - internalType: "address", - }, - { - name: "amount", - type: "uint256", - indexed: false, - internalType: "uint256", + internalType: "contract IERC20", }, ], - anonymous: false, + stateMutability: "view", }, { type: "event", @@ -907,37 +989,11 @@ const deployedContracts = { ], anonymous: false, }, - { - type: "event", - name: "Withdrawn", - inputs: [ - { - name: "to", - type: "address", - indexed: false, - internalType: "address", - }, - { - name: "amount", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, ], inheritedFunctions: { signUpWithWorldId: "contracts/WorldIdRegister.sol", users: "contracts/WorldIdRegister.sol", worldId: "contracts/WorldIdRegister.sol", - PERMIT2: "contracts/Permit2Vault.sol", - depositERC20: "contracts/Permit2Vault.sol", - depositERC20Regular: "contracts/Permit2Vault.sol", - rescueTokens: "contracts/Permit2Vault.sol", - tokenBalancesByUser: "contracts/Permit2Vault.sol", - totalBalance: "contracts/Permit2Vault.sol", - withdrawERC20: "contracts/Permit2Vault.sol", }, }, },