@wormhole-foundation/sdk-solana-tokenbridge 2.3.0 → 3.0.0-tb-exec.beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executorTokenBridgeTypes.js","sourceRoot":"","sources":["../../src/executorTokenBridgeTypes.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  export * from './tokenBridgeType.js';
2
2
  export * from './automaticTokenBridgeType.js';
3
+ export * from './executorTokenBridgeTypes.js';
3
4
  export * from './utils/index.js';
4
5
  export * from './tokenBridge.js';
5
6
  export * from './automaticTokenBridge.js';
7
+ export * from './executorTokenBridge.js';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAUA,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -18,11 +18,15 @@ const sdk_solana_1 = require("@wormhole-foundation/sdk-solana");
18
18
  const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
19
19
  const tokenBridge_js_1 = require("./tokenBridge.js");
20
20
  const automaticTokenBridge_js_1 = require("./automaticTokenBridge.js");
21
+ const executorTokenBridge_js_1 = require("./executorTokenBridge.js");
21
22
  (0, sdk_connect_1.registerProtocol)(sdk_solana_1._platform, 'TokenBridge', tokenBridge_js_1.SolanaTokenBridge);
22
23
  (0, sdk_connect_1.registerProtocol)(sdk_solana_1._platform, 'AutomaticTokenBridge', automaticTokenBridge_js_1.SolanaAutomaticTokenBridge);
24
+ (0, sdk_connect_1.registerProtocol)(sdk_solana_1._platform, 'ExecutorTokenBridge', executorTokenBridge_js_1.SolanaExecutorTokenBridge);
23
25
  __exportStar(require("./tokenBridgeType.js"), exports);
24
26
  __exportStar(require("./automaticTokenBridgeType.js"), exports);
27
+ __exportStar(require("./executorTokenBridgeTypes.js"), exports);
25
28
  __exportStar(require("./utils/index.js"), exports);
26
29
  __exportStar(require("./tokenBridge.js"), exports);
27
30
  __exportStar(require("./automaticTokenBridge.js"), exports);
31
+ __exportStar(require("./executorTokenBridge.js"), exports);
28
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA4D;AAC5D,kEAAoE;AACpE,qDAAqD;AACrD,uEAAuE;AAEvE,IAAA,8BAAgB,EAAC,sBAAS,EAAE,aAAa,EAAE,kCAAiB,CAAC,CAAC;AAC9D,IAAA,8BAAgB,EAAC,sBAAS,EAAE,sBAAsB,EAAE,oDAA0B,CAAC,CAAC;AAEhF,uDAAqC;AACrC,gEAA8C;AAC9C,mDAAiC;AACjC,mDAAiC;AACjC,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA4D;AAC5D,kEAAoE;AACpE,qDAAqD;AACrD,uEAAuE;AACvE,qEAAqE;AAErE,IAAA,8BAAgB,EAAC,sBAAS,EAAE,aAAa,EAAE,kCAAiB,CAAC,CAAC;AAC9D,IAAA,8BAAgB,EAAC,sBAAS,EAAE,sBAAsB,EAAE,oDAA0B,CAAC,CAAC;AAChF,IAAA,8BAAgB,EAAC,sBAAS,EAAE,qBAAqB,EAAE,kDAAyB,CAAC,CAAC;AAE9E,uDAAqC;AACrC,gEAA8C;AAC9C,gEAA8C;AAC9C,mDAAiC;AACjC,mDAAiC;AACjC,4DAA0C;AAC1C,2DAAyC"}
@@ -0,0 +1,31 @@
1
+ import type { AccountAddress, ChainAddress, ChainsConfig, Contracts, Network, Platform, TokenAddress, TokenId, ExecutorTokenBridge } from '@wormhole-foundation/sdk-connect';
2
+ import type { SolanaChains } from '@wormhole-foundation/sdk-solana';
3
+ import { SolanaUnsignedTransaction } from '@wormhole-foundation/sdk-solana';
4
+ import { Program } from '@coral-xyz/anchor';
5
+ import type { AddressLookupTableAccount, Connection } from '@solana/web3.js';
6
+ import { PublicKey } from '@solana/web3.js';
7
+ import '@wormhole-foundation/sdk-solana-core';
8
+ import { ExecutorTokenBridgeRelayer } from './executorTokenBridgeTypes.js';
9
+ export declare class SolanaExecutorTokenBridge<N extends Network, C extends SolanaChains> implements ExecutorTokenBridge<N, C> {
10
+ readonly network: N;
11
+ readonly chain: C;
12
+ readonly connection: Connection;
13
+ readonly contracts: Contracts;
14
+ readonly relayerProgramId: PublicKey;
15
+ readonly executorProgramId: PublicKey;
16
+ readonly wormholeProgramId: PublicKey;
17
+ readonly tokenBridgeProgramId: PublicKey;
18
+ readonly relayerProgram: Program<ExecutorTokenBridgeRelayer>;
19
+ constructor(network: N, chain: C, connection: Connection, contracts: Contracts);
20
+ static fromRpc<N extends Network>(connection: Connection, config: ChainsConfig<N, Platform>): Promise<SolanaExecutorTokenBridge<N, SolanaChains>>;
21
+ transfer(sender: AccountAddress<C>, recipient: ChainAddress, token: TokenAddress<C>, amount: bigint, executorQuote: ExecutorTokenBridge.ExecutorQuote, referrerFee?: ExecutorTokenBridge.ReferrerFee): AsyncGenerator<SolanaUnsignedTransaction<N, C>>;
22
+ redeem(sender: AccountAddress<C>, vaa: ExecutorTokenBridge.VAA): AsyncGenerator<SolanaUnsignedTransaction<N, C>>;
23
+ getAddressLookupTable(): Promise<AddressLookupTableAccount | null>;
24
+ static associatedTokenAccountMinRent: bigint | undefined;
25
+ estimateMsgValueAndGasLimit(receivedToken: TokenId, recipient?: ChainAddress): Promise<{
26
+ msgValue: bigint;
27
+ gasLimit: bigint;
28
+ }>;
29
+ private createUnsignedTx;
30
+ }
31
+ //# sourceMappingURL=executorTokenBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executorTokenBridge.d.ts","sourceRoot":"","sources":["../../src/executorTokenBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAW1C,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAGL,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,KAAK,EACV,yBAAyB,EACzB,UAAU,EAEX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,SAAS,EAMV,MAAM,iBAAiB,CAAC;AASzB,OAAO,sCAAsC,CAAC;AAG9C,OAAO,EACL,0BAA0B,EAE3B,MAAM,+BAA+B,CAAC;AAYvC,qBAAa,yBAAyB,CACpC,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,YAAY,CACtB,YAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IAUlC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAX/B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC;IACtC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,CAAC;IAEzC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;gBAGlD,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS;WAqBlB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,yBAAyB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAe/C,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,mBAAmB,CAAC,aAAa,EAChD,WAAW,CAAC,EAAE,mBAAmB,CAAC,WAAW,GAC5C,cAAc,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA6P3C,MAAM,CACX,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,GAAG,EAAE,mBAAmB,CAAC,GAAG,GAC3B,cAAc,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAiL5C,qBAAqB,IAAI,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAmBxE,MAAM,CAAC,6BAA6B,EAAE,MAAM,GAAG,SAAS,CAAa;IAE/D,2BAA2B,CAC/B,aAAa,EAAE,OAAO,EACtB,SAAS,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAoDlD,OAAO,CAAC,gBAAgB;CAazB"}
@@ -0,0 +1,326 @@
1
+ import { canonicalAddress, contracts, isNative, relayInstructionsLayout, serializeLayout, signedQuoteLayout, toChainId, toUniversal, } from '@wormhole-foundation/sdk-connect';
2
+ import { SolanaAddress, SolanaPlatform, SolanaUnsignedTransaction, } from '@wormhole-foundation/sdk-solana';
3
+ import { Program } from '@coral-xyz/anchor';
4
+ import { Keypair, PublicKey, SystemProgram, SYSVAR_CLOCK_PUBKEY, SYSVAR_RENT_PUBKEY, TransactionMessage, VersionedTransaction, } from '@solana/web3.js';
5
+ import { ASSOCIATED_TOKEN_PROGRAM_ID, NATIVE_MINT, createAssociatedTokenAccountIdempotentInstruction, createTransferInstruction, getAssociatedTokenAddressSync, } from '@solana/spl-token';
6
+ import '@wormhole-foundation/sdk-solana-core';
7
+ import BN from 'bn.js';
8
+ import { ExecutorTokenBridgeRelayerIdl, } from './executorTokenBridgeTypes.js';
9
+ import { SolanaWormholeCore, utils, } from '@wormhole-foundation/sdk-solana-core';
10
+ import { SolanaTokenBridge } from './tokenBridge.js';
11
+ import { deriveWrappedMetaKey, deriveEndpointKey, deriveMintAuthorityKey, } from './utils/index.js';
12
+ export class SolanaExecutorTokenBridge {
13
+ network;
14
+ chain;
15
+ connection;
16
+ contracts;
17
+ relayerProgramId;
18
+ executorProgramId;
19
+ wormholeProgramId;
20
+ tokenBridgeProgramId;
21
+ relayerProgram;
22
+ constructor(network, chain, connection, contracts) {
23
+ this.network = network;
24
+ this.chain = chain;
25
+ this.connection = connection;
26
+ this.contracts = contracts;
27
+ if (!contracts.executorTokenBridge)
28
+ throw new Error(`Executor Token Bridge contracts not found for network ${network} and chain ${chain}`);
29
+ this.relayerProgramId = new PublicKey(contracts.executorTokenBridge.relayer);
30
+ this.executorProgramId = new PublicKey(contracts.executor);
31
+ this.wormholeProgramId = new PublicKey(contracts.coreBridge);
32
+ this.tokenBridgeProgramId = new PublicKey(contracts.tokenBridge);
33
+ this.relayerProgram = new Program(ExecutorTokenBridgeRelayerIdl, this.relayerProgramId, { connection: this.connection });
34
+ }
35
+ static async fromRpc(connection, config) {
36
+ const [network, chain] = await SolanaPlatform.chainFromRpc(connection);
37
+ const conf = config[chain];
38
+ if (conf.network !== network)
39
+ throw new Error(`Network mismatch: ${conf.network} != ${network}`);
40
+ return new SolanaExecutorTokenBridge(network, chain, connection, conf.contracts);
41
+ }
42
+ async *transfer(sender, recipient, token, amount, executorQuote, referrerFee) {
43
+ const dstExecutor = contracts.executorTokenBridge.get(this.network, recipient.chain);
44
+ if (!dstExecutor || !dstExecutor.relayer) {
45
+ throw new Error(`Token Bridge Executor Relayer contract for domain ${recipient.chain} not found`);
46
+ }
47
+ const dstRelayer = dstExecutor.relayer;
48
+ const senderPubkey = new SolanaAddress(sender).unwrap();
49
+ const targetChain = toChainId(recipient.chain);
50
+ const targetRecipient = recipient.address.toUniversalAddress();
51
+ const { estimatedCost, signedQuote, relayInstructions } = executorQuote;
52
+ const signedQuoteBytes = serializeLayout(signedQuoteLayout, signedQuote);
53
+ const relayInstructionsBytes = serializeLayout(relayInstructionsLayout, relayInstructions);
54
+ const tokenBridge = new SolanaTokenBridge(this.network, this.chain, this.connection, this.contracts);
55
+ const isGasToken = isNative(token);
56
+ const isWrappedAsset = !isGasToken && (await tokenBridge.isWrappedAsset(token));
57
+ const mint = isGasToken ? NATIVE_MINT : new SolanaAddress(token).unwrap();
58
+ const tokenProgram = await SolanaPlatform.getTokenProgramId(this.connection, mint);
59
+ const payeePubkey = new PublicKey(signedQuote.quote.payeeAddress);
60
+ const messageKeypair = Keypair.generate();
61
+ const dstTransferRecipient = toUniversal(recipient.chain, dstRelayer);
62
+ const dstExecutionAddress = dstTransferRecipient;
63
+ // Derive PDAs
64
+ const tokenBridgeConfig = PublicKey.findProgramAddressSync([Buffer.from('config')], this.tokenBridgeProgramId)[0];
65
+ const tokenBridgeCustody = PublicKey.findProgramAddressSync([mint.toBuffer()], this.tokenBridgeProgramId)[0];
66
+ const tokenBridgeAuthoritySigner = PublicKey.findProgramAddressSync([Buffer.from('authority_signer')], this.tokenBridgeProgramId)[0];
67
+ const tokenBridgeCustodySigner = PublicKey.findProgramAddressSync([Buffer.from('custody_signer')], this.tokenBridgeProgramId)[0];
68
+ const { wormholeEmitter: tokenBridgeEmitterId, wormholeSequence: tokenBridgeSequence, wormholeFeeCollector, wormholeBridge, } = utils.getWormholeDerivedAccounts(this.tokenBridgeProgramId, this.wormholeProgramId);
69
+ const config = PublicKey.findProgramAddressSync([Buffer.from('sender')], this.relayerProgramId)[0];
70
+ const fromTokenAccount = getAssociatedTokenAddressSync(mint, senderPubkey, false, tokenProgram);
71
+ const tmpTokenAccount = PublicKey.findProgramAddressSync([Buffer.from('tmp'), mint.toBytes()], this.relayerProgramId)[0];
72
+ const instructions = [];
73
+ if (referrerFee && referrerFee.feeAmount > 0n) {
74
+ const referrer = new PublicKey(referrerFee.referrer.address.toString());
75
+ if (mint.equals(NATIVE_MINT)) {
76
+ instructions.push(SystemProgram.transfer({
77
+ fromPubkey: senderPubkey,
78
+ toPubkey: referrer,
79
+ lamports: referrerFee.feeAmount,
80
+ }));
81
+ }
82
+ else {
83
+ const referrerAta = getAssociatedTokenAddressSync(mint, referrer, true, tokenProgram);
84
+ const senderAta = getAssociatedTokenAddressSync(mint, senderPubkey, true, tokenProgram);
85
+ const referrerAtaAccount = await this.connection.getAccountInfo(referrerAta);
86
+ if (!referrerAtaAccount) {
87
+ instructions.push(createAssociatedTokenAccountIdempotentInstruction(senderPubkey, referrerAta, referrer, mint, tokenProgram));
88
+ }
89
+ instructions.push(createTransferInstruction(senderAta, referrerAta, senderPubkey, referrerFee.feeAmount, undefined, tokenProgram));
90
+ }
91
+ }
92
+ const transferAmount = referrerFee ? referrerFee.remainingAmount : amount;
93
+ // Build transfer instruction data
94
+ const transferArgs = {
95
+ amount: new BN(transferAmount.toString()),
96
+ recipientChain: targetChain,
97
+ recipientAddress: Array.from(targetRecipient.toUint8Array()),
98
+ nonce: 0,
99
+ dstTransferRecipient: Array.from(dstTransferRecipient.toUint8Array()),
100
+ dstExecutionAddress: Array.from(dstExecutionAddress.toUint8Array()),
101
+ execAmount: new BN(estimatedCost.toString()),
102
+ signedQuoteBytes: Buffer.from(signedQuoteBytes),
103
+ relayInstructions: Buffer.from(relayInstructionsBytes),
104
+ };
105
+ if (!isWrappedAsset) {
106
+ instructions.push(await this.relayerProgram.methods
107
+ .transferNativeTokensWithRelay({
108
+ ...transferArgs,
109
+ wrapNative: isNative(token),
110
+ })
111
+ .accountsStrict({
112
+ payer: senderPubkey,
113
+ config,
114
+ mint,
115
+ fromTokenAccount,
116
+ tmpTokenAccount,
117
+ tokenBridgeConfig,
118
+ tokenBridgeCustody,
119
+ tokenBridgeAuthoritySigner,
120
+ tokenBridgeCustodySigner,
121
+ wormholeBridge,
122
+ wormholeMessage: messageKeypair.publicKey,
123
+ tokenBridgeEmitter: tokenBridgeEmitterId,
124
+ tokenBridgeSequence,
125
+ wormholeFeeCollector,
126
+ payee: payeePubkey,
127
+ systemProgram: SystemProgram.programId,
128
+ tokenProgram,
129
+ wormholeProgram: this.wormholeProgramId,
130
+ tokenBridgeProgram: this.tokenBridgeProgramId,
131
+ associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
132
+ executorProgram: this.executorProgramId,
133
+ clock: SYSVAR_CLOCK_PUBKEY,
134
+ rent: SYSVAR_RENT_PUBKEY,
135
+ })
136
+ .instruction());
137
+ }
138
+ else {
139
+ instructions.push(await this.relayerProgram.methods
140
+ .transferWrappedTokensWithRelay(transferArgs)
141
+ .accountsStrict({
142
+ payer: senderPubkey,
143
+ config,
144
+ tokenBridgeWrappedMint: mint,
145
+ fromTokenAccount,
146
+ tmpTokenAccount,
147
+ tokenBridgeWrappedMeta: deriveWrappedMetaKey(this.tokenBridgeProgramId, mint),
148
+ tokenBridgeConfig,
149
+ tokenBridgeAuthoritySigner,
150
+ wormholeBridge,
151
+ wormholeMessage: messageKeypair.publicKey,
152
+ tokenBridgeEmitter: tokenBridgeEmitterId,
153
+ tokenBridgeSequence,
154
+ wormholeFeeCollector,
155
+ payee: payeePubkey,
156
+ wormholeProgram: this.wormholeProgramId,
157
+ tokenBridgeProgram: this.tokenBridgeProgramId,
158
+ systemProgram: SystemProgram.programId,
159
+ tokenProgram,
160
+ executorProgram: this.executorProgramId,
161
+ clock: SYSVAR_CLOCK_PUBKEY,
162
+ rent: SYSVAR_RENT_PUBKEY,
163
+ })
164
+ .instruction());
165
+ }
166
+ // Build versioned transaction
167
+ const lut = await this.getAddressLookupTable();
168
+ const { blockhash } = await this.connection.getLatestBlockhash();
169
+ const messageV0 = new TransactionMessage({
170
+ payerKey: senderPubkey,
171
+ instructions,
172
+ recentBlockhash: blockhash,
173
+ }).compileToV0Message(lut ? [lut] : []);
174
+ const transaction = new VersionedTransaction(messageV0);
175
+ yield this.createUnsignedTx({ transaction, signers: [messageKeypair] }, 'ExecutorTokenBridge.transfer');
176
+ }
177
+ async *redeem(sender, vaa) {
178
+ const senderPubkey = new SolanaAddress(sender).unwrap();
179
+ const recipientPubkey = new SolanaAddress(vaa.payload.payload.targetRecipient).unwrap();
180
+ const tokenChain = vaa.payload.token.chain;
181
+ const tokenAddress = vaa.payload.token.address;
182
+ const isNativeToken = tokenChain === this.chain;
183
+ let mint;
184
+ if (isNativeToken) {
185
+ mint = new SolanaAddress(tokenAddress).unwrap();
186
+ }
187
+ else {
188
+ // For wrapped tokens, derive the wrapped mint key using the token's origin chain
189
+ const tokenBridge = new SolanaTokenBridge(this.network, this.chain, this.connection, this.contracts);
190
+ const wrappedAsset = await tokenBridge.getWrappedAsset({
191
+ chain: tokenChain,
192
+ address: tokenAddress,
193
+ });
194
+ mint = new SolanaAddress(wrappedAsset).unwrap();
195
+ }
196
+ const tokenProgram = await SolanaPlatform.getTokenProgramId(this.connection, mint);
197
+ const recipientTokenAccount = getAssociatedTokenAddressSync(mint, recipientPubkey, true, tokenProgram);
198
+ // Post VAA if necessary
199
+ const postedVaaKey = utils.derivePostedVaaKey(this.wormholeProgramId, Buffer.from(vaa.hash));
200
+ const isPosted = await this.connection.getAccountInfo(postedVaaKey);
201
+ if (!isPosted) {
202
+ const wormholeCore = new SolanaWormholeCore(this.network, this.chain, this.connection, this.contracts);
203
+ yield* wormholeCore.postVaa(senderPubkey, vaa);
204
+ }
205
+ const dstRelayer = new SolanaAddress(vaa.payload.to.address).unwrap();
206
+ const dstRelayerProgram = new Program(ExecutorTokenBridgeRelayerIdl, dstRelayer, { connection: this.connection });
207
+ const config = PublicKey.findProgramAddressSync([Buffer.from('redeemer')], dstRelayerProgram.programId)[0];
208
+ const tokenBridgeConfig = PublicKey.findProgramAddressSync([Buffer.from('config')], this.tokenBridgeProgramId)[0];
209
+ const tmpTokenAccount = PublicKey.findProgramAddressSync([Buffer.from('tmp'), mint.toBytes()], dstRelayerProgram.programId)[0];
210
+ const tokenBridgeClaim = utils.deriveClaimKey(this.tokenBridgeProgramId, vaa.emitterAddress.toUint8Array(), toChainId(vaa.emitterChain), vaa.sequence);
211
+ const tokenBridgeForeignEndpoint = deriveEndpointKey(this.tokenBridgeProgramId, toChainId(vaa.emitterChain), vaa.emitterAddress.toUint8Array());
212
+ const tokenBridgeCustody = PublicKey.findProgramAddressSync([mint.toBuffer()], this.tokenBridgeProgramId)[0];
213
+ const tokenBridgeCustodySigner = PublicKey.findProgramAddressSync([Buffer.from('custody_signer')], this.tokenBridgeProgramId)[0];
214
+ let instruction;
215
+ const vaaHash = Array.from(vaa.hash);
216
+ if (isNativeToken) {
217
+ instruction = await dstRelayerProgram.methods
218
+ .completeNativeTransferWithRelay(vaaHash)
219
+ .accountsStrict({
220
+ payer: senderPubkey,
221
+ config,
222
+ mint,
223
+ recipientTokenAccount,
224
+ recipient: recipientPubkey,
225
+ tmpTokenAccount,
226
+ tokenBridgeConfig,
227
+ vaa: postedVaaKey,
228
+ tokenBridgeClaim,
229
+ tokenBridgeForeignEndpoint,
230
+ tokenBridgeCustody,
231
+ tokenBridgeCustodySigner,
232
+ wormholeProgram: this.wormholeProgramId,
233
+ tokenBridgeProgram: this.tokenBridgeProgramId,
234
+ tokenProgram,
235
+ associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
236
+ systemProgram: SystemProgram.programId,
237
+ rent: SYSVAR_RENT_PUBKEY,
238
+ })
239
+ .instruction();
240
+ }
241
+ else {
242
+ instruction = await dstRelayerProgram.methods
243
+ .completeWrappedTransferWithRelay(vaaHash)
244
+ .accountsStrict({
245
+ payer: senderPubkey,
246
+ config,
247
+ tokenBridgeWrappedMint: mint,
248
+ recipientTokenAccount,
249
+ recipient: recipientPubkey,
250
+ tmpTokenAccount,
251
+ tokenBridgeWrappedMeta: deriveWrappedMetaKey(this.tokenBridgeProgramId, mint),
252
+ tokenBridgeConfig,
253
+ vaa: postedVaaKey,
254
+ tokenBridgeClaim,
255
+ tokenBridgeForeignEndpoint,
256
+ tokenBridgeMintAuthority: deriveMintAuthorityKey(this.tokenBridgeProgramId),
257
+ wormholeProgram: this.wormholeProgramId,
258
+ tokenBridgeProgram: this.tokenBridgeProgramId,
259
+ tokenProgram,
260
+ associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
261
+ systemProgram: SystemProgram.programId,
262
+ rent: SYSVAR_RENT_PUBKEY,
263
+ })
264
+ .instruction();
265
+ }
266
+ const { blockhash } = await this.connection.getLatestBlockhash();
267
+ const messageV0 = new TransactionMessage({
268
+ payerKey: senderPubkey,
269
+ instructions: [instruction],
270
+ recentBlockhash: blockhash,
271
+ }).compileToV0Message();
272
+ const transaction = new VersionedTransaction(messageV0);
273
+ yield this.createUnsignedTx({ transaction, signers: [] }, 'ExecutorTokenBridge.redeem');
274
+ }
275
+ async getAddressLookupTable() {
276
+ const lutPointer = PublicKey.findProgramAddressSync([Buffer.from('lut')], this.relayerProgramId)[0];
277
+ try {
278
+ const lutAddress = // @ts-ignore
279
+ (await this.relayerProgram.account.lut.fetch(lutPointer)).address;
280
+ const lut = await this.connection.getAddressLookupTable(lutAddress);
281
+ if (lut.value) {
282
+ return lut.value;
283
+ }
284
+ }
285
+ catch { }
286
+ return null;
287
+ }
288
+ static associatedTokenAccountMinRent = undefined;
289
+ async estimateMsgValueAndGasLimit(receivedToken, recipient) {
290
+ let msgValue = 0n;
291
+ // These are estimates with some padding, actual values may vary
292
+ msgValue += 2n * 5000n + 7n * 5000n + 1400000n; // post vaa, 2 sigs + 7 Secp256k1 SigVerify Precompile + 1 sig account rent (59 bytes)
293
+ msgValue += 2n * 5000n + 7n * 5000n; // post vaa, 2 signatures + 7 Secp256k1 SigVerify Precompile
294
+ msgValue += 5000n + 3200000n; // core bridge post vaa account
295
+ // complete transfer
296
+ if (isNative(receivedToken.address) ||
297
+ canonicalAddress(receivedToken) === NATIVE_MINT.toString()) {
298
+ msgValue += 5000n + 5000000n;
299
+ }
300
+ else {
301
+ msgValue += 5000n + 1200000n;
302
+ }
303
+ if (recipient) {
304
+ const recipientPk = new PublicKey(recipient.address.toString());
305
+ // The account creation cost is already accounted for when the mint is native
306
+ if (!isNative(receivedToken.address)) {
307
+ const mint = new SolanaAddress(receivedToken.address).unwrap();
308
+ const mintInfo = await this.connection.getAccountInfo(mint);
309
+ if (mintInfo === null)
310
+ throw new Error("Couldn't determine token program. Mint account is null.");
311
+ const ata = getAssociatedTokenAddressSync(mint, recipientPk, true, mintInfo.owner);
312
+ if ((await this.connection.getAccountInfo(ata)) === null) {
313
+ if (!SolanaExecutorTokenBridge.associatedTokenAccountMinRent) {
314
+ SolanaExecutorTokenBridge.associatedTokenAccountMinRent = BigInt(await this.connection.getMinimumBalanceForRentExemption(165));
315
+ }
316
+ msgValue += SolanaExecutorTokenBridge.associatedTokenAccountMinRent;
317
+ }
318
+ }
319
+ }
320
+ return { msgValue, gasLimit: 310000n };
321
+ }
322
+ createUnsignedTx(txReq, description, parallelizable = false) {
323
+ return new SolanaUnsignedTransaction(txReq, this.network, this.chain, description, parallelizable);
324
+ }
325
+ }
326
+ //# sourceMappingURL=executorTokenBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executorTokenBridge.js","sourceRoot":"","sources":["../../src/executorTokenBridge.ts"],"names":[],"mappings":"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"}