Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
8032414
refactor FeesManager to handle solana - part 1
gwalen Sep 30, 2025
1387f9a
Add coments and rename variables
gwalen Sep 30, 2025
24c9e7b
Hardcode solana trasmitter key address in _createSolanaDigestParams()…
gwalen Oct 6, 2025
c101bf4
Fixes for deployment scripts; linter changes; deployment files
gwalen Oct 6, 2025
9128bac
changes to make socket counter example works
gwalen Oct 7, 2025
2564360
Add to foundry.toml yul optimizers to avoid stack-too-deep errors
gwalen Oct 8, 2025
06fde41
Add script to update fowarder solana and all necessary changes
gwalen Oct 8, 2025
0e73d38
Wip - add add events to log Configurations.verifyConnections(), add a…
gwalen Oct 9, 2025
26a45f4
Change FeePool addresss for local to dev (deployment); Add debug even…
gwalen Oct 10, 2025
9671282
Add Solana Evm libs to socket-protocol; modify FeesManager and Credit…
gwalen Oct 15, 2025
ff7a972
change setSusdcToken() to handle Solana; change IReceiver.onTransfer(…
gwalen Oct 16, 2025
14b528f
Fix createSusdcMintInstructionSolana(); add funding feeManager so tha…
gwalen Oct 17, 2025
bcf0479
Add FesPlugSolana setter for in FeesManager/Credit; add deployment sc…
gwalen Oct 18, 2025
0723eb4
Revert changes for testing Solana forwarder calls in isolation
gwalen Oct 18, 2025
d4af2bf
Wip deployment
gwalen Oct 22, 2025
ec7595d
fix: some changes to setup and deployment scripts: deployment trouble…
gwalen Oct 23, 2025
c197024
fix: hardcode the new transmitter Solana key in WritePrecompile; add …
gwalen Nov 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ src/types
typechain-types/

.env
.env.*
.DS_Store

.gas-snapshot/
Expand All @@ -26,8 +27,9 @@ broadcast/

.cursorrules

deployments/local_addresses.json
deployments/local_verification.json
deployments/local_addresses*
deployments/local_verification*
deployments/stage_addresses_*

testScript.sh
CLAUDE.md
Expand Down
232 changes: 120 additions & 112 deletions Errors.md
Original file line number Diff line number Diff line change
@@ -1,178 +1,186 @@
# Custom Error Codes


## evmx/fees/FeesPool.sol

| Error | Signature |
| ------------------ | ------------ |
| Error | Signature |
|-------|-----------|
| `TransferFailed()` | `0x90b8ec18` |

## evmx/helpers/AsyncPromise.sol

| Error | Signature |
| -------------------------- | ------------ |
| Error | Signature |
|-------|-----------|
| `PromiseAlreadyResolved()` | `0x56b63537` |
| `OnlyInvoker()` | `0x74ed21f5` |
| `PromiseAlreadySetUp()` | `0x927c53d5` |
| `PromiseRevertFailed()` | `0x0175b9de` |
| `NotLatestPromise()` | `0x39ca95d3` |
| `OnlyInvoker()` | `0x74ed21f5` |
| `PromiseAlreadySetUp()` | `0x927c53d5` |
| `PromiseRevertFailed()` | `0x0175b9de` |
| `NotLatestPromise()` | `0x39ca95d3` |

## evmx/helpers/ForwarderSolana.sol

| Error | Signature |
|-------|-----------|
| `InvalidSolanaChainSlug()` | `0xe37803ab` |
| `AddressResolverNotSet()` | `0x6d55276d` |

## evmx/plugs/ContractFactoryPlug.sol

| Error | Signature |
| -------------------------------- | ------------ |
| `DeploymentFailed()` | `0x30116425` |
| Error | Signature |
|-------|-----------|
| `DeploymentFailed()` | `0x30116425` |
| `ExecutionFailed(bytes32,bytes)` | `0xd255d8a3` |
| `information(bool,,bytes)` | `0x3a82a1f3` |
| `information(bool,,bytes)` | `0x3a82a1f3` |

## evmx/plugs/FeesPlug.sol

| Error | Signature |
| --------------------------------------------------- | ------------ |
| Error | Signature |
|-------|-----------|
| `InsufficientTokenBalance(address,uint256,uint256)` | `0xebd6ced9` |
| `InvalidDepositAmount()` | `0xfe9ba5cd` |
| `TokenNotWhitelisted(address)` | `0xea3bff2e` |
| `InvalidDepositAmount()` | `0xfe9ba5cd` |
| `TokenNotWhitelisted(address)` | `0xea3bff2e` |

## evmx/watcher/RequestHandler.sol

| Error | Signature |
| ----------------------- | ------------ |
| Error | Signature |
|-------|-----------|
| `InsufficientMaxFees()` | `0x0e5bc492` |

## protocol/Socket.sol

| Error | Signature |
| ----------------------------------------- | ------------ |
| Error | Signature |
|-------|-----------|
| `PayloadAlreadyExecuted(ExecutionStatus)` | `0xf4c54edd` |
| `VerificationFailed()` | `0x439cc0cd` |
| `LowGasLimit()` | `0xd38edae0` |
| `InsufficientMsgValue()` | `0x78f38f76` |
| `VerificationFailed()` | `0x439cc0cd` |
| `LowGasLimit()` | `0xd38edae0` |
| `InsufficientMsgValue()` | `0x78f38f76` |

## protocol/SocketConfig.sol

| Error | Signature |
| --------------------- | ------------ |
| Error | Signature |
|-------|-----------|
| `SwitchboardExists()` | `0x2dff8555` |
| `PlugNotConnected()` | `0x411d0255` |
| `PlugNotConnected()` | `0x411d0255` |

## protocol/SocketFeeManager.sol

| Error | Signature |
| -------------------- | ------------ |
| Error | Signature |
|-------|-----------|
| `InsufficientFees()` | `0x8d53e553` |
| `FeeTooLow()` | `0x732f9413` |
| `FeeTooLow()` | `0x732f9413` |

## protocol/SocketUtils.sol

| Error | Signature |
| -------------------- | ------------ |
| `OnlyOffChain()` | `0x9cbfe066` |
| Error | Signature |
|-------|-----------|
| `OnlyOffChain()` | `0x9cbfe066` |
| `SimulationFailed()` | `0x2fbab3ac` |

## protocol/base/MessagePlugBase.sol

| Error | Signature |
| ---------------- | ------------ |
| Error | Signature |
|-------|-----------|
| `NotSupported()` | `0xa0387940` |

## protocol/switchboard/CCTPSwitchboard.sol

| Error | Signature |
| ------------------------------- | ------------ |
| `RemoteExecutionNotFound()` | `0xbd506972` |
| Error | Signature |
|-------|-----------|
| `RemoteExecutionNotFound()` | `0xbd506972` |
| `PrevBatchDigestHashMismatch()` | `0xc9864e9d` |
| `NotAttested()` | `0x99efb890` |
| `NotExecuted()` | `0xec84b1da` |
| `InvalidSender()` | `0xddb5de5e` |
| `OnlyMessageTransmitter()` | `0x935ac89c` |
| `NotAttested()` | `0x99efb890` |
| `NotExecuted()` | `0xec84b1da` |
| `InvalidSender()` | `0xddb5de5e` |
| `OnlyMessageTransmitter()` | `0x935ac89c` |

## protocol/switchboard/FastSwitchboard.sol

| Error | Signature |
| ------------------- | ------------ |
| Error | Signature |
|-------|-----------|
| `AlreadyAttested()` | `0x35d90805` |
| `WatcherNotFound()` | `0xa278e4ad` |

## protocol/switchboard/MessageSwitchboard.sol

| Error | Signature |
| ----------------------------- | ------------ |
| `AlreadyAttested()` | `0x35d90805` |
| `WatcherNotFound()` | `0xa278e4ad` |
| `SiblingNotFound()` | `0xb3b47851` |
| Error | Signature |
|-------|-----------|
| `AlreadyAttested()` | `0x35d90805` |
| `WatcherNotFound()` | `0xa278e4ad` |
| `SiblingNotFound()` | `0xb3b47851` |
| `InvalidTargetVerification()` | `0xe9377a19` |
| `InvalidMsgValue()` | `0x1841b4e1` |
| `InvalidMsgValue()` | `0x1841b4e1` |

## utils/AccessControl.sol

| Error | Signature |
| ------------------- | ------------ |
| Error | Signature |
|-------|-----------|
| `NoPermit(bytes32)` | `0x962f6333` |

## utils/common/Converters.sol

| Error | Signature |
| -------------------------- | ------------ |
| Error | Signature |
|-------|-----------|
| `NotAnEvmAddress(bytes32)` | `0x33b960d0` |

## utils/common/Errors.sol

| Error | Signature |
| --------------------------------------------- | ------------ |
| `ZeroAddress()` | `0xd92e233d` |
| `InvalidTransmitter()` | `0x58a70a0a` |
| `InvalidTokenAddress()` | `0x1eb00b06` |
| `InvalidSwitchboard()` | `0xf63c9e4d` |
| `SocketAlreadyInitialized()` | `0xc9500b00` |
| `NotSocket()` | `0xc59f8f7c` |
| `PlugNotFound()` | `0x5f1ac76a` |
| `ResolvingScheduleTooEarly()` | `0x207e8731` |
| `CallFailed()` | `0x3204506f` |
| `InvalidAppGateway()` | `0x82ded261` |
| `AppGatewayAlreadyCalled()` | `0xb224683f` |
| `InvalidCallerTriggered()` | `0x3292d247` |
| `InvalidPromise()` | `0x45f2d176` |
| `InvalidWatcherSignature()` | `0x5029f14f` |
| `NonceUsed()` | `0x1f6d5aef` |
| `AsyncModifierNotSet()` | `0xcae106f9` |
| `WatcherNotSet()` | `0x42d473a7` |
| `InvalidTarget()` | `0x82d5d76a` |
| `InvalidIndex()` | `0x63df8171` |
| `InvalidChainSlug()` | `0xbff6b106` |
| `InvalidPayloadSize()` | `0xfbdf7954` |
| `InvalidOnChainAddress()` | `0xb758c606` |
| `InvalidScheduleDelay()` | `0x9a993219` |
| `AuctionClosed()` | `0x36b6b46d` |
| `AuctionNotOpen()` | `0xf0460077` |
| `BidExceedsMaxFees()` | `0x4c923f3c` |
| `LowerBidAlreadyExists()` | `0xaaa1f709` |
| `RequestCountMismatch()` | `0x98bbcbff` |
| `InvalidAmount()` | `0x2c5211c6` |
| `InsufficientCreditsAvailable()` | `0xe61dc0aa` |
| `InsufficientBalance()` | `0xf4d678b8` |
| `InvalidCaller()` | `0x48f5c3ed` |
| `InvalidGateway()` | `0xfc9dfe85` |
| `RequestAlreadyCancelled()` | `0xc70f47d8` |
| `DeadlineNotPassedForOnChainRevert()` | `0x7006aa10` |
| `InvalidBid()` | `0xc6388ef7` |
| `MaxReAuctionCountReached()` | `0xf2b4388c` |
| `MaxMsgValueLimitExceeded()` | `0x97b4e8ce` |
| `OnlyWatcherAllowed()` | `0xdf7d227c` |
| `InvalidPrecompileData()` | `0x320062c0` |
| `InvalidCallType()` | `0x39d2eb55` |
| `NotRequestHandler()` | `0x8f8cba5b` |
| `NotInvoker()` | `0x8a6353d1` |
| `NotPromiseResolver()` | `0x86d876b2` |
| `RequestPayloadCountLimitExceeded()` | `0xcbef144b` |
| `InsufficientFees()` | `0x8d53e553` |
| `RequestAlreadySettled()` | `0x66fad465` |
| `NoWriteRequest()` | `0x9dcd3065` |
| `AlreadyAssigned()` | `0x9688dc51` |
| `OnlyAppGateway()` | `0xfec944ea` |
| Error | Signature |
|-------|-----------|
| `ZeroAddress()` | `0xd92e233d` |
| `InvalidTransmitter()` | `0x58a70a0a` |
| `InvalidTokenAddress()` | `0x1eb00b06` |
| `InvalidSwitchboard()` | `0xf63c9e4d` |
| `SocketAlreadyInitialized()` | `0xc9500b00` |
| `NotSocket()` | `0xc59f8f7c` |
| `PlugNotFound()` | `0x5f1ac76a` |
| `ResolvingScheduleTooEarly()` | `0x207e8731` |
| `CallFailed()` | `0x3204506f` |
| `InvalidAppGateway()` | `0x82ded261` |
| `AppGatewayAlreadyCalled()` | `0xb224683f` |
| `InvalidCallerTriggered()` | `0x3292d247` |
| `InvalidPromise()` | `0x45f2d176` |
| `InvalidWatcherSignature()` | `0x5029f14f` |
| `NonceUsed()` | `0x1f6d5aef` |
| `AsyncModifierNotSet()` | `0xcae106f9` |
| `WatcherNotSet()` | `0x42d473a7` |
| `InvalidTarget()` | `0x82d5d76a` |
| `InvalidIndex()` | `0x63df8171` |
| `InvalidChainSlug()` | `0xbff6b106` |
| `InvalidPayloadSize()` | `0xfbdf7954` |
| `InvalidOnChainAddress()` | `0xb758c606` |
| `InvalidScheduleDelay()` | `0x9a993219` |
| `AuctionClosed()` | `0x36b6b46d` |
| `AuctionNotOpen()` | `0xf0460077` |
| `BidExceedsMaxFees()` | `0x4c923f3c` |
| `LowerBidAlreadyExists()` | `0xaaa1f709` |
| `RequestCountMismatch()` | `0x98bbcbff` |
| `InvalidAmount()` | `0x2c5211c6` |
| `InsufficientCreditsAvailable()` | `0xe61dc0aa` |
| `InsufficientBalance()` | `0xf4d678b8` |
| `InvalidCaller()` | `0x48f5c3ed` |
| `InvalidGateway()` | `0xfc9dfe85` |
| `RequestAlreadyCancelled()` | `0xc70f47d8` |
| `DeadlineNotPassedForOnChainRevert()` | `0x7006aa10` |
| `InvalidBid()` | `0xc6388ef7` |
| `MaxReAuctionCountReached()` | `0xf2b4388c` |
| `MaxMsgValueLimitExceeded()` | `0x97b4e8ce` |
| `OnlyWatcherAllowed()` | `0xdf7d227c` |
| `InvalidPrecompileData()` | `0x320062c0` |
| `InvalidCallType()` | `0x39d2eb55` |
| `NotRequestHandler()` | `0x8f8cba5b` |
| `NotInvoker()` | `0x8a6353d1` |
| `NotPromiseResolver()` | `0x86d876b2` |
| `RequestPayloadCountLimitExceeded()` | `0xcbef144b` |
| `InsufficientFees()` | `0x8d53e553` |
| `RequestAlreadySettled()` | `0x66fad465` |
| `NoWriteRequest()` | `0x9dcd3065` |
| `AlreadyAssigned()` | `0x9688dc51` |
| `OnlyAppGateway()` | `0xfec944ea` |
| `NewMaxFeesLowerThanCurrent(uint256,uint256)` | `0x1345dda1` |
| `InvalidContract()` | `0x6eefed20` |
| `InvalidData()` | `0x5cb045db` |
| `InvalidSignature()` | `0x8baa579f` |
| `DeadlinePassed()` | `0x70f65caa` |
| `OnlyRequestHandlerAllowed()` | `0x5c1aa683` |
| `OnlyPromiseResolverAllowed()` | `0x2392c25e` |
| `InvalidReceiver()` | `0x1e4ec46b` |
| `InvalidContract()` | `0x6eefed20` |
| `InvalidData()` | `0x5cb045db` |
| `InvalidSignature()` | `0x8baa579f` |
| `DeadlinePassed()` | `0x70f65caa` |
| `OnlyRequestHandlerAllowed()` | `0x5c1aa683` |
| `OnlyPromiseResolverAllowed()` | `0x2392c25e` |
| `InvalidReceiver()` | `0x1e4ec46b` |
Loading