1
- import { utils } from "@coral-xyz/anchor" ;
1
+ import { getAssociatedTokenAddressSync } from "@solana/spl-token" ;
2
+ import { PublicKey } from "@solana/web3.js" ;
2
3
import { DeployFunction } from "hardhat-deploy/types" ;
3
4
import { HardhatRuntimeEnvironment } from "hardhat/types" ;
4
5
import { getDeployedAddress } from "../src/DeploymentUtils" ;
6
+ import { fromBase58ToBytes32 } from "../src/svm/web3-v1" ;
5
7
import { SOLANA_SPOKE_STATE_SEED } from "../src/svm/web3-v1/constants" ;
6
8
import { getSolanaChainId } from "../src/svm/web3-v1/helpers" ;
7
9
import { CHAIN_IDs } from "../utils" ;
8
- import { USDC } from "./consts" ;
9
- import { getAssociatedTokenAddressSync } from "@solana/spl-token" ;
10
- import { PublicKey } from "@solana/web3.js" ;
11
-
12
- const fromBase58 = ( input : string ) => {
13
- const decodedBytes = utils . bytes . bs58 . decode ( input ) ;
14
- return "0x" + Buffer . from ( decodedBytes ) . toString ( "hex" ) ;
15
- } ;
16
-
17
- const CCTP_TOKEN_MESSENGER_V1 = {
18
- [ CHAIN_IDs . MAINNET ] : "0xbd3fa81b58ba92a82136038b25adec7066af3155" ,
19
- [ CHAIN_IDs . SEPOLIA ] : "0x9f3B8679c73C2Fef8b59B4f3444d4e156fb70AA5" ,
20
- } ;
21
-
22
- const CCTP_MESSAGE_TRANSMITTER_V1 = {
23
- [ CHAIN_IDs . MAINNET ] : "0x0a992d191deec32afe36203ad87d7d289a738f81" ,
24
- [ CHAIN_IDs . SEPOLIA ] : "0x7865fAfC2db2093669d92c0F33AeEF291086BEFD" ,
25
- } ;
10
+ import { L1_ADDRESS_MAP , USDC } from "./consts" ;
26
11
27
12
const SOLANA_USDC = {
28
13
mainnet : "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" ,
@@ -35,19 +20,19 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
35
20
const solanaTargetNetwork = chainId != CHAIN_IDs . MAINNET ? "devnet" : "mainnet" ;
36
21
37
22
const l1Usdc = USDC [ chainId ] ;
38
- const cctpTokenMessenger = CCTP_TOKEN_MESSENGER_V1 [ chainId ] ;
39
- const cctpMessageTransmitter = CCTP_MESSAGE_TRANSMITTER_V1 [ chainId ] ;
23
+ const cctpTokenMessenger = L1_ADDRESS_MAP [ chainId ] . cctpTokenMessenger ;
24
+ const cctpMessageTransmitter = L1_ADDRESS_MAP [ chainId ] . cctpMessageTransmitter ;
40
25
const solanaSpokePool = getDeployedAddress ( "SvmSpoke" , getSolanaChainId ( solanaTargetNetwork ) . toString ( ) ) ;
41
26
if ( ! solanaSpokePool ) {
42
27
throw new Error ( "SvmSpoke not deployed" ) ;
43
28
}
44
- const solanaUsdc = fromBase58 ( SOLANA_USDC [ solanaTargetNetwork ] ) ;
29
+ const solanaUsdc = fromBase58ToBytes32 ( SOLANA_USDC [ solanaTargetNetwork ] ) ;
45
30
const mint = new PublicKey ( SOLANA_USDC [ solanaTargetNetwork ] ) ;
46
31
const seeds = [ Buffer . from ( "state" ) , SOLANA_SPOKE_STATE_SEED . toArrayLike ( Buffer , "le" , 8 ) ] ;
47
32
const [ state ] = PublicKey . findProgramAddressSync ( seeds , new PublicKey ( solanaSpokePool ) ) ;
48
33
const vault = getAssociatedTokenAddressSync ( mint , state , true ) ;
49
- const solanaSpokePoolUsdcVault = fromBase58 ( vault . toBase58 ( ) ) ;
50
- const solanaSpokePoolBytes32 = fromBase58 ( solanaSpokePool ) ;
34
+ const solanaSpokePoolUsdcVault = fromBase58ToBytes32 ( vault . toBase58 ( ) ) ;
35
+ const solanaSpokePoolBytes32 = fromBase58ToBytes32 ( solanaSpokePool ) ;
51
36
52
37
await hre . deployments . deploy ( "Solana_Adapter" , {
53
38
from : deployer ,
@@ -65,4 +50,4 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
65
50
} ;
66
51
67
52
module . exports = func ;
68
- func . tags = [ "Solana_Adapter " ] ;
53
+ func . tags = [ "SolanaAdapter" , "mainnet "] ;
0 commit comments