Skip to content

Commit

Permalink
dev v3 release sync to main (#94)
Browse files Browse the repository at this point in the history
* Added new ERC1271 signature verification logic in Kernel v0.2.3 (#43)

* Added 1271 wrapper

* Update kernel version to 0.2.3

* use kernel name and version from constants in tests

* added delegatecall support (#44)

* session key validator fixed for batch scenario

* test: fuzz testing for batched options include array

* fix: warning removed, forge fmt (#46)

* Documentation & minor gas optimisation during userOpExecution (#50)

* Add storage slot documentation & run coverage

* Gas improvment on disabled mode check during execution

Between 1 to 22% gas saved during userOp execution

* Missing funds check gas improvments

* Adding a bit of comments

* Add p256 validator (#48)

* Dev (#47)

* Added new ERC1271 signature verification logic in Kernel v0.2.3 (#43)

* Added 1271 wrapper

* Update kernel version to 0.2.3

* use kernel name and version from constants in tests

* added delegatecall support (#44)

* session key validator fixed for batch scenario

* test: fuzz testing for batched options include array

* fix: warning removed, forge fmt (#46)

---------

Co-authored-by: David Eiber <[email protected]>

* Initial commit

* Update P256Validator.t.sol

* forge install: FreshCryptoLib

* Refactor with helper functions

* Add P256Validator, tests, deps

* Remove py scripts used for initial testing

* Update foundry.toml

* update deps

* add non-malleable signatures

---------

Co-authored-by: taek <[email protected]>

* deterministic deploy (#51)

* ⚡️ Optimise gas usage when enabling p256 validator, add a few comments (#52)

* ⚡️ Optimise gas usage when enabling p256 validator, add a few comments

- Reducing the number of indexed variable inside a log highly decrease his gas usage, in the p256 validator, we only matter about the kernel account as index (it's 375 gas per topic, so per indexed props, so reducing the index on both key reduce the enabling gas cost by 375 * 4 -> 1500 gas)
 - Add a few reflexion todo comment, do you rly need to send the previous key in the event? Since it's cost with a `sload`& also in the event itself

* ⚡️ Remove the oldKeys for the event signature

* ⚡️ Only compare to raw msg signing instead of eth signed message for p256

* Fix/audit recovery (#53)

* added threshold check to make sure threshold is not zero

* added userOp.sender on callDataAndNonceHash

* added userOp.sender on callDataAndNonceHash

* added check if guardian is msg.sender

* fmt

* ZeroDev-RW-2 : using live weights

* ZeroDev-RW-4 and ZeroDev-RW-2 fix

* fmt

* ✨ Introduce a new Ecdsa Validator, using EIP-712 as signature (#55)

* ✨ Add a new ECDSA Typed validator, using EIP-712 signature to validate userOp

* ✅ Adding unit test arround EcdsaTypedValidator

* ✏️ Rename hash -> userOpHash in AllowUserOp sig

* Fix/conflict master (#57)

* Dev (#47)

* Added new ERC1271 signature verification logic in Kernel v0.2.3 (#43)

* Added 1271 wrapper

* Update kernel version to 0.2.3

* use kernel name and version from constants in tests

* added delegatecall support (#44)

* session key validator fixed for batch scenario

* test: fuzz testing for batched options include array

* fix: warning removed, forge fmt (#46)

---------

Co-authored-by: David Eiber <[email protected]>

* Update recovery audit report

* Added new ERC1271 signature verification logic in Kernel v0.2.3 (#43)

* Added 1271 wrapper

* Update kernel version to 0.2.3

* use kernel name and version from constants in tests

* added delegatecall support (#44)

* session key validator fixed for batch scenario

* test: fuzz testing for batched options include array

* fix: warning removed, forge fmt (#46)

* Documentation & minor gas optimisation during userOpExecution (#50)

* Add storage slot documentation & run coverage

* Gas improvment on disabled mode check during execution

Between 1 to 22% gas saved during userOp execution

* Missing funds check gas improvments

* Adding a bit of comments

* Add p256 validator (#48)

* Dev (#47)

* Added new ERC1271 signature verification logic in Kernel v0.2.3 (#43)

* Added 1271 wrapper

* Update kernel version to 0.2.3

* use kernel name and version from constants in tests

* added delegatecall support (#44)

* session key validator fixed for batch scenario

* test: fuzz testing for batched options include array

* fix: warning removed, forge fmt (#46)

---------

Co-authored-by: David Eiber <[email protected]>

* Initial commit

* Update P256Validator.t.sol

* forge install: FreshCryptoLib

* Refactor with helper functions

* Add P256Validator, tests, deps

* Remove py scripts used for initial testing

* Update foundry.toml

* update deps

* add non-malleable signatures

---------

Co-authored-by: taek <[email protected]>

* deterministic deploy (#51)

* ⚡️ Optimise gas usage when enabling p256 validator, add a few comments (#52)

* ⚡️ Optimise gas usage when enabling p256 validator, add a few comments

- Reducing the number of indexed variable inside a log highly decrease his gas usage, in the p256 validator, we only matter about the kernel account as index (it's 375 gas per topic, so per indexed props, so reducing the index on both key reduce the enabling gas cost by 375 * 4 -> 1500 gas)
 - Add a few reflexion todo comment, do you rly need to send the previous key in the event? Since it's cost with a `sload`& also in the event itself

* ⚡️ Remove the oldKeys for the event signature

* ⚡️ Only compare to raw msg signing instead of eth signed message for p256

* Fix/audit recovery (#53)

* added threshold check to make sure threshold is not zero

* added userOp.sender on callDataAndNonceHash

* added userOp.sender on callDataAndNonceHash

* added check if guardian is msg.sender

* fmt

* ZeroDev-RW-2 : using live weights

* ZeroDev-RW-4 and ZeroDev-RW-2 fix

* fmt

* rebase master

---------

Co-authored-by: David Eiber <[email protected]>
Co-authored-by: Derek Chiang <[email protected]>
Co-authored-by: Quentin Nivelais <[email protected]>

* fix: removed duplicate function

* feat: added delegateCall support in session key (#54)

* feat: added delegateCall support in session key

* fix: remove deps

* feat: added wildcard target permission condition in session key

---------

Co-authored-by: taek <[email protected]>

* fmt (#60)

* Script/deploy recovery (#59)

* added broadcast to git

* script for recovery deployment

* recovery plugin on arbitrum goerli and base goerli

* deployed to base

* Deploy/sepolia (#61)

* deployed on arbitrum sepolia

* deployed on optimism sepolia

* deployed on base sepolia

* Deploy/session key (#62)

* optimism and arbitrum

* optimism mainnet and polygon mainnet

* deployed on avalanche

* deployed on base

* session key deploy completed

* deployed on gnosischain (#63)

* ⚡️ Migrte from require(string) to revert error on Factory & LiteEcdsa (#58)

* feat: add stealth address plugin (#64)

Add stealth address plugin to preserve privacy of smart acount owner.
Two modes to validate signature
- 0: signed by private key of stealth address
- 1: signed by owner's private key and secret used to generate stealth
     address.

* Feat/event weighted ecdsa (#65)

* script for old factory

* script for stake updated

* events for add/removing guardian

* weighted ecdsa deployed on mumbai

* Cherrypick dev (#67)

* Link to AA SDKs

* script for old factory

* Update deployment addresses for Kernel and KernelLite v2.3 in README (#66)

* Add Kernel factory address

---------

Co-authored-by: Derek Chiang <[email protected]>
Co-authored-by: David Eiber <[email protected]>

* Temp/script (#69)

* moved to script folder

* moved shell scripts

* added broadcast

* removed Caldera broadcast

* Restructure - move plugin to separate repo (#70)

* restructured to seprate plugins folder

* removed via-ir based plugins, todo: remove all plugins to kernel-plugins

* Restructure (#71)

* restructured to seprate plugins folder

* removed via-ir based plugins, todo: remove all plugins to kernel-plugins

* fix: import path fix for kerneltestbase

* Add WebAuthN validator (#68)

* 🚧 Simple webauthn validator

* 🚧 Add deploy script for WebAuthN validator

* 🚧 Fix pre op estimation by removing early exit during webauthn msg format

* ✅ Add webauthn validator unit test

* 🚚 rename WebAuthnValidator -> WebAuthnFclValidator

* ♻️ Lot of WebAuthN review

 - Stay in calldata for webauthn challenge formatting
 - Stay inside the WebAuthN validator contract for challenge preparation etc, only exit for p256 verification
 - Better SoC between validator / webauthn / p256
 - Wrap the p256 verification logic inside a contract that can be easily replaced when RIP-7212 is deployed

* ⚡️ Minor gas optimisation (switching to solady base64 lib)

* ✅ Add more tests on sig validation, dummy sig bypass etc

* ⚡️ Gas optimisation during webauthn msg check / format

* 🐛 Post rebase fix

* 🚚 Move webauthn helper and validator inside subfolder validator/webauthn

* ⚡️ Switched to foundry cheatcode for p256 sig validation during test

And fix deploy script

* Feat/add validate (#73)

* feat: implement validateSignature of WeightedECDSAValidator

* fix: init totalWeight as 0 in validateSignature

* Fix validSignature for WeightedECDSAValidator

---------

Co-authored-by: adnpark <[email protected]>
Co-authored-by: Derek Chiang <[email protected]>

* updated forge-std

* forge fmt

* Feat/weighted ecdsa (#74)

* updated dependencies

* updates solady to latest

* weighted ecdsa to valdiate the userOp for the last sig

* removed toEthSignedMessage

* test done

* Feat/weighted ecdsa (#77)

* weighted ecdsa to valdiate the userOp for the last sig

* removed toEthSignedMessage

* test done

* allow non-userOpHash signed mode when paymaster != 0

* fixed Console.sol (#79)

* audit fixes (#80)

* audit fixes

* fix: update prevSigner to signer on validateSignature and added invariant testing for this

* Upload recovery v2 audit

* Update audit report

* changed test to use standard message hash (#81)

* gas snapshot and ci

* added snapshot flow

* added ci profile to foundry.toml

* added coverage workflow

* removed ci profile

* via-ir for snapshot

* Fix dead link

* ✨ Add the options to upgrade to the RIP-7212 p256 verifier (#82)

* ✨ Add the options to upgrade to the RIP-7212 p256 verifier

* 🐛 Handle empty response from the pre compiled p256 verifier

* 🐛 Switch between pre-compiled and on chain p256 verifier via a signature flag

* Modular permission (#84)

* restructured to seprate plugins folder

* added modular permission

* fmt

* synced dev

* fix: shadowed variable

* modular permission encoding checked

* intersect supports validation data with aggregator

* draft for modular permission

* forge fmt

* non-view for validCaller

* fix: test for helper

* changed validCaller to non-view

* removed rawMessage, move this to policy...?

* gas policy example for policy

* execute policy for interval based execution limits

* added natspec for modular permission validator

* added flag to skip validation data

* moved policy config to separate file

* remapping to includ I4337

* temp

* modular permission test without validCaller support

* support requestor feature

* now call it allowed requestor

* forge fmt

* example for eip712

* test fix to check if signature validation result is ok

* fix: nonce fixes in ModularPermissionValidator

* fix: use calldata for sig

* fix: proof fetching in MerklePolicy

* fix : use msg.sender instead of caller for signature verification on eip712 policy

* chore: deploy signaturePolicy

* fix: added validator in the storage mapping of SignaturePolicy to fix unauthenticated state change vuln

* fix: remove p256-verifier lib

* feat: added WebAuthnSigner for ModularPermissionValidator (#83)

* feat: added Sudo policy for ModularPermissionValidator

* fix: nonce for single tx dual enable and ECDSASigner sig

---------

Co-authored-by: Sahil Vasava <[email protected]>

* Fix/execute batch (#85)

* fixed execute batch with long return value

* added testcase

* bumped version to 2.4

* added validator setup

* added broadcast for 2.4 on mumbai

* Add webauthn audit

* Update README.md (#86)

* Link to AA SDKs

* Update deployment addresses for Kernel and KernelLite v2.3 in README (#66)

* Add Kernel factory address

* Update README.md

---------

Co-authored-by: Derek Chiang <[email protected]>
Co-authored-by: David Eiber <[email protected]>

* fix: weigthed ecdsa validator (#90)

* fix: avoid infinite loop on renew

* fix: set max address as first guardian when renew

* fix: update code for dummy signature issue

* ✨ Add webauthn authenticator id in the enable event (#89)

* ✨ Add webauthn authenticator id in the enable event

* 🚀 Add deterministic deployment of the webauthn fcl validator

* Update README.md

* Document Kernel v3 addresses

* Upload chainlight audit report for Kernel v3

* Add v3 plugins audit

* V3 (#93)

* chore: forge init

* forge install: forge-std

v1.7.1

* temp

* cleanup

* temp

* fmt

* fmt

* temp

* small steps

* initial test for permission manager

* enable with selector

* removed coverage folder

* removed coverage folder

* separated validation from validator

* permission rule added

* draft for bootloader

* cleanup code to work with permission mode

* nonce starts from 0

* nonce starts from 0

* renamed validation config/storage

* push for example ecdsa

* updated 7579

* removed module type lib

* forge install: openzeppelin-contracts

v5.0.2

* feat: port ecdsa, weighted ecdsa, webauthn validators

* feat: add isModuleType to webauthn validator

* push

* works with via-ir, remove for next commit

* removed oz

* removed webauthn

* module types

* fallback and action separation

* refactor

* mock policy

* additional data for check userop policy

* updated interface

* removed group

* removed group type

* extradata

* todo : set root validator sig

* policy/signer mock test

* feat: removed validuntil/validfrom

* fmt

* 0xff dedicated to signer

* to permissionConfig

* fmt

* to easier naming

* permission data to policy data

* pass flag for permission

* KernelTestBase (#4)

* temp

* mock and sdk

* format

* pack bytes32 id oninstall

* only static call for fallback

* mock data

* to kernel test base

* kernel test base

* prepare userOp functions for sdk

* iteration

* encodeExecute

* fmt

* fix: return valid success for tryexecute/delegatecall

* added sudo validation and vId verification

* moved check permission signature to permissionManager

* action with hook testcase

* fix: fallback2771 memory issue

* fmt

* test: added fallback without install

* test: executor test cases

* feat: added permission PassFlag

* Fix/module base (#5)

* temp

* mock and sdk

* format

* pack bytes32 id oninstall

* only static call for fallback

* mock data

* to kernel test base

* kernel test base

* prepare userOp functions for sdk

* iteration

* encodeExecute

* fmt

* fix: return valid success for tryexecute/delegatecall

* added sudo validation and vId verification

* moved check permission signature to permissionManager

* action with hook testcase

* fix: fallback2771 memory issue

* fmt

* test: added fallback without install

* test: executor test cases

* feat: added permission PassFlag

* error type for initialize error

* fixed interface

* Update SignerBase.sol (#6)

* fix: signer oninstall with permission id (#7)

* changed solady remapping (#8)

* fix: return false for rejected proposal (#9)

* fix: max limit for invalidation size is 10 (#10)

* fix: installValidations function to allow multiple validation install and explicit permission install interface (#11)

* Fix/zerodev 005 (#12)

* refactor: moved to validation manager

* fix: kernel to have proper deinit scenario

* Feat/optional hook uninstall (#14)

* feat: made hook uninstall optional

* fix: added fix for hookData encoding

* feat: conditional nonce increase, current nonce only increases when same vId has already been enabled (#15)

* fix: use msg.sender for isValidSignatureWithSender (#16)

* clean up the permission data first when there is pre exsiting permission with same permissionId (#21)

* Feat/excessively safe call (#23)

* using module lib for removing module

* using erc2771 call

* rollback to action/fallback separation

* Feat/selector call support (#28)

* using module lib for removing module

* using erc2771 call

* rollback to action/fallback separation

* minor changes

* added support for call type fallback

* upgradeTo (#29)

* validUntil (#30)

* doing abi.encodeWithSelector (#31)

* Feat/install selector (#33)

* use non _ functions for library

* install fallback to work as install selector

* removal of fallback of fallback

* removed action, it's only fallback now

* Script/deploy (#34)

* deploy script

* script for deployment

* fix: signature offset for root (#37)

* fix: change offset to length

* added sdk for signature

* factory : factory staker added (#38)

* Refactor/cleanup (#39)

* Hardhat for refactoring

* chore: moved constants to Constants.sol

* test: test for signatures

* testcases for signature

* Test/factory (#40)

* test and script for factory

* changed script to use create2

* Test/factory (#41)

* test and script for factory

* changed script to use create2

* script: added stake part

* Refactor/cleanup (#42)

* chore: unchecked

* fmt

* fix: changed order of enable sig validation and enable install

* hook changed

* compact sdk test cases

* fuzz testing for installation

* executor uninstall test

* rc1

* added gitignore

* scripts for deploy

* added addresses

* Refactor/cleanup (#44)

* chore: unchecked

* fmt

* fix: changed order of enable sig validation and enable install

* hook changed

* compact sdk test cases

* fuzz testing for installation

* executor uninstall test

* rc1

* added gitignore

* scripts for deploy

* added addresses

* stake script

* added amoy

* approving and staking

* staked/approved on nova and linea

* script finalized

* removed v2

---------

Co-authored-by: adnpark <[email protected]>

* removed staketofactory

* removed ikernel

* removed kernel lite ecdsa

* removed legacy files

---------

Co-authored-by: David Eiber <[email protected]>
Co-authored-by: Quentin Nivelais <[email protected]>
Co-authored-by: Derek Chiang <[email protected]>
Co-authored-by: Sahil Vasava <[email protected]>
Co-authored-by: jhw <[email protected]>
Co-authored-by: adnpark <[email protected]>
Co-authored-by: Aiden Park <[email protected]>
  • Loading branch information
8 people authored Apr 17, 2024
1 parent 1d4a202 commit b592236
Show file tree
Hide file tree
Showing 218 changed files with 16,449 additions and 22,351 deletions.
26 changes: 10 additions & 16 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# Compiler files
cache/
out/
dist/
types/

# Ignores development broadcast logs
!/broadcast
Expand All @@ -15,21 +13,17 @@ docs/
# Dotenv file
.env

# coverage files
lcov.info
coverage/
node_modules
.env
coverage
coverage.json
typechain
typechain-types

# Hardhat files
cache
artifacts
artifacts-selected
# node
node_modules/

cache_hardhat
# hardhat
artifacts/
cache_hardhat/
typechain-types/

lcov.info
settings.json
# zerodev orchestra
log/
.envrc
12 changes: 3 additions & 9 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,15 +1,9 @@
[submodule "lib/forge-std"]
path = lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "lib/I4337"]
path = lib/I4337
url = https://github.com/leekt/I4337
[submodule "lib/FreshCryptoLib"]
path = lib/FreshCryptoLib
url = https://github.com/rdubois-crypto/FreshCryptoLib
[submodule "lib/p256-verifier"]
path = lib/p256-verifier
url = https://github.com/daimo-eth/p256-verifier
[submodule "lib/solady"]
path = lib/solady
url = https://github.com/vectorized/solady
[submodule "lib/ExcessivelySafeCall"]
path = lib/ExcessivelySafeCall
url = https://github.com/nomad-xyz/ExcessivelySafeCall
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ Kernel is supported by all major AA SDKs, including:
- [ZeroDev](https://docs.zerodev.app/)
- [Permissionless.js](https://docs.pimlico.io/permissionless/how-to/accounts/use-kernel-account)
- [UserOp.js](https://docs.stackup.sh/docs/useropjs-presets#kernel)
- [Account Kit](https://github.com/alchemyplatform/aa-sdk/tree/main/packages/accounts/src/kernel-zerodev)

## Resources

Expand All @@ -36,6 +35,18 @@ MIT

## Addresses

<details>
<summary>v3.0</summary>

| Name | Address |
| -------------------- | ------------------------------------------ |
| Meta Factory | 0xd703aaE79538628d27099B8c4f621bE4CCd142d5 |
| Factory | 0x6723b44Abeec4E71eBE3232BD5B455805baDD22f |
| Kernel | 0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27 |
| ECDSA Validator | 0x8104e3Ad430EA6d354d013A6789fDFc71E671c43 |

</details>

<details>
<summary>v2.4</summary>

Expand Down
Binary file added audits/chainlight_v3_0.pdf
Binary file not shown.
Binary file added audits/kalos_v3_plugins.pdf
Binary file not shown.
107 changes: 107 additions & 0 deletions broadcast/Deploy.s.sol/1/run-1712893238.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
{
"transactions": [
{
"hash": "0xd86c946e6f30ec0b4705ea39154b4e53c4133f8a5954fc38fa00bd3f9f75131c",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"function": "approveFactory(address,bool)",
"arguments": [
"0x6723b44Abeec4E71eBE3232BD5B455805baDD22f",
"true"
],
"transaction": {
"from": "0x9775137314fe595c943712b0b336327dfa80ae8a",
"to": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"gas": "0x108d1",
"value": "0x0",
"input": "0x6e7dbabb0000000000000000000000006723b44abeec4e71ebe3232bd5b455805badd22f0000000000000000000000000000000000000000000000000000000000000001",
"nonce": "0x31",
"chainId": "0x1",
"accessList": null,
"type": null
},
"additionalContracts": [],
"isFixedGasLimit": false
},
{
"hash": "0x577e44c80c51789fd019552ec4d081eec41c1ca39e708803bfc30008458c60e8",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"function": "stake(address,uint32)",
"arguments": [
"0x0000000071727De22E5E9d8BAf0edAc6f37da032",
"86400"
],
"transaction": {
"from": "0x9775137314fe595c943712b0b336327dfa80ae8a",
"to": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"gas": "0x15b7f",
"value": "0x16345785d8a0000",
"input": "0xc7e55f3e0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da0320000000000000000000000000000000000000000000000000000000000015180",
"nonce": "0x32",
"chainId": "0x1",
"accessList": null,
"type": null
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0x864783",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x0",
"transactionHash": "0xd86c946e6f30ec0b4705ea39154b4e53c4133f8a5954fc38fa00bd3f9f75131c",
"transactionIndex": "0x38",
"blockHash": "0x462f20133ad7d590e9912e41441a8c8b5d4402f33ab30c6f6315b0321c7b2c0a",
"blockNumber": "0x12ba2aa",
"gasUsed": "0xb513",
"effectiveGasPrice": "0x2f0dbd9a2",
"from": "0x9775137314fe595c943712b0b336327dfa80ae8a",
"to": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"contractAddress": null
},
{
"status": "0x1",
"cumulativeGasUsed": "0xf4cd4a",
"logs": [
{
"address": "0x0000000071727de22e5e9d8baf0edac6f37da032",
"topics": [
"0xa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01",
"0x000000000000000000000000d703aae79538628d27099b8c4f621be4ccd142d5"
],
"data": "0x000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000000015180",
"blockHash": "0x462f20133ad7d590e9912e41441a8c8b5d4402f33ab30c6f6315b0321c7b2c0a",
"blockNumber": "0x12ba2aa",
"transactionHash": "0x577e44c80c51789fd019552ec4d081eec41c1ca39e708803bfc30008458c60e8",
"transactionIndex": "0x9e",
"logIndex": "0x19d",
"removed": false
}
],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000800000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000040000000000000000000000000000100000000000000000000000000000000000a00000000000000000000000000",
"type": "0x0",
"transactionHash": "0x577e44c80c51789fd019552ec4d081eec41c1ca39e708803bfc30008458c60e8",
"transactionIndex": "0x9e",
"blockHash": "0x462f20133ad7d590e9912e41441a8c8b5d4402f33ab30c6f6315b0321c7b2c0a",
"blockNumber": "0x12ba2aa",
"gasUsed": "0xed9b",
"effectiveGasPrice": "0x2f0dbd9a2",
"from": "0x9775137314fe595c943712b0b336327dfa80ae8a",
"to": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"contractAddress": null
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1712893238,
"chain": 1,
"commit": "1ae967d"
}
107 changes: 107 additions & 0 deletions broadcast/Deploy.s.sol/1/run-latest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
{
"transactions": [
{
"hash": "0xd86c946e6f30ec0b4705ea39154b4e53c4133f8a5954fc38fa00bd3f9f75131c",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"function": "approveFactory(address,bool)",
"arguments": [
"0x6723b44Abeec4E71eBE3232BD5B455805baDD22f",
"true"
],
"transaction": {
"from": "0x9775137314fe595c943712b0b336327dfa80ae8a",
"to": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"gas": "0x108d1",
"value": "0x0",
"input": "0x6e7dbabb0000000000000000000000006723b44abeec4e71ebe3232bd5b455805badd22f0000000000000000000000000000000000000000000000000000000000000001",
"nonce": "0x31",
"chainId": "0x1",
"accessList": null,
"type": null
},
"additionalContracts": [],
"isFixedGasLimit": false
},
{
"hash": "0x577e44c80c51789fd019552ec4d081eec41c1ca39e708803bfc30008458c60e8",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"function": "stake(address,uint32)",
"arguments": [
"0x0000000071727De22E5E9d8BAf0edAc6f37da032",
"86400"
],
"transaction": {
"from": "0x9775137314fe595c943712b0b336327dfa80ae8a",
"to": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"gas": "0x15b7f",
"value": "0x16345785d8a0000",
"input": "0xc7e55f3e0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da0320000000000000000000000000000000000000000000000000000000000015180",
"nonce": "0x32",
"chainId": "0x1",
"accessList": null,
"type": null
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0x864783",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x0",
"transactionHash": "0xd86c946e6f30ec0b4705ea39154b4e53c4133f8a5954fc38fa00bd3f9f75131c",
"transactionIndex": "0x38",
"blockHash": "0x462f20133ad7d590e9912e41441a8c8b5d4402f33ab30c6f6315b0321c7b2c0a",
"blockNumber": "0x12ba2aa",
"gasUsed": "0xb513",
"effectiveGasPrice": "0x2f0dbd9a2",
"from": "0x9775137314fe595c943712b0b336327dfa80ae8a",
"to": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"contractAddress": null
},
{
"status": "0x1",
"cumulativeGasUsed": "0xf4cd4a",
"logs": [
{
"address": "0x0000000071727de22e5e9d8baf0edac6f37da032",
"topics": [
"0xa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01",
"0x000000000000000000000000d703aae79538628d27099b8c4f621be4ccd142d5"
],
"data": "0x000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000000015180",
"blockHash": "0x462f20133ad7d590e9912e41441a8c8b5d4402f33ab30c6f6315b0321c7b2c0a",
"blockNumber": "0x12ba2aa",
"transactionHash": "0x577e44c80c51789fd019552ec4d081eec41c1ca39e708803bfc30008458c60e8",
"transactionIndex": "0x9e",
"logIndex": "0x19d",
"removed": false
}
],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000800000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000040000000000000000000000000000100000000000000000000000000000000000a00000000000000000000000000",
"type": "0x0",
"transactionHash": "0x577e44c80c51789fd019552ec4d081eec41c1ca39e708803bfc30008458c60e8",
"transactionIndex": "0x9e",
"blockHash": "0x462f20133ad7d590e9912e41441a8c8b5d4402f33ab30c6f6315b0321c7b2c0a",
"blockNumber": "0x12ba2aa",
"gasUsed": "0xed9b",
"effectiveGasPrice": "0x2f0dbd9a2",
"from": "0x9775137314fe595c943712b0b336327dfa80ae8a",
"to": "0xd703aae79538628d27099b8c4f621be4ccd142d5",
"contractAddress": null
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1712893238,
"chain": 1,
"commit": "1ae967d"
}
Loading

0 comments on commit b592236

Please sign in to comment.