From fceeb81559f9cddae889488b5db6f3bc43b3e720 Mon Sep 17 00:00:00 2001 From: Akash Date: Tue, 1 Apr 2025 15:23:15 +0530 Subject: [PATCH 1/4] feat: added markedRevert event --- contracts/interfaces/IWatcherPrecompile.sol | 1 + .../watcherPrecompile/WatcherPrecompile.sol | 2 ++ src/enums.ts | 18 ++++++++++++++---- src/events.ts | 4 +++- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/contracts/interfaces/IWatcherPrecompile.sol b/contracts/interfaces/IWatcherPrecompile.sol index 58921740..5ce28d64 100644 --- a/contracts/interfaces/IWatcherPrecompile.sol +++ b/contracts/interfaces/IWatcherPrecompile.sol @@ -37,6 +37,7 @@ interface IWatcherPrecompile { /// @param payloadId The unique identifier for the not resolved promise event PromiseNotResolved(bytes32 indexed payloadId, address asyncPromise); + event MarkedRevert(bytes32 indexed payloadId, bool isRevertingOnchain); event TimeoutRequested( bytes32 timeoutId, address target, diff --git a/contracts/protocol/watcherPrecompile/WatcherPrecompile.sol b/contracts/protocol/watcherPrecompile/WatcherPrecompile.sol index 055d5c76..c8bc8a76 100644 --- a/contracts/protocol/watcherPrecompile/WatcherPrecompile.sol +++ b/contracts/protocol/watcherPrecompile/WatcherPrecompile.sol @@ -226,6 +226,8 @@ contract WatcherPrecompile is RequestHandler { IMiddleware(currentRequestParams.middleware).handleRequestReverts( payloadParams.dump.getRequestCount() ); + + emit MarkedRevert(payloadId_, isRevertingOnchain_); } function setMaxTimeoutDelayInSeconds(uint256 maxTimeoutDelayInSeconds_) external onlyOwner { diff --git a/src/enums.ts b/src/enums.ts index 32ed89bb..87a79cd5 100644 --- a/src/enums.ts +++ b/src/enums.ts @@ -6,25 +6,35 @@ export enum DeploymentMode { } export enum Events { + // Socket ExecutionSuccess = "ExecutionSuccess", ExecutionFailed = "ExecutionFailed", PlugConnected = "PlugConnected", - CalledAppGateway = "CalledAppGateway", AppGatewayCallRequested = "AppGatewayCallRequested", + + // FeesPlug + FeesDeposited = "FeesDeposited", + + // WatcherPrecompile + CalledAppGateway = "CalledAppGateway", QueryRequested = "QueryRequested", FinalizeRequested = "FinalizeRequested", PromiseResolved = "PromiseResolved", PromiseNotResolved = "PromiseNotResolved", TimeoutRequested = "TimeoutRequested", TimeoutResolved = "TimeoutResolved", + RequestSubmitted = "RequestSubmitted", + Finalized = "Finalized", + MarkedRevert = "MarkedRevert", + // AuctionManager AuctionEnded = "AuctionEnded", AuctionRestarted = "AuctionRestarted", + + // DeliveryHelper PayloadSubmitted = "PayloadSubmitted", PayloadAsyncRequested = "PayloadAsyncRequested", - Finalized = "Finalized", - FeesDeposited = "FeesDeposited", FeesIncreased = "FeesIncreased", - RequestSubmitted = "RequestSubmitted", + RequestCancelled = "RequestCancelled", } export enum Contracts { diff --git a/src/events.ts b/src/events.ts index f7bbb748..1893f5b0 100644 --- a/src/events.ts +++ b/src/events.ts @@ -11,6 +11,7 @@ export const feesPlugEvents = [Events.FeesDeposited]; export const watcherPrecompileEvents = [ Events.CalledAppGateway, + Events.RequestSubmitted, Events.QueryRequested, Events.FinalizeRequested, Events.Finalized, @@ -18,12 +19,13 @@ export const watcherPrecompileEvents = [ Events.PromiseNotResolved, Events.TimeoutRequested, Events.TimeoutResolved, - Events.RequestSubmitted, + Events.MarkedRevert, ]; export const deliveryHelperEvents = [ Events.PayloadSubmitted, Events.FeesIncreased, + Events.RequestCancelled, ]; export const auctionManagerEvents = [ From b8cde962650d0797d2b1e0d2a6584ddcad1482cc Mon Sep 17 00:00:00 2001 From: Akash Date: Tue, 1 Apr 2025 15:23:52 +0530 Subject: [PATCH 2/4] fix: fees manager caller issue, 0 fees unblock --- contracts/protocol/payload-delivery/FeesManager.sol | 6 +++--- .../payload-delivery/app-gateway/DeliveryHelper.sol | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/contracts/protocol/payload-delivery/FeesManager.sol b/contracts/protocol/payload-delivery/FeesManager.sol index 760ae159..7b9804b5 100644 --- a/contracts/protocol/payload-delivery/FeesManager.sol +++ b/contracts/protocol/payload-delivery/FeesManager.sol @@ -249,7 +249,7 @@ contract FeesManager is FeesManagerStorage, Initializable, Ownable, AddressResol address originAppGateway_ ) external override onlyDeliveryHelper { Fees memory fees = requestCountBlockedFees[requestCount_]; - if (fees.amount == 0) revert NoFeesBlocked(); + if (fees.amount == 0) return; address appGateway = _getCoreAppGateway(originAppGateway_); TokenBalance storage tokenBalance = appGatewayFeeBalances[appGateway][fees.feePoolChain][ @@ -274,12 +274,12 @@ contract FeesManager is FeesManagerStorage, Initializable, Ownable, AddressResol ); if ( - msg.sender != requestMetadata.auctionManager || + msg.sender != requestMetadata.auctionManager && msg.sender != address(deliveryHelper__()) ) revert InvalidCaller(); Fees memory fees = requestCountBlockedFees[requestCount_]; - if (fees.amount == 0) revert NoFeesBlocked(); + if (fees.amount == 0) return; TokenBalance storage tokenBalance = appGatewayFeeBalances[requestMetadata.appGateway][ fees.feePoolChain diff --git a/contracts/protocol/payload-delivery/app-gateway/DeliveryHelper.sol b/contracts/protocol/payload-delivery/app-gateway/DeliveryHelper.sol index bd83629a..81d9e7b3 100644 --- a/contracts/protocol/payload-delivery/app-gateway/DeliveryHelper.sol +++ b/contracts/protocol/payload-delivery/app-gateway/DeliveryHelper.sol @@ -66,7 +66,7 @@ contract DeliveryHelper is FeesHelpers { if (msg.sender != requests[requestCount_].appGateway) { revert OnlyAppGateway(); } - + // If the request has a winning bid, ie. transmitter already assigned, unblock and assign fees if (requests[requestCount_].winningBid.transmitter != address(0)) { IFeesManager(addressResolver__.feesManager()).unblockAndAssignFees( requestCount_, @@ -74,6 +74,7 @@ contract DeliveryHelper is FeesHelpers { requests[requestCount_].appGateway ); } else { + // If the request has no winning bid, ie. transmitter not assigned, unblock fees IFeesManager(addressResolver__.feesManager()).unblockFees(requestCount_); } From b66ee7450073ba0ea36e3d3a32fe3f561f68ca77 Mon Sep 17 00:00:00 2001 From: Akash Date: Tue, 1 Apr 2025 15:24:36 +0530 Subject: [PATCH 3/4] chore: added test for edge cases --- script/counter/DeployEVMxCounterApp.s.sol | 2 +- script/counter/SetFees.s.sol | 31 +++++++++++++++++++ script/helpers/AppGatewayFeeBalance.s.sol | 12 ++++--- .../counter/CounterAppGateway.sol | 19 ++++++++++++ test/apps/app-gateways/counter/ICounter.sol | 3 ++ 5 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 script/counter/SetFees.s.sol diff --git a/script/counter/DeployEVMxCounterApp.s.sol b/script/counter/DeployEVMxCounterApp.s.sol index b3a0fba1..a62b7e81 100644 --- a/script/counter/DeployEVMxCounterApp.s.sol +++ b/script/counter/DeployEVMxCounterApp.s.sol @@ -21,7 +21,7 @@ contract CounterDeploy is Script { Fees memory fees = Fees({ feePoolChain: 421614, feePoolToken: ETH_ADDRESS, - amount: 0.001 ether + amount: 0.00001 ether }); CounterAppGateway gateway = new CounterAppGateway(addressResolver, fees); diff --git a/script/counter/SetFees.s.sol b/script/counter/SetFees.s.sol new file mode 100644 index 00000000..3d089235 --- /dev/null +++ b/script/counter/SetFees.s.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Script} from "forge-std/Script.sol"; +import {console} from "forge-std/console.sol"; +import {ETH_ADDRESS} from "../../contracts/protocol/utils/common/Constants.sol"; +import {CounterAppGateway} from "../../test/apps/app-gateways/counter/CounterAppGateway.sol"; +import {Fees} from "../../contracts/protocol/utils/common/Structs.sol"; +// source .env && forge script script/counter/DeployCounterOnchain.s.sol --broadcast --skip-simulation --legacy --gas-price 0 +contract CounterSetFees is Script { + function run() external { + string memory rpc = vm.envString("EVMX_RPC"); + console.log(rpc); + vm.createSelectFork(rpc); + + uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + vm.startBroadcast(deployerPrivateKey); + + CounterAppGateway appGateway = CounterAppGateway(vm.envAddress("APP_GATEWAY")); + console.log("Counter Gateway:", address(appGateway)); + + console.log("Setting fees..."); + // Setting fee payment on Arbitrum Sepolia + Fees memory fees = Fees({ + feePoolChain: 421614, + feePoolToken: ETH_ADDRESS, + amount: 0.00001 ether + }); + appGateway.setFees(fees); + } +} diff --git a/script/helpers/AppGatewayFeeBalance.s.sol b/script/helpers/AppGatewayFeeBalance.s.sol index 6637a83b..0743a7d0 100644 --- a/script/helpers/AppGatewayFeeBalance.s.sol +++ b/script/helpers/AppGatewayFeeBalance.s.sol @@ -12,17 +12,21 @@ contract CheckDepositedFees is Script { vm.createSelectFork(vm.envString("EVMX_RPC")); FeesManager feesManager = FeesManager(payable(vm.envAddress("FEES_MANAGER"))); address appGateway = vm.envAddress("APP_GATEWAY"); - + uint32 chain = 421614; + address token = ETH_ADDRESS; (uint256 deposited, uint256 blocked) = feesManager.appGatewayFeeBalances( appGateway, - 421614, - ETH_ADDRESS + chain, + token ); console.log("App Gateway:", appGateway); + console.log("Fees Manager:", address(feesManager)); + console.logUint(chain); + console.log("Token:", token); console.log("Deposited fees:", deposited); console.log("Blocked fees:", blocked); - uint256 availableFees = feesManager.getAvailableFees(421614, appGateway, ETH_ADDRESS); + uint256 availableFees = feesManager.getAvailableFees(chain, appGateway, token); console.log("Available fees:", availableFees); } } diff --git a/test/apps/app-gateways/counter/CounterAppGateway.sol b/test/apps/app-gateways/counter/CounterAppGateway.sol index 086eb98d..b125af32 100644 --- a/test/apps/app-gateways/counter/CounterAppGateway.sol +++ b/test/apps/app-gateways/counter/CounterAppGateway.sol @@ -134,4 +134,23 @@ contract CounterAppGateway is AppGatewayBase, Ownable { ) external returns (uint40) { return _withdrawFeeTokens(chainSlug_, token_, amount_, receiver_); } + + function testOnChainRevert(uint32 chainSlug) public async { + address instance = forwarderAddresses[counter][chainSlug]; + ICounter(instance).wrongFunction(); + } + + function testCallBackRevert(uint32 chainSlug) public async { + // the increase function is called on given list of instances + _setOverrides(Read.ON, Parallel.ON); + address instance = forwarderAddresses[counter][chainSlug]; + ICounter(instance).getCounter(); + // wrong function call in callback so it reverts + IPromise(instance).then(this.withdrawFeeTokens.selector, abi.encode(chainSlug)); + _setOverrides(Read.OFF, Parallel.OFF); + } + + function increaseFees(uint40 requestCount_, uint256 newMaxFees_) public { + _increaseFees(requestCount_, newMaxFees_); + } } diff --git a/test/apps/app-gateways/counter/ICounter.sol b/test/apps/app-gateways/counter/ICounter.sol index 6e254974..0bb3b319 100644 --- a/test/apps/app-gateways/counter/ICounter.sol +++ b/test/apps/app-gateways/counter/ICounter.sol @@ -5,4 +5,7 @@ interface ICounter { function increase() external; function getCounter() external; + + // A function that is not part of the interface, used for testing on-chian revert. + function wrongFunction() external; } From 1f4d7e8eff7933315102e7d991e1705269297729 Mon Sep 17 00:00:00 2001 From: Akash Date: Tue, 1 Apr 2025 15:24:41 +0530 Subject: [PATCH 4/4] chore: lint --- Errors.md | 141 +++++---- EventTopics.md | 286 +++++++++--------- FunctionSignatures.md | 17 +- .../WatcherPrecompileCore.sol | 8 +- deployments/dev_verification.json | 12 +- deployments/stage_verification.json | 12 +- hardhat-scripts/misc-scripts/eventTopics.ts | 11 +- hardhat-scripts/utils/address.ts | 7 +- hardhat-scripts/verify/verify.ts | 4 + package.json | 2 +- setupInfraContracts.sh | 3 + 11 files changed, 249 insertions(+), 254 deletions(-) diff --git a/Errors.md b/Errors.md index 965afebd..29034a89 100644 --- a/Errors.md +++ b/Errors.md @@ -1,40 +1,35 @@ # Custom Error Codes -## apps/super-token-lockable/LimitHook.sol - -| Error | Signature | -| --------------------- | ------------ | -| `BurnLimitExceeded()` | `0x85e72fd4` | -| `MintLimitExceeded()` | `0xb643bfa6` | - -## apps/super-token-lockable/SuperTokenLockable.sol - -| Error | Signature | -| ---------------------------- | ------------ | -| `InsufficientBalance()` | `0xf4d678b8` | -| `InsufficientLockedTokens()` | `0x4f6d2a3e` | - ## base/PlugBase.sol | Error | Signature | | ---------------------------- | ------------ | | `SocketAlreadyInitialized()` | `0xc9500b00` | -## mock/MockSocket.sol - -| Error | Signature | -| -------------------------- | ------------ | -| `PayloadAlreadyExecuted()` | `0xe17bd578` | -| `VerificationFailed()` | `0x439cc0cd` | -| `LowGasLimit()` | `0xd38edae0` | -| `InvalidSlug()` | `0x290a8315` | - -## mock/MockWatcherPrecompile.sol +## interfaces/IWatcherPrecompile.sol + +| Error | Signature | +| --------------------------- | ------------ | +| `InvalidChainSlug()` | `0xbff6b106` | +| `InvalidConnection()` | `0x63228f29` | +| `InvalidTransmitter()` | `0x58a70a0a` | +| `InvalidTimeoutRequest()` | `0x600ca372` | +| `InvalidPayloadId()` | `0xfa0b8c86` | +| `InvalidCaller()` | `0x48f5c3ed` | +| `InvalidGateway()` | `0xfc9dfe85` | +| `InvalidSwitchboard()` | `0xf63c9e4d` | +| `RequestAlreadyCancelled()` | `0xc70f47d8` | +| `RequestCancelled()` | `0xe3cf2258` | +| `AlreadyStarted()` | `0x1fbde445` | +| `InvalidLevelNumber()` | `0x5022f14b` | + +## interfaces/IWatcherPrecompileLimits.sol -| Error | Signature | -| ---------------------- | ------------ | -| `InvalidChainSlug()` | `0xbff6b106` | -| `InvalidTransmitter()` | `0x58a70a0a` | +| Error | Signature | +| ------------------------------------------------ | ------------ | +| `ActionNotSupported(address,bytes32)` | `0xa219158f` | +| `NotDeliveryHelper()` | `0x29029c67` | +| `LimitExceeded(address,bytes32,uint256,uint256)` | `0x80bb2621` | ## protocol/AddressResolver.sol @@ -51,6 +46,19 @@ | `PromiseAlreadySetUp()` | `0x927c53d5` | | `PromiseRevertFailed()` | `0x0175b9de` | +## protocol/Forwarder.sol + +| Error | Signature | +| ------------------------ | ------------ | +| `AsyncModifierNotUsed()` | `0xb9521e1a` | + +## protocol/payload-delivery/AuctionManager.sol + +| Error | Signature | +| ---------------------------- | ------------ | +| `InvalidBid()` | `0xc6388ef7` | +| `MaxReAuctionCountReached()` | `0xf2b4388c` | + ## protocol/payload-delivery/ContractFactoryPlug.sol | Error | Signature | @@ -59,6 +67,17 @@ | `ExecutionFailed()` | `0xacfdb444` | | `information(bool,bytes)` | `0x1a5c6d63` | +## protocol/payload-delivery/FeesManager.sol + +| Error | Signature | +| ----------------------------- | ------------ | +| `InsufficientFeesAvailable()` | `0x51488f54` | +| `NoFeesForTransmitter()` | `0x248bac55` | +| `NoFeesBlocked()` | `0x116d68f9` | +| `InvalidWatcherSignature()` | `0x5029f14f` | +| `NonceUsed()` | `0x1f6d5aef` | +| `InvalidCaller()` | `0x48f5c3ed` | + ## protocol/payload-delivery/FeesPlug.sol | Error | Signature | @@ -68,17 +87,7 @@ | `InvalidDepositAmount()` | `0xfe9ba5cd` | | `TokenNotWhitelisted(address)` | `0xea3bff2e` | -## protocol/payload-delivery/app-gateway/AuctionManager.sol - -| Error | Signature | -| ------------------------- | ------------ | -| `AuctionClosed()` | `0x36b6b46d` | -| `AuctionAlreadyStarted()` | `0x628e3883` | -| `BidExceedsMaxFees()` | `0x4c923f3c` | -| `InvalidTransmitter()` | `0x58a70a0a` | -| `LowerBidAlreadyExists()` | `0xaaa1f709` | - -## protocol/payload-delivery/app-gateway/RequestAsync.sol +## protocol/payload-delivery/app-gateway/DeliveryUtils.sol | Error | Signature | | ----------------------- | ------------ | @@ -89,16 +98,7 @@ | `OnlyAppGateway()` | `0xfec944ea` | | `WinningBidExists()` | `0xe8733654` | | `InsufficientFees()` | `0x8d53e553` | - -## protocol/payload-delivery/app-gateway/FeesManager.sol - -| Error | Signature | -| ----------------------------- | ------------ | -| `InsufficientFeesAvailable()` | `0x51488f54` | -| `NoFeesForTransmitter()` | `0x248bac55` | -| `NoFeesBlocked()` | `0x116d68f9` | -| `InvalidWatcherSignature()` | `0x5029f14f` | -| `NonceUsed()` | `0x1f6d5aef` | +| `ReadOnlyRequests()` | `0x5f16b0e6` | ## protocol/socket/Socket.sol @@ -114,9 +114,9 @@ | Error | Signature | | ------------------------------- | ------------ | -| `SwitchboardExists()` | `0x2dff8555` | | `InvalidConnection()` | `0x63228f29` | | `InvalidSwitchboard()` | `0xf63c9e4d` | +| `SwitchboardExists()` | `0x2dff8555` | | `SwitchboardExistsOrDisabled()` | `0x1c7d2487` | ## protocol/socket/SocketUtils.sol @@ -146,10 +146,11 @@ ## protocol/utils/AddressResolverUtil.sol -| Error | Signature | -| ------------------------- | ------------ | -| `OnlyPayloadDelivery()` | `0x7ccc3a43` | -| `OnlyWatcherPrecompile()` | `0x663a892a` | +| Error | Signature | +| ----------------------------------------- | ------------ | +| `OnlyPayloadDelivery()` | `0x7ccc3a43` | +| `OnlyWatcherPrecompile()` | `0x663a892a` | +| `OnlyWatcherPrecompileOrDeliveryHelper()` | `0xe93a2814` | ## protocol/utils/common/Errors.sol @@ -185,22 +186,16 @@ | `InvalidTokenAddress()` | `0x1eb00b06` | | `InvalidWatcherSignature()` | `0x5029f14f` | | `NonceUsed()` | `0x1f6d5aef` | - -## protocol/watcherPrecompile/WatcherPrecompile.sol - -| Error | Signature | -| ------------------------- | ------------ | -| `InvalidChainSlug()` | `0xbff6b106` | -| `InvalidConnection()` | `0x63228f29` | -| `InvalidTransmitter()` | `0x58a70a0a` | -| `InvalidTimeoutRequest()` | `0x600ca372` | -| `InvalidPayloadId()` | `0xfa0b8c86` | -| `InvalidCaller()` | `0x48f5c3ed` | - -## protocol/watcherPrecompile/WatcherPrecompileLimits.sol - -| Error | Signature | -| ------------------------------------------------ | ------------ | -| `ActionNotSupported(address,bytes32)` | `0xa219158f` | -| `NotDeliveryHelper()` | `0x29029c67` | -| `LimitExceeded(address,bytes32,uint256,uint256)` | `0x80bb2621` | +| `AuctionClosed()` | `0x36b6b46d` | +| `AuctionAlreadyStarted()` | `0x628e3883` | +| `BidExceedsMaxFees()` | `0x4c923f3c` | +| `LowerBidAlreadyExists()` | `0xaaa1f709` | + +## protocol/watcherPrecompile/WatcherPrecompileConfig.sol + +| Error | Signature | +| --------------------------- | ------------ | +| `InvalidGateway()` | `0xfc9dfe85` | +| `InvalidSwitchboard()` | `0xf63c9e4d` | +| `NonceUsed()` | `0x1f6d5aef` | +| `InvalidWatcherSignature()` | `0x5029f14f` | diff --git a/EventTopics.md b/EventTopics.md index e7d18b01..28b83f5a 100644 --- a/EventTopics.md +++ b/EventTopics.md @@ -2,188 +2,188 @@ ## ProxyFactory -| Event | Topic | -| ----- | ----- | -| `AdminChanged` | `0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f` | -| `Deployed` | `0xc95935a66d15e0da5e412aca0ad27ae891d20b2fb91cf3994b6a3bf2b8178082` | -| `Upgraded` | `0x5d611f318680d00598bb735d61bacf0c514c6b50e1e5ad30040a4df2b12791c7` | +| Event | Arguments | Topic | +| -------------- | ----------------------------------------------------------- | -------------------------------------------------------------------- | +| `AdminChanged` | `(proxy: address, admin: address)` | `0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f` | +| `Deployed` | `(proxy: address, implementation: address, admin: address)` | `0xc95935a66d15e0da5e412aca0ad27ae891d20b2fb91cf3994b6a3bf2b8178082` | +| `Upgraded` | `(proxy: address, implementation: address)` | `0x5d611f318680d00598bb735d61bacf0c514c6b50e1e5ad30040a4df2b12791c7` | ## AddressResolver -| Event | Topic | -| ----- | ----- | -| `AddressSet` | `0x9ef0e8c8e52743bb38b83b17d9429141d494b8041ca6d616a6c77cebae9cd8b7` | -| `AsyncPromiseDeployed` | `0xb6c5491cf83e09749b1a4dd6a9f07b0e925fcb0a915ac8c2b40e8ab28191c270` | -| `ForwarderDeployed` | `0x4dbbecb9cf9c8b93da9743a2b48ea52efe68d69230ab1c1b711891d9d223b29f` | -| `ImplementationUpdated` | `0xa1e41aa2c2f3f20d9b63ac06b634d2788768d6034f3d9192cdf7d07374bb16f4` | -| `Initialized` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | -| `PlugAdded` | `0x2cb8d865028f9abf3dc064724043264907615fadc8615a3699a85edb66472273` | +| Event | Arguments | Topic | +| ---------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------- | +| `AddressSet` | `(name: bytes32, oldAddress: address, newAddress: address)` | `0x9ef0e8c8e52743bb38b83b17d9429141d494b8041ca6d616a6c77cebae9cd8b7` | +| `AsyncPromiseDeployed` | `(newAsyncPromise: address, salt: bytes32)` | `0xb6c5491cf83e09749b1a4dd6a9f07b0e925fcb0a915ac8c2b40e8ab28191c270` | +| `ForwarderDeployed` | `(newForwarder: address, salt: bytes32)` | `0x4dbbecb9cf9c8b93da9743a2b48ea52efe68d69230ab1c1b711891d9d223b29f` | +| `ImplementationUpdated` | `(contractName: string, newImplementation: address)` | `0xa1e41aa2c2f3f20d9b63ac06b634d2788768d6034f3d9192cdf7d07374bb16f4` | +| `Initialized` | `(version: uint64)` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| `PlugAdded` | `(appGateway: address, chainSlug: uint32, plug: address)` | `0x2cb8d865028f9abf3dc064724043264907615fadc8615a3699a85edb66472273` | ## AsyncPromise -| Event | Topic | -| ----- | ----- | -| `Initialized` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | +| Event | Arguments | Topic | +| ------------- | ------------------- | -------------------------------------------------------------------- | +| `Initialized` | `(version: uint64)` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | ## Forwarder -| Event | Topic | -| ----- | ----- | -| `Initialized` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | +| Event | Arguments | Topic | +| ------------- | ------------------- | -------------------------------------------------------------------- | +| `Initialized` | `(version: uint64)` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | ## AuctionManager -| Event | Topic | -| ----- | ----- | -| `AuctionEnded` | `0x9cc96c8b9e588c26f8beae57fe7fbb59113b82865578b54ff3f025317dcd6895` | -| `AuctionRestarted` | `0x071867b21946ec4655665f0d4515d3757a5a52f144c762ecfdfb11e1da542b82` | -| `AuctionStarted` | `0xcd040613cf8ef0cfcaa3af0d711783e827a275fc647c116b74595bf17cb9364f` | -| `BidPlaced` | `0xd3dc2f289bc8a88faaaf6a3f4f800dd0eac760a653b067ef749771252a1343b3` | -| `Initialized` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | -| `RoleGranted` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | -| `RoleRevoked` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | +| Event | Arguments | Topic | +| ---------------------------- | ------------------------------------------- | -------------------------------------------------------------------- | +| `AuctionEnded` | `(requestCount: uint40, winningBid: tuple)` | `0x9cc96c8b9e588c26f8beae57fe7fbb59113b82865578b54ff3f025317dcd6895` | +| `AuctionRestarted` | `(requestCount: uint40)` | `0x071867b21946ec4655665f0d4515d3757a5a52f144c762ecfdfb11e1da542b82` | +| `AuctionStarted` | `(requestCount: uint40)` | `0xcd040613cf8ef0cfcaa3af0d711783e827a275fc647c116b74595bf17cb9364f` | +| `BidPlaced` | `(requestCount: uint40, bid: tuple)` | `0xd3dc2f289bc8a88faaaf6a3f4f800dd0eac760a653b067ef749771252a1343b3` | +| `Initialized` | `(version: uint64)` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| `RoleGranted` | `(role: bytes32, grantee: address)` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | +| `RoleRevoked` | `(role: bytes32, revokee: address)` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | ## ContractFactoryPlug -| Event | Topic | -| ----- | ----- | -| `ConnectorPlugDisconnected` | `0xc2af098c82dba3c4b00be8bda596d62d13b98a87b42626fefa67e0bb0e198fdd` | -| `Deployed` | `0x1246c6f8fd9f4abc542c7c8c8f793cfcde6b67aed1976a38aa134fc24af2dfe3` | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | -| `RoleGranted` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | -| `RoleRevoked` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | +| Event | Arguments | Topic | +| ---------------------------- | --------------------------------------------------- | -------------------------------------------------------------------- | +| `ConnectorPlugDisconnected` | `()` | `0xc2af098c82dba3c4b00be8bda596d62d13b98a87b42626fefa67e0bb0e198fdd` | +| `Deployed` | `(addr: address, salt: bytes32, returnData: bytes)` | `0x1246c6f8fd9f4abc542c7c8c8f793cfcde6b67aed1976a38aa134fc24af2dfe3` | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| `RoleGranted` | `(role: bytes32, grantee: address)` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | +| `RoleRevoked` | `(role: bytes32, revokee: address)` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | ## FeesManager -| Event | Topic | -| ----- | ----- | -| `FeesBlocked` | `0xbb23ad39130b455188189b8de52b55fa41a7ea8ee8413dc28ced31e543d0df0c` | -| `FeesDepositedUpdated` | `0xe82dece33ef85114446a366b7d94538d641968e3ec87bf9f2f5a957ace1086e7` | -| `FeesUnblocked` | `0xc8b27128d97a92b6664c696ac891afaa87c9fc7d7c7cda17d892237589ebd4fc` | -| `FeesUnblockedAndAssigned` | `0x04d2986fb321499f6bc8263ff6e65d823570e186dcdc16c04c6b388ccd0f29a8` | -| `Initialized` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | -| `TransmitterFeesUpdated` | `0x9839a0f8408a769f0f3bb89025b64a6cff279673c77d2de3ab8d59b1841fcd5f` | +| Event | Arguments | Topic | +| ---------------------------- | ---------------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `FeesBlocked` | `(requestCount: uint40, chainSlug: uint32, token: address, amount: uint256)` | `0xbb23ad39130b455188189b8de52b55fa41a7ea8ee8413dc28ced31e543d0df0c` | +| `FeesDepositedUpdated` | `(chainSlug: uint32, appGateway: address, token: address, amount: uint256)` | `0xe82dece33ef85114446a366b7d94538d641968e3ec87bf9f2f5a957ace1086e7` | +| `FeesUnblocked` | `(requestCount: uint40, appGateway: address)` | `0xc8b27128d97a92b6664c696ac891afaa87c9fc7d7c7cda17d892237589ebd4fc` | +| `FeesUnblockedAndAssigned` | `(requestCount: uint40, transmitter: address, amount: uint256)` | `0x04d2986fb321499f6bc8263ff6e65d823570e186dcdc16c04c6b388ccd0f29a8` | +| `Initialized` | `(version: uint64)` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| `TransmitterFeesUpdated` | `(requestCount: uint40, transmitter: address, amount: uint256)` | `0x9839a0f8408a769f0f3bb89025b64a6cff279673c77d2de3ab8d59b1841fcd5f` | ## FeesPlug -| Event | Topic | -| ----- | ----- | -| `ConnectorPlugDisconnected` | `0xc2af098c82dba3c4b00be8bda596d62d13b98a87b42626fefa67e0bb0e198fdd` | -| `FeesDeposited` | `0x0fd38537e815732117cfdab41ba9b6d3eb2c5799d44039c100c05fc9c112f235` | -| `FeesWithdrawn` | `0x87044da2612407bc001bb0985725dcc651a0dc71eaabfd1d7e8617ca85a8c19c` | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | -| `RoleGranted` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | -| `RoleRevoked` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | -| `TokenRemovedFromWhitelist` | `0xdd2e6d9f52cbe8f695939d018b7d4a216dc613a669876163ac548b916489d917` | -| `TokenWhitelisted` | `0x6a65f90b1a644d2faac467a21e07e50e3f8fa5846e26231d30ae79a417d3d262` | +| Event | Arguments | Topic | +| ---------------------------- | -------------------------------------------------------- | -------------------------------------------------------------------- | +| `ConnectorPlugDisconnected` | `()` | `0xc2af098c82dba3c4b00be8bda596d62d13b98a87b42626fefa67e0bb0e198fdd` | +| `FeesDeposited` | `(appGateway: address, token: address, amount: uint256)` | `0x0fd38537e815732117cfdab41ba9b6d3eb2c5799d44039c100c05fc9c112f235` | +| `FeesWithdrawn` | `(token: address, amount: uint256, receiver: address)` | `0x87044da2612407bc001bb0985725dcc651a0dc71eaabfd1d7e8617ca85a8c19c` | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| `RoleGranted` | `(role: bytes32, grantee: address)` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | +| `RoleRevoked` | `(role: bytes32, revokee: address)` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | +| `TokenRemovedFromWhitelist` | `(token: address)` | `0xdd2e6d9f52cbe8f695939d018b7d4a216dc613a669876163ac548b916489d917` | +| `TokenWhitelisted` | `(token: address)` | `0x6a65f90b1a644d2faac467a21e07e50e3f8fa5846e26231d30ae79a417d3d262` | ## Socket -| Event | Topic | -| ----- | ----- | -| `AppGatewayCallRequested` | `0x392cb36fae7bd0470268c65b15c32a745b37168c4ccd13348c59bd9170f3b3e8` | -| `ExecutionFailed` | `0xd255d8a333980d77af4f9179384057def133983cb02db3e1fdb70c4dc14102e8` | -| `ExecutionSuccess` | `0xc54787fbe087097b182e713f16d3443ad2e67cbe6732628451dd3695a11814c2` | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | -| `PlugConnected` | `0x99c37c6da3bd69c6d59967915f8339f11a0a17fed28c615efb19457fdec0d7db` | -| `RoleGranted` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | -| `RoleRevoked` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | -| `SwitchboardAdded` | `0x1595852923edfbbf906f09fc8523e4cfb022a194773c4d1509446b614146ee88` | -| `SwitchboardDisabled` | `0x1b4ee41596b4e754e5665f01ed6122b356f7b36ea0a02030804fac7fa0fdddfc` | +| Event | Arguments | Topic | +| ---------------------------- | ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `AppGatewayCallRequested` | `(callId: bytes32, chainSlug: uint32, plug: address, appGateway: address, params: bytes32, payload: bytes)` | `0x392cb36fae7bd0470268c65b15c32a745b37168c4ccd13348c59bd9170f3b3e8` | +| `ExecutionFailed` | `(payloadId: bytes32, returnData: bytes)` | `0xd255d8a333980d77af4f9179384057def133983cb02db3e1fdb70c4dc14102e8` | +| `ExecutionSuccess` | `(payloadId: bytes32, returnData: bytes)` | `0xc54787fbe087097b182e713f16d3443ad2e67cbe6732628451dd3695a11814c2` | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| `PlugConnected` | `(plug: address, appGateway: address, switchboard: address)` | `0x99c37c6da3bd69c6d59967915f8339f11a0a17fed28c615efb19457fdec0d7db` | +| `RoleGranted` | `(role: bytes32, grantee: address)` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | +| `RoleRevoked` | `(role: bytes32, revokee: address)` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | +| `SwitchboardAdded` | `(switchboard: address)` | `0x1595852923edfbbf906f09fc8523e4cfb022a194773c4d1509446b614146ee88` | +| `SwitchboardDisabled` | `(switchboard: address)` | `0x1b4ee41596b4e754e5665f01ed6122b356f7b36ea0a02030804fac7fa0fdddfc` | ## SocketBatcher -| Event | Topic | -| ----- | ----- | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| Event | Arguments | Topic | +| ---------------------------- | ---------------------------------------- | -------------------------------------------------------------------- | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | ## WatcherPrecompile -| Event | Topic | -| ----- | ----- | -| `CalledAppGateway` | `0x255bcf22d238fe60f6611670cd7919d2bc890283be2fdaf6d2ad3411e777e33c` | -| `FinalizeRequested` | `0x5bc623895e2e50e307b4c3ba21df61ddfe68de0e084bb85eb1d42d4596532589` | -| `Finalized` | `0x7e6e3e411317567fb9eabe3eb86768c3e33c46e38a50790726e916939b4918d6` | -| `Initialized` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | -| `PromiseNotResolved` | `0xbcf0d0c678940566e9e64f0c871439395bd5fb5c39bca3547b126fe6ee467937` | -| `PromiseResolved` | `0x1b1b5810494fb3e17f7c46547e6e67cd6ad3e6001ea6fb7d12ea0241ba13c4ba` | -| `QueryRequested` | `0xca81bf0029a549d7e6e3a9c668a717472f4330a6a5ec4350304a9e79bf437345` | -| `RequestSubmitted` | `0xb856562fcff2119ba754f0486f47c06087ebc1842bff464faf1b2a1f8d273b1d` | -| `RoleGranted` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | -| `RoleRevoked` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | -| `TimeoutRequested` | `0xdf94fed77e41734b8a17815476bbbf88e2db15d762f42a30ddb9d7870f2fb858` | -| `TimeoutResolved` | `0x221462ec065e22637f794ec3a7edb17b2f04bec88f0546dda308bc37a83801b8` | +| Event | Arguments | Topic | +| ---------------------------- | ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `CalledAppGateway` | `(callId: bytes32, chainSlug: uint32, plug: address, appGateway: address, params: bytes32, payload: bytes)` | `0x255bcf22d238fe60f6611670cd7919d2bc890283be2fdaf6d2ad3411e777e33c` | +| `FinalizeRequested` | `(digest: bytes32, params: tuple)` | `0x5bc623895e2e50e307b4c3ba21df61ddfe68de0e084bb85eb1d42d4596532589` | +| `Finalized` | `(payloadId: bytes32, proof: bytes)` | `0x7e6e3e411317567fb9eabe3eb86768c3e33c46e38a50790726e916939b4918d6` | +| `Initialized` | `(version: uint64)` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | +| `MarkedRevert` | `(payloadId: bytes32, isRevertingOnchain: bool)` | `0xcf1fd844cb4d32cbebb5ca6ce4ac834fe98da3ddac44deb77fffd22ad933824c` | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| `PromiseNotResolved` | `(payloadId: bytes32, asyncPromise: address)` | `0xbcf0d0c678940566e9e64f0c871439395bd5fb5c39bca3547b126fe6ee467937` | +| `PromiseResolved` | `(payloadId: bytes32, asyncPromise: address)` | `0x1b1b5810494fb3e17f7c46547e6e67cd6ad3e6001ea6fb7d12ea0241ba13c4ba` | +| `QueryRequested` | `(params: tuple)` | `0xca81bf0029a549d7e6e3a9c668a717472f4330a6a5ec4350304a9e79bf437345` | +| `RequestSubmitted` | `(middleware: address, requestCount: uint40, payloadParamsArray: tuple[])` | `0xb856562fcff2119ba754f0486f47c06087ebc1842bff464faf1b2a1f8d273b1d` | +| `RoleGranted` | `(role: bytes32, grantee: address)` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | +| `RoleRevoked` | `(role: bytes32, revokee: address)` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | +| `TimeoutRequested` | `(timeoutId: bytes32, target: address, payload: bytes, executeAt: uint256)` | `0xdf94fed77e41734b8a17815476bbbf88e2db15d762f42a30ddb9d7870f2fb858` | +| `TimeoutResolved` | `(timeoutId: bytes32, target: address, payload: bytes, executedAt: uint256)` | `0x221462ec065e22637f794ec3a7edb17b2f04bec88f0546dda308bc37a83801b8` | ## WatcherPrecompileConfig -| Event | Topic | -| ----- | ----- | -| `Initialized` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | -| `OnChainContractSet` | `0xd24cf816377e3c571e7bc798dd43d3d5fc78c32f7fc94b42898b0d37c5301a4e` | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | -| `PlugAdded` | `0x2cb8d865028f9abf3dc064724043264907615fadc8615a3699a85edb66472273` | -| `RoleGranted` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | -| `RoleRevoked` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | -| `SwitchboardSet` | `0x6273f161f4a795e66ef3585d9b4442ef3796b32337157fdfb420b5281e4cf2e3` | +| Event | Arguments | Topic | +| ---------------------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `Initialized` | `(version: uint64)` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | +| `OnChainContractSet` | `(chainSlug: uint32, socket: address, contractFactoryPlug: address, feesPlug: address)` | `0xd24cf816377e3c571e7bc798dd43d3d5fc78c32f7fc94b42898b0d37c5301a4e` | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| `PlugAdded` | `(appGateway: address, chainSlug: uint32, plug: address)` | `0x2cb8d865028f9abf3dc064724043264907615fadc8615a3699a85edb66472273` | +| `RoleGranted` | `(role: bytes32, grantee: address)` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | +| `RoleRevoked` | `(role: bytes32, revokee: address)` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | +| `SwitchboardSet` | `(chainSlug: uint32, sbType: bytes32, switchboard: address)` | `0x6273f161f4a795e66ef3585d9b4442ef3796b32337157fdfb420b5281e4cf2e3` | ## WatcherPrecompileLimits -| Event | Topic | -| ----- | ----- | -| `AppGatewayActivated` | `0x44628d7d5628b9fbc2c84ea9bf3bd3987fa9cde8d2b28e2d5ceb451f916cb8b9` | -| `Initialized` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | -| `LimitParamsUpdated` | `0x81576b12f4d507fd0543afd25a86785573a595334c2c7eb8ca8ec1b0a56a55b3` | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | -| `RoleGranted` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | -| `RoleRevoked` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | +| Event | Arguments | Topic | +| ---------------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------- | +| `AppGatewayActivated` | `(appGateway: address, maxLimit: uint256, ratePerSecond: uint256)` | `0x44628d7d5628b9fbc2c84ea9bf3bd3987fa9cde8d2b28e2d5ceb451f916cb8b9` | +| `Initialized` | `(version: uint64)` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | +| `LimitParamsUpdated` | `(updates: tuple[])` | `0x81576b12f4d507fd0543afd25a86785573a595334c2c7eb8ca8ec1b0a56a55b3` | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| `RoleGranted` | `(role: bytes32, grantee: address)` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | +| `RoleRevoked` | `(role: bytes32, revokee: address)` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | ## DeliveryHelper -| Event | Topic | -| ----- | ----- | -| `AuctionEnded` | `0x9cc96c8b9e588c26f8beae57fe7fbb59113b82865578b54ff3f025317dcd6895` | -| `BidTimeoutUpdated` | `0xd4552e666d0e4e343fb2b13682972a8f0c7f1a86e252d6433b356f0c0e817c3d` | -| `CallBackReverted` | `0xcecb2641ea89470f68bf9f852d731e123505424e4dcfd770c7ea9e2e25326b1b` | -| `FeesIncreased` | `0x63ee9e9e84d216b804cb18f51b7f7511254b0c1f11304b7a3aa34d57511aa6dc` | -| `Initialized` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | -| `PayloadSubmitted` | `0x204c4de167e7a12fc9ad8231fa3d877639ed95a66bd19e1a55d1f68088d4c784` | -| `RequestCancelled` | `0xff191657769be72fc08def44c645014c60d18cb24b9ca05c9a33406a28253245` | +| Event | Arguments | Topic | +| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `AuctionEnded` | `(requestCount: uint40, winningBid: tuple)` | `0x9cc96c8b9e588c26f8beae57fe7fbb59113b82865578b54ff3f025317dcd6895` | +| `BidTimeoutUpdated` | `(newBidTimeout: uint256)` | `0xd4552e666d0e4e343fb2b13682972a8f0c7f1a86e252d6433b356f0c0e817c3d` | +| `CallBackReverted` | `(requestCount_: uint40, payloadId_: bytes32)` | `0xcecb2641ea89470f68bf9f852d731e123505424e4dcfd770c7ea9e2e25326b1b` | +| `FeesIncreased` | `(appGateway: address, requestCount: uint40, newMaxFees: uint256)` | `0x63ee9e9e84d216b804cb18f51b7f7511254b0c1f11304b7a3aa34d57511aa6dc` | +| `Initialized` | `(version: uint64)` | `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2` | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| `PayloadSubmitted` | `(requestCount: uint40, appGateway: address, payloadSubmitParams: tuple[], fees: tuple, auctionManager: address, onlyReadRequests: bool)` | `0x204c4de167e7a12fc9ad8231fa3d877639ed95a66bd19e1a55d1f68088d4c784` | +| `RequestCancelled` | `(requestCount: uint40)` | `0xff191657769be72fc08def44c645014c60d18cb24b9ca05c9a33406a28253245` | ## FastSwitchboard -| Event | Topic | -| ----- | ----- | -| `Attested` | `0x3d83c7bc55c269e0bc853ddc0d7b9fca30216ecc43779acb4e36b7e0ad1c71e4` | -| `OwnershipHandoverCanceled` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | -| `OwnershipHandoverRequested` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | -| `OwnershipTransferred` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | -| `RoleGranted` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | -| `RoleRevoked` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | - +| Event | Arguments | Topic | +| ---------------------------- | ---------------------------------------- | -------------------------------------------------------------------- | +| `Attested` | `(digest_: bytes32, watcher: address)` | `0x3d83c7bc55c269e0bc853ddc0d7b9fca30216ecc43779acb4e36b7e0ad1c71e4` | +| `OwnershipHandoverCanceled` | `(pendingOwner: address)` | `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92` | +| `OwnershipHandoverRequested` | `(pendingOwner: address)` | `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d` | +| `OwnershipTransferred` | `(oldOwner: address, newOwner: address)` | `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0` | +| `RoleGranted` | `(role: bytes32, grantee: address)` | `0x2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3` | +| `RoleRevoked` | `(role: bytes32, revokee: address)` | `0x155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52` | diff --git a/FunctionSignatures.md b/FunctionSignatures.md index 89c34366..6f9cdf76 100644 --- a/FunctionSignatures.md +++ b/FunctionSignatures.md @@ -104,16 +104,22 @@ | `endAuction` | `0x1212e653` | | `evmxSlug` | `0x8bae77c2` | | `expireBid` | `0x1dd5022c` | -| `initialize` | `0xaaf7fc1a` | +| `grantRole` | `0x2f2ff15d` | +| `hasRole` | `0x91d14854` | +| `initialize` | `0x5f24043b` | +| `maxReAuctionCount` | `0xc367b376` | | `owner` | `0x8da5cb5b` | | `ownershipHandoverExpiresAt` | `0xfee81cf4` | +| `reAuctionCount` | `0x9b4b22d3` | | `renounceOwnership` | `0x715018a6` | | `requestOwnershipHandover` | `0x25692962` | +| `revokeRole` | `0xd547741f` | | `setAuctionEndDelaySeconds` | `0x88606b1a` | | `transferOwnership` | `0xf2fde38b` | | `watcherPrecompileConfig` | `0x8618a912` | | `watcherPrecompileLimits` | `0xa71cd97d` | | `watcherPrecompile__` | `0x1de360c3` | +| `whitelistedTransmitters` | `0xc2f1bf5d` | | `winningBids` | `0x9133f232` | ## ContractFactoryPlug @@ -165,11 +171,11 @@ | `transferOwnership` | `0xf2fde38b` | | `transmitterFees` | `0xefb4cdea` | | `unblockAndAssignFees` | `0x3c5366a2` | -| `unblockFees` | `0xac141f59` | +| `unblockFees` | `0xc1867a4b` | | `watcherPrecompileConfig` | `0x8618a912` | | `watcherPrecompileLimits` | `0xa71cd97d` | | `watcherPrecompile__` | `0x1de360c3` | -| `withdrawFees` | `0x54dc9308` | +| `withdrawFees` | `0xe1a69364` | | `withdrawTransmitterFees` | `0x8c047bbd` | ## FeesPlug @@ -264,10 +270,12 @@ | `getCurrentRequestCount` | `0x5715abbb` | | `getDigest` | `0xeba9500e` | | `getPayloadParams` | `0xae5eeb77` | +| `getRequestParams` | `0x71263d0d` | | `grantRole` | `0x2f2ff15d` | | `hasRole` | `0x91d14854` | | `initialize` | `0xb7dc6b77` | | `isNonceUsed` | `0x5d00bb12` | +| `isPromiseExecuted` | `0x17a2cdf0` | | `markRevert` | `0x1c75dad5` | | `maxTimeoutDelayInSeconds` | `0x46fbc9d7` | | `nextBatchCount` | `0x333a3963` | @@ -286,7 +294,7 @@ | `revokeRole` | `0xd547741f` | | `setExpiryTime` | `0x30fc4cff` | | `setMaxTimeoutDelayInSeconds` | `0x65d480fc` | -| `setTimeout` | `0xc8725073` | +| `setTimeout` | `0x9c29ec74` | | `startProcessingRequest` | `0x77290f24` | | `submitRequest` | `0x16b47482` | | `timeoutCounter` | `0x94f6522e` | @@ -381,6 +389,7 @@ | `getDeliveryHelperPlugAddress` | `0xb709bd9f` | | `getFees` | `0xfbf4ec4b` | | `getRequestMetadata` | `0x5f1dde51` | +| `handleRequestReverts` | `0x8fe9734f` | | `increaseFees` | `0xe9b304da` | | `initialize` | `0x7265580f` | | `owner` | `0x8da5cb5b` | diff --git a/contracts/protocol/watcherPrecompile/WatcherPrecompileCore.sol b/contracts/protocol/watcherPrecompile/WatcherPrecompileCore.sol index e7fd0bb1..7950823e 100644 --- a/contracts/protocol/watcherPrecompile/WatcherPrecompileCore.sol +++ b/contracts/protocol/watcherPrecompile/WatcherPrecompileCore.sol @@ -88,13 +88,9 @@ abstract contract WatcherPrecompileCore is emit FinalizeRequested(digest, payloads[params_.payloadId]); } - function _getBatch( - uint40 batchCount - ) internal view returns (PayloadParams[] memory) { + function _getBatch(uint40 batchCount) internal view returns (PayloadParams[] memory) { bytes32[] memory payloadIds = batchPayloadIds[batchCount]; - PayloadParams[] memory payloadParamsArray = new PayloadParams[]( - payloadIds.length - ); + PayloadParams[] memory payloadParamsArray = new PayloadParams[](payloadIds.length); for (uint40 i = 0; i < payloadIds.length; i++) { payloadParamsArray[i] = payloads[payloadIds[i]]; diff --git a/deployments/dev_verification.json b/deployments/dev_verification.json index 3d589ddc..427a7e4d 100644 --- a/deployments/dev_verification.json +++ b/deployments/dev_verification.json @@ -41,11 +41,7 @@ "0x89e66357C5F101C56b4F9F97cf378Cc32A21438a", "Socket", "contracts/protocol/socket/Socket.sol", - [ - 84532, - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", - "EVMX" - ] + [84532, "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", "EVMX"] ] ], "421614": [], @@ -147,11 +143,7 @@ "0xF86B89B5c689c170BfD2734254228D6d2db5a672", "Socket", "contracts/protocol/socket/Socket.sol", - [ - 11155111, - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", - "EVMX" - ] + [11155111, "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", "EVMX"] ] ], "11155420": [] diff --git a/deployments/stage_verification.json b/deployments/stage_verification.json index 8492f42f..e5e5016c 100644 --- a/deployments/stage_verification.json +++ b/deployments/stage_verification.json @@ -97,11 +97,7 @@ "0x92562Ae6526aB8B4fFF9Fa8ECAb6db67f0753693", "Socket", "contracts/protocol/socket/Socket.sol", - [ - 84532, - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", - "EVMX" - ] + [84532, "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", "EVMX"] ] ], "421614": [], @@ -147,11 +143,7 @@ "0x899AE7770eFb9714aF717d03c0d577e41d78ed48", "Socket", "contracts/protocol/socket/Socket.sol", - [ - 11155111, - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", - "EVMX" - ] + [11155111, "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", "EVMX"] ] ], "11155420": [] diff --git a/hardhat-scripts/misc-scripts/eventTopics.ts b/hardhat-scripts/misc-scripts/eventTopics.ts index 264daa5d..1b86fa95 100644 --- a/hardhat-scripts/misc-scripts/eventTopics.ts +++ b/hardhat-scripts/misc-scripts/eventTopics.ts @@ -47,8 +47,8 @@ async function main() { console.log("-".repeat(contractName.length + 1)); mdContent += `## ${contractName}\n\n`; - mdContent += "| Event | Topic |\n"; - mdContent += "| ----- | ----- |\n"; + mdContent += "| Event | Arguments | Topic |\n"; + mdContent += "| ----- | --------- | ----- |\n"; const artifact = await artifacts.readArtifact(contractName); const iface = new ethers.utils.Interface(artifact.abi); @@ -56,8 +56,11 @@ async function main() { const events = iface.events; Object.values(events).forEach((event) => { const topic = iface.getEventTopic(event.name); - console.log(`${event.name}: ${topic}`); - mdContent += `| \`${event.name}\` | \`${topic}\` |\n`; + const args = event.inputs + .map((input) => `${input.name}: ${input.type}`) + .join(", "); + console.log(`${event.name}(${args}): ${topic}`); + mdContent += `| \`${event.name}\` | \`(${args})\` | \`${topic}\` |\n`; }); mdContent += "\n"; diff --git a/hardhat-scripts/utils/address.ts b/hardhat-scripts/utils/address.ts index 64e9f690..6caf8c3f 100644 --- a/hardhat-scripts/utils/address.ts +++ b/hardhat-scripts/utils/address.ts @@ -1,14 +1,15 @@ import dev_addresses from "../../deployments/dev_addresses.json"; import stage_addresses from "../../deployments/stage_addresses.json"; -// import local_addresses from "../../deployments/local_addresses.json"; +import local_addresses from "../../deployments/local_addresses.json"; import { ChainAddressesObj, DeploymentMode, EVMxAddressesObj } from "../../src"; export const getAddresses = ( mode: DeploymentMode ): { [chainSlug: string | number]: ChainAddressesObj | EVMxAddressesObj } => { switch (mode) { - // case DeploymentMode.LOCAL: - // return local_addresses; + case DeploymentMode.LOCAL: + // @ts-ignore + return local_addresses; case DeploymentMode.DEV: // @ts-ignore return dev_addresses; diff --git a/hardhat-scripts/verify/verify.ts b/hardhat-scripts/verify/verify.ts index 086742b1..2835a150 100644 --- a/hardhat-scripts/verify/verify.ts +++ b/hardhat-scripts/verify/verify.ts @@ -8,11 +8,15 @@ import hre from "hardhat"; import { EVMX_CHAIN_ID, mode } from "../config/config"; import { storeUnVerifiedParams, verify } from "../utils"; +import local_addresses from "../../deployments/local_addresses.json"; import dev_verification from "../../deployments/dev_verification.json"; import stage_verification from "../../deployments/stage_verification.json"; const getVerificationParams = (mode: DeploymentMode) => { switch (mode) { + case DeploymentMode.LOCAL: + //@ts-ignore + return local_addresses; case DeploymentMode.DEV: return dev_verification; case DeploymentMode.STAGE: diff --git a/package.json b/package.json index 0a7e58be..80d12f1f 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "publishConfig": { "access": "public" }, - "version": "1.1.5", + "version": "1.1.9", "description": "socket protocol", "scripts": { "build": "yarn abi && tsc --project lib.tsconfig.json", diff --git a/setupInfraContracts.sh b/setupInfraContracts.sh index f0b46f65..dee0dde8 100644 --- a/setupInfraContracts.sh +++ b/setupInfraContracts.sh @@ -8,4 +8,7 @@ time npx hardhat run hardhat-scripts/deploy/3.upgradeManagers.ts --no-compile time npx hardhat run hardhat-scripts/deploy/4.connect.ts --no-compile time npx ts-node hardhat-scripts/deploy/5.upload.ts --resolveJsonModule time npx hardhat run hardhat-scripts/deploy/6.setupEnv.ts --no-compile +time npx hardhat run hardhat-scripts/misc-scripts/errorCodes.ts --no-compile +time npx hardhat run hardhat-scripts/misc-scripts/eventTopics.ts --no-compile +time npx hardhat run hardhat-scripts/misc-scripts/functionSigs.ts --no-compile time npx hardhat run hardhat-scripts/verify/verify.ts --no-compile