Skip to content

Commit 78dad2e

Browse files
feat: Sponsored CCTP Deposits from Solana Audit (#1216)
* feat(svm): cctp sponsored src (#1136) * feat(svm): wip cctp sponsored src Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: todo nonce check Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * feat: cctp quote parsing Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: comment Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: linting Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: naming Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: parse and validate quote parameters Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: missing events file Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * feat: admin methods Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: validate source domain Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * feat: validate sigature Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: represent nonce as pubkey Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * feat: sponsored cctp periphery artifacts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: rename to max_bps_to_sponsor Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * test: sponsored cctp svm deposit Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: comment typo Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: remove only Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: use existing lookup table in tests Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * feat: sponsored rent fund Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: nonce validation Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: use vec in params and emit signature Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: comment on vec usage Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: use vec for nonce Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: simplify signature errors Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: match deposit event to evm Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: sync signer naming with evm Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: check for changed signer Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: remove redundant signer check Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: reorder validation logic to match evm Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: move mint checks to constraints Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: revert to fixed sized input params Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: use native i64 for timestamps Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: improve decoding logic Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * feat: used nonce close info getter Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: sync source domain naming with evm Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: sync deposit_for_burn naming with evm Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: remove redundant quote.deadline() call Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: update comment Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: consistent deposit account naming Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: update comment Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: rename internal fn Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * feat: emit created message sent account Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: drop state seed Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: import visibility Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: remove build warnings Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: add security.txt Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: add missing maxUserSlippageBps Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: simplify layout Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: initial docs Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: improve documentation Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: typo Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: instruction name in comments Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: lint Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: optimize address bumps Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * test: reclaim nonce account Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: add arbitrary actions execution to sponsored bridging Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: remove duplicate test Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: update comment Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: update comment Signed-off-by: Reinis Martinsons <reinis@umaproject.org> --------- Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix(svm): use native svm inputs for sponsored cctp bridge (#19) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> Co-authored-by: Reinis Martinsons <reinis@umaproject.org> * fix[h-01]: enforce minimum deposit amount (#38) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix[l-01]: allow debt to user when rent_fund is low (#57) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix[l-02]: persist state pda bump (#59) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix[l-03]: use emit for admin events (#63) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix[n-01]: check withdraw from rent_fund recipient (#60) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix[n-02]: document quote struct parameter (#61) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix[n-03]: separate state struct in prod (#62) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix[l-01]: allow partial rent debt repayment (#76) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix[c-01]: reconstruct destination message from source and params (#75) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * feat(svm): sponsored svm scripts (#25) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * fix: broadcast addresses Signed-off-by: Reinis Martinsons <reinis@umaproject.org> * bump package version Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Reinis Martinsons <reinis@umaproject.org> Signed-off-by: Ihor Farion <ihor@umaproject.org> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: Ihor Farion <ihor@umaproject.org>
1 parent c673e42 commit 78dad2e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+4477
-32
lines changed

Anchor.toml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,17 @@ skip-lint = false
88
multicall_handler = "HaQe51FWtnmaEcuYEfPA7MRCXKrtqptat4oJdJ8zV5Be"
99
svm_spoke = "DLv3NggMiSaef97YCkew5xKUHDh13tVGZ7tydt3ZeAru"
1010
test = "8tsEfDSiE4WUMf97oyyyasLAvWwjeRZb2GByh4w7HckA"
11+
sponsored_cctp_src_periphery = "CPr4bRvkVKcSCLyrQpkZrRrwGzQeVAXutFU8WupuBLXq"
1112

1213
[programs.devnet]
1314
multicall_handler = "Fk1RpqsfeWt8KnFCTW9NQVdVxYvxuqjGn6iPB9wrmM8h"
1415
svm_spoke = "JAZWcGrpSWNPTBj8QtJ9UyQqhJCDhG9GJkDeMf5NQBiq"
16+
sponsored_cctp_src_periphery = "CPr4bRvkVKcSCLyrQpkZrRrwGzQeVAXutFU8WupuBLXq"
1517

1618
[programs.mainnet]
1719
multicall_handler = "HaQe51FWtnmaEcuYEfPA7MRCXKrtqptat4oJdJ8zV5Be"
1820
svm_spoke = "DLv3NggMiSaef97YCkew5xKUHDh13tVGZ7tydt3ZeAru"
21+
sponsored_cctp_src_periphery = "CPr4bRvkVKcSCLyrQpkZrRrwGzQeVAXutFU8WupuBLXq"
1922

2023
[registry]
2124
url = "https://api.apr.dev"
@@ -25,6 +28,7 @@ cluster = "localnet"
2528
wallet = "test/svm/keys/localnet-wallet.json"
2629

2730
[scripts]
31+
### SvmSpoke scripts:
2832
test = "anchor run generateExternalTypes && yarn run ts-mocha -p ./tsconfig.json -t 1000000 test/svm/**/*.ts"
2933
queryEvents = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/queryEvents.ts"
3034
queryEventsV2 = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/queryEventsV2.ts"
@@ -56,6 +60,23 @@ findFillStatusFromFillStatusPda = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts
5660
nativeDeposit = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/nativeDeposit.ts"
5761
squadsIdlUpgrade = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/squadsIdlUpgrade.ts"
5862

63+
### SponsoredCctpSrc scripts:
64+
initializeSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/initialize.ts"
65+
setSignerSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/setSigner.ts"
66+
setMinimumDepositSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/setMinimumDeposit.ts"
67+
withdrawRentFundSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/withdrawRentFund.ts"
68+
depositRentFundSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/depositRentFund.ts"
69+
setupLookupTableSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/setupLookupTable.ts"
70+
depositForBurnSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/depositForBurn.ts"
71+
queryDepositsSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/queryDeposits.ts"
72+
reclaimUsedNonceAccountsSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/reclaimUsedNonceAccounts.ts"
73+
reclaimEventAccountsSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/reclaimEventAccounts.ts"
74+
receiveMessageSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/receiveMessage.ts"
75+
repayRentFundDebtSponsoredCctpSrc = "NODE_NO_WARNINGS=1 yarn run ts-node ./scripts/svm/SponsoredCctpSrc/repayRentFundDebt.ts"
76+
77+
[test]
78+
upgradeable = true
79+
5980
[test.validator]
6081
url = "https://api.mainnet-beta.solana.com"
6182

@@ -84,3 +105,28 @@ address = "Afgq3BHEfCE7d78D2XE9Bfyu2ieDqvE24xX8KDwreBms"
84105
### Circle Token Messenger Minter PDA -- Ethereum Remote Token Messenger
85106
[[test.validator.clone]]
86107
address = "Hazwi3jFQtLKc2ughi7HFXPkpDeso7DQaMR9Ks4afh3j"
108+
109+
### Forked Circle MessageTransmitterV2 Program
110+
[[test.validator.clone]]
111+
address = "CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC"
112+
113+
### Forked Circle TokenMessengerMinterV2 Program
114+
[[test.validator.clone]]
115+
address = "CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe"
116+
117+
### Forked Circle MessageTransmitterV2 PDA -- Message Transmitter Config
118+
[[test.validator.clone]]
119+
address = "W1k5ijkaSTo5iA5zChNpfzcy796fLhkBxfmJuR8W8HU"
120+
121+
### Forked Circle TokenMessengerMinterV2 PDA -- Token Messenger
122+
[[test.validator.clone]]
123+
address = "AawthJCGRmggpfv9MMWV6Jmo9cue4gL9wUZgRBShg58W"
124+
125+
### Circle TokenMessengerMinterV2 PDA -- Ethereum Remote Token Messenger
126+
[[test.validator.clone]]
127+
address = "3EzN2mcmdfSNGXRCAixSpTteK6ywdmFDZZWvkMnznFt9"
128+
129+
### Circle TokenMessengerMinterV2 PDA -- Token Minter (Modified with token_controller set to test wallet)
130+
[[test.validator.account]]
131+
address = "E1bQJ8eMMn3zmeSewW3HQ8zmJr7KR75JonbwAtWx2bux"
132+
filename = "test/svm/accounts/token_minter_v2.json"

Cargo.lock

Lines changed: 96 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ solana program deploy \
136136
--keypair $KEYPAIR \
137137
--program-id target/deploy/$PROGRAM-keypair.json \
138138
--max-len $MAX_LEN \
139-
--with-compute-unit-price 50000 \
139+
--with-compute-unit-price 100000 \
140140
--max-sign-attempts 100 \
141141
--use-rpc \
142142
target/deploy/$PROGRAM.so
@@ -189,6 +189,22 @@ anchor run createVault \
189189
--originToken $MINT
190190
```
191191

192+
`sponsored_cctp_src_periphery` requires initialization and setting minimum deposit amount for supported burn token:
193+
194+
```shell
195+
# Replace --quoteSigner with actual quote signer address
196+
anchor run initializeSponsoredCctpSrc \
197+
--provider.cluster $RPC_URL \
198+
--provider.wallet $KEYPAIR -- \
199+
--quoteSigner 0x0000000000000000000000000000000000000000
200+
# Below is USDC on devnet, replace --burnToken with mainnet burn token and --amount with required minimum deposit amount (raw value)
201+
anchor run setMinimumDepositSponsoredCctpSrc \
202+
--provider.cluster $RPC_URL \
203+
--provider.wallet $KEYPAIR -- \
204+
--burnToken 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU \
205+
--amount 0
206+
```
207+
192208
#### Upgrades
193209

194210
Initiate the program upgrade:
@@ -197,7 +213,7 @@ Initiate the program upgrade:
197213
solana program write-buffer \
198214
--url $RPC_URL \
199215
--keypair $KEYPAIR \
200-
--with-compute-unit-price 50000 \
216+
--with-compute-unit-price 100000 \
201217
--max-sign-attempts 100 \
202218
--use-rpc \
203219
target/deploy/$PROGRAM.so

broadcast/deployed-addresses.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,6 +1078,10 @@
10781078
"TokenMessengerMinterV2": {
10791079
"address": "CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe",
10801080
"block_number": 383709630
1081+
},
1082+
"SponsoredCctpSrcPeriphery": {
1083+
"address": "CPr4bRvkVKcSCLyrQpkZrRrwGzQeVAXutFU8WupuBLXq",
1084+
"block_number": 425722812
10811085
}
10821086
}
10831087
},
@@ -1107,6 +1111,10 @@
11071111
"TokenMessengerMinterV2": {
11081112
"address": "CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe",
11091113
"block_number": 343322709
1114+
},
1115+
"SponsoredCctpSrcPeriphery": {
1116+
"address": "CPr4bRvkVKcSCLyrQpkZrRrwGzQeVAXutFU8WupuBLXq",
1117+
"block_number": 385282462
11101118
}
11111119
}
11121120
}

broadcast/deployed-addresses.md

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -298,14 +298,15 @@ This file contains the latest deployed smart contract addresses from the broadca
298298

299299
## Solana (34268394551451)
300300

301-
| Contract Name | Address |
302-
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------- |
303-
| MessageTransmitter | [CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd](https://solscan.io/account/CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd) |
304-
| MessageTransmitterV2 | [CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC](https://solscan.io/account/CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC) |
305-
| MulticallHandler | [HaQe51FWtnmaEcuYEfPA7MRCXKrtqptat4oJdJ8zV5Be](https://solscan.io/account/HaQe51FWtnmaEcuYEfPA7MRCXKrtqptat4oJdJ8zV5Be) |
306-
| SvmSpoke | [DLv3NggMiSaef97YCkew5xKUHDh13tVGZ7tydt3ZeAru](https://solscan.io/account/DLv3NggMiSaef97YCkew5xKUHDh13tVGZ7tydt3ZeAru) |
307-
| TokenMessengerMinter | [CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3](https://solscan.io/account/CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3) |
308-
| TokenMessengerMinterV2 | [CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe](https://solscan.io/account/CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe) |
301+
| Contract Name | Address |
302+
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
303+
| MessageTransmitter | [CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd](https://solscan.io/account/CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd) |
304+
| MessageTransmitterV2 | [CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC](https://solscan.io/account/CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC) |
305+
| MulticallHandler | [HaQe51FWtnmaEcuYEfPA7MRCXKrtqptat4oJdJ8zV5Be](https://solscan.io/account/HaQe51FWtnmaEcuYEfPA7MRCXKrtqptat4oJdJ8zV5Be) |
306+
| SponsoredCctpSrcPeriphery | [CPr4bRvkVKcSCLyrQpkZrRrwGzQeVAXutFU8WupuBLXq](https://solscan.io/account/CPr4bRvkVKcSCLyrQpkZrRrwGzQeVAXutFU8WupuBLXq) |
307+
| SvmSpoke | [DLv3NggMiSaef97YCkew5xKUHDh13tVGZ7tydt3ZeAru](https://solscan.io/account/DLv3NggMiSaef97YCkew5xKUHDh13tVGZ7tydt3ZeAru) |
308+
| TokenMessengerMinter | [CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3](https://solscan.io/account/CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3) |
309+
| TokenMessengerMinterV2 | [CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe](https://solscan.io/account/CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe) |
309310

310311
## Mode Sepolia (919)
311312

@@ -406,11 +407,12 @@ This file contains the latest deployed smart contract addresses from the broadca
406407

407408
## Solana Devnet (133268194659241)
408409

409-
| Contract Name | Address |
410-
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
411-
| MessageTransmitter | [CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd](https://explorer.solana.com/?cluster=devnet/account/CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd) |
412-
| MessageTransmitterV2 | [CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC](https://explorer.solana.com/?cluster=devnet/account/CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC) |
413-
| MulticallHandler | [Fk1RpqsfeWt8KnFCTW9NQVdVxYvxuqjGn6iPB9wrmM8h](https://explorer.solana.com/?cluster=devnet/account/Fk1RpqsfeWt8KnFCTW9NQVdVxYvxuqjGn6iPB9wrmM8h) |
414-
| SvmSpoke | [JAZWcGrpSWNPTBj8QtJ9UyQqhJCDhG9GJkDeMf5NQBiq](https://explorer.solana.com/?cluster=devnet/account/JAZWcGrpSWNPTBj8QtJ9UyQqhJCDhG9GJkDeMf5NQBiq) |
415-
| TokenMessengerMinter | [CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3](https://explorer.solana.com/?cluster=devnet/account/CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3) |
416-
| TokenMessengerMinterV2 | [CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe](https://explorer.solana.com/?cluster=devnet/account/CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe) |
410+
| Contract Name | Address |
411+
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
412+
| MessageTransmitter | [CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd](https://explorer.solana.com/?cluster=devnet/account/CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd) |
413+
| MessageTransmitterV2 | [CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC](https://explorer.solana.com/?cluster=devnet/account/CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC) |
414+
| MulticallHandler | [Fk1RpqsfeWt8KnFCTW9NQVdVxYvxuqjGn6iPB9wrmM8h](https://explorer.solana.com/?cluster=devnet/account/Fk1RpqsfeWt8KnFCTW9NQVdVxYvxuqjGn6iPB9wrmM8h) |
415+
| SponsoredCctpSrcPeriphery | [CPr4bRvkVKcSCLyrQpkZrRrwGzQeVAXutFU8WupuBLXq](https://explorer.solana.com/?cluster=devnet/account/CPr4bRvkVKcSCLyrQpkZrRrwGzQeVAXutFU8WupuBLXq) |
416+
| SvmSpoke | [JAZWcGrpSWNPTBj8QtJ9UyQqhJCDhG9GJkDeMf5NQBiq](https://explorer.solana.com/?cluster=devnet/account/JAZWcGrpSWNPTBj8QtJ9UyQqhJCDhG9GJkDeMf5NQBiq) |
417+
| TokenMessengerMinter | [CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3](https://explorer.solana.com/?cluster=devnet/account/CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3) |
418+
| TokenMessengerMinterV2 | [CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe](https://explorer.solana.com/?cluster=devnet/account/CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe) |

deployments/deployments.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,10 @@
271271
"TokenMessengerMinterV2": {
272272
"address": "CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe",
273273
"blockNumber": 383709630
274+
},
275+
"SponsoredCctpSrcPeriphery": {
276+
"address": "CPr4bRvkVKcSCLyrQpkZrRrwGzQeVAXutFU8WupuBLXq",
277+
"blockNumber": 425722812
274278
}
275279
},
276280
"34268394551451": {
@@ -297,6 +301,10 @@
297301
"TokenMessengerMinterV2": {
298302
"address": "CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe",
299303
"blockNumber": 343322709
304+
},
305+
"SponsoredCctpSrcPeriphery": {
306+
"address": "CPr4bRvkVKcSCLyrQpkZrRrwGzQeVAXutFU8WupuBLXq",
307+
"blockNumber": 385282462
300308
}
301309
},
302310
"808813": {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@across-protocol/contracts",
3-
"version": "4.1.17-beta.3",
3+
"version": "4.1.17-beta.4",
44
"author": "UMA Team",
55
"license": "AGPL-3.0-only",
66
"repository": {

0 commit comments

Comments
 (0)