@wormhole-foundation/sdk-solana-tokenbridge 3.9.0-beta.0 → 3.10.0-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.
- package/dist/cjs/tokenBridge.d.ts.map +1 -1
- package/dist/cjs/tokenBridge.js +83 -18
- package/dist/cjs/tokenBridge.js.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/approve.d.ts +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/approve.d.ts.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/approve.js +2 -2
- package/dist/cjs/utils/tokenBridge/instructions/approve.js.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/attestToken.d.ts +2 -2
- package/dist/cjs/utils/tokenBridge/instructions/attestToken.d.ts.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/attestToken.js +7 -5
- package/dist/cjs/utils/tokenBridge/instructions/attestToken.js.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/completeNative.d.ts +2 -2
- package/dist/cjs/utils/tokenBridge/instructions/completeNative.d.ts.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/completeNative.js +6 -4
- package/dist/cjs/utils/tokenBridge/instructions/completeNative.js.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/transferNative.d.ts +2 -2
- package/dist/cjs/utils/tokenBridge/instructions/transferNative.d.ts.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/transferNative.js +4 -5
- package/dist/cjs/utils/tokenBridge/instructions/transferNative.js.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/transferNativeWithPayload.d.ts +2 -2
- package/dist/cjs/utils/tokenBridge/instructions/transferNativeWithPayload.d.ts.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/transferNativeWithPayload.js +6 -4
- package/dist/cjs/utils/tokenBridge/instructions/transferNativeWithPayload.js.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/transferWrapped.d.ts +2 -2
- package/dist/cjs/utils/tokenBridge/instructions/transferWrapped.d.ts.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/transferWrapped.js +4 -5
- package/dist/cjs/utils/tokenBridge/instructions/transferWrapped.js.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/transferWrappedWithPayload.d.ts +2 -2
- package/dist/cjs/utils/tokenBridge/instructions/transferWrappedWithPayload.d.ts.map +1 -1
- package/dist/cjs/utils/tokenBridge/instructions/transferWrappedWithPayload.js +4 -4
- package/dist/cjs/utils/tokenBridge/instructions/transferWrappedWithPayload.js.map +1 -1
- package/dist/esm/tokenBridge.d.ts.map +1 -1
- package/dist/esm/tokenBridge.js +84 -19
- package/dist/esm/tokenBridge.js.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/approve.d.ts +1 -1
- package/dist/esm/utils/tokenBridge/instructions/approve.d.ts.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/approve.js +2 -2
- package/dist/esm/utils/tokenBridge/instructions/approve.js.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/attestToken.d.ts +2 -2
- package/dist/esm/utils/tokenBridge/instructions/attestToken.d.ts.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/attestToken.js +7 -5
- package/dist/esm/utils/tokenBridge/instructions/attestToken.js.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/completeNative.d.ts +2 -2
- package/dist/esm/utils/tokenBridge/instructions/completeNative.d.ts.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/completeNative.js +6 -4
- package/dist/esm/utils/tokenBridge/instructions/completeNative.js.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/transferNative.d.ts +2 -2
- package/dist/esm/utils/tokenBridge/instructions/transferNative.d.ts.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/transferNative.js +4 -5
- package/dist/esm/utils/tokenBridge/instructions/transferNative.js.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/transferNativeWithPayload.d.ts +2 -2
- package/dist/esm/utils/tokenBridge/instructions/transferNativeWithPayload.d.ts.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/transferNativeWithPayload.js +6 -4
- package/dist/esm/utils/tokenBridge/instructions/transferNativeWithPayload.js.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/transferWrapped.d.ts +2 -2
- package/dist/esm/utils/tokenBridge/instructions/transferWrapped.d.ts.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/transferWrapped.js +4 -5
- package/dist/esm/utils/tokenBridge/instructions/transferWrapped.js.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/transferWrappedWithPayload.d.ts +2 -2
- package/dist/esm/utils/tokenBridge/instructions/transferWrappedWithPayload.d.ts.map +1 -1
- package/dist/esm/utils/tokenBridge/instructions/transferWrappedWithPayload.js +4 -4
- package/dist/esm/utils/tokenBridge/instructions/transferWrappedWithPayload.js.map +1 -1
- package/package.json +4 -4
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import type { Connection, PublicKeyInitData, TransactionInstruction } from '@solana/web3.js';
|
|
4
4
|
import { PublicKey } from '@solana/web3.js';
|
|
5
|
-
export declare function createTransferWrappedInstruction(connection: Connection, tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, from: PublicKeyInitData, fromOwner: PublicKeyInitData, tokenChain: number, tokenAddress: Buffer | Uint8Array, nonce: number, amount: bigint, fee: bigint, targetAddress: Buffer | Uint8Array, targetChain: number): TransactionInstruction;
|
|
5
|
+
export declare function createTransferWrappedInstruction(connection: Connection, tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, from: PublicKeyInitData, fromOwner: PublicKeyInitData, tokenChain: number, tokenAddress: Buffer | Uint8Array, tokenProgram: PublicKeyInitData, nonce: number, amount: bigint, fee: bigint, targetAddress: Buffer | Uint8Array, targetChain: number): TransactionInstruction;
|
|
6
6
|
export interface TransferWrappedAccounts {
|
|
7
7
|
payer: PublicKey;
|
|
8
8
|
config: PublicKey;
|
|
@@ -22,5 +22,5 @@ export interface TransferWrappedAccounts {
|
|
|
22
22
|
wormholeProgram: PublicKey;
|
|
23
23
|
tokenProgram: PublicKey;
|
|
24
24
|
}
|
|
25
|
-
export declare function getTransferWrappedAccounts(tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, from: PublicKeyInitData, fromOwner: PublicKeyInitData, tokenChain: number, tokenAddress: Buffer | Uint8Array): TransferWrappedAccounts;
|
|
25
|
+
export declare function getTransferWrappedAccounts(tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, from: PublicKeyInitData, fromOwner: PublicKeyInitData, tokenChain: number, tokenAddress: Buffer | Uint8Array, tokenProgram: PublicKeyInitData): TransferWrappedAccounts;
|
|
26
26
|
//# sourceMappingURL=transferWrapped.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferWrapped.d.ts","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/transferWrapped.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"transferWrapped.d.ts","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/transferWrapped.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAU5C,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,iBAAiB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,UAAU,EACjC,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GAAG,UAAU,EAClC,WAAW,EAAE,MAAM,GAClB,sBAAsB,CA8BxB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,SAAS,CAAC;IACvB,eAAe,EAAE,SAAS,CAAC;IAC3B,cAAc,EAAE,SAAS,CAAC;IAC1B,eAAe,EAAE,SAAS,CAAC;IAC3B,eAAe,EAAE,SAAS,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,oBAAoB,EAAE,SAAS,CAAC;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;IACzB,eAAe,EAAE,SAAS,CAAC;IAC3B,YAAY,EAAE,SAAS,CAAC;CACzB;AAED,wBAAgB,0BAA0B,CACxC,oBAAoB,EAAE,iBAAiB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,UAAU,EACjC,YAAY,EAAE,iBAAiB,GAC9B,uBAAuB,CAwCzB"}
|
|
@@ -2,15 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getTransferWrappedAccounts = exports.createTransferWrappedInstruction = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
-
const spl_token_1 = require("@solana/spl-token");
|
|
6
5
|
const program_js_1 = require("../program.js");
|
|
7
6
|
const sdk_solana_core_1 = require("@wormhole-foundation/sdk-solana-core");
|
|
8
7
|
const index_js_1 = require("./../accounts/index.js");
|
|
9
|
-
function createTransferWrappedInstruction(connection, tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress, nonce, amount, fee, targetAddress, targetChain) {
|
|
8
|
+
function createTransferWrappedInstruction(connection, tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress, tokenProgram, nonce, amount, fee, targetAddress, targetChain) {
|
|
10
9
|
const methods = (0, program_js_1.createReadOnlyTokenBridgeProgramInterface)(tokenBridgeProgramId, connection).methods.transferWrapped(nonce, amount, fee, Buffer.from(targetAddress), targetChain);
|
|
11
10
|
// @ts-ignore
|
|
12
11
|
return methods._ixFn(...methods._args, {
|
|
13
|
-
accounts: getTransferWrappedAccounts(tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress),
|
|
12
|
+
accounts: getTransferWrappedAccounts(tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress, tokenProgram),
|
|
14
13
|
signers: undefined,
|
|
15
14
|
remainingAccounts: undefined,
|
|
16
15
|
preInstructions: undefined,
|
|
@@ -18,7 +17,7 @@ function createTransferWrappedInstruction(connection, tokenBridgeProgramId, worm
|
|
|
18
17
|
});
|
|
19
18
|
}
|
|
20
19
|
exports.createTransferWrappedInstruction = createTransferWrappedInstruction;
|
|
21
|
-
function getTransferWrappedAccounts(tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress) {
|
|
20
|
+
function getTransferWrappedAccounts(tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress, tokenProgram) {
|
|
22
21
|
const mint = (0, index_js_1.deriveWrappedMintKey)(tokenBridgeProgramId, tokenChain, tokenAddress);
|
|
23
22
|
const { wormholeBridge, wormholeMessage, wormholeEmitter, wormholeSequence, wormholeFeeCollector, clock, rent, systemProgram, } = sdk_solana_core_1.utils.getPostMessageCpiAccounts(tokenBridgeProgramId, wormholeProgramId, payer, message);
|
|
24
23
|
return {
|
|
@@ -38,7 +37,7 @@ function getTransferWrappedAccounts(tokenBridgeProgramId, wormholeProgramId, pay
|
|
|
38
37
|
rent,
|
|
39
38
|
systemProgram,
|
|
40
39
|
wormholeProgram: new web3_js_1.PublicKey(wormholeProgramId),
|
|
41
|
-
tokenProgram:
|
|
40
|
+
tokenProgram: new web3_js_1.PublicKey(tokenProgram),
|
|
42
41
|
};
|
|
43
42
|
}
|
|
44
43
|
exports.getTransferWrappedAccounts = getTransferWrappedAccounts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferWrapped.js","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/transferWrapped.ts"],"names":[],"mappings":";;;AAKA,6CAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"transferWrapped.js","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/transferWrapped.ts"],"names":[],"mappings":";;;AAKA,6CAA4C;AAC5C,8CAA0E;AAC1E,0EAA6D;AAC7D,qDAKgC;AAEhC,SAAgB,gCAAgC,CAC9C,UAAsB,EACtB,oBAAuC,EACvC,iBAAoC,EACpC,KAAwB,EACxB,OAA0B,EAC1B,IAAuB,EACvB,SAA4B,EAC5B,UAAkB,EAClB,YAAiC,EACjC,YAA+B,EAC/B,KAAa,EACb,MAAc,EACd,GAAW,EACX,aAAkC,EAClC,WAAmB;IAEnB,MAAM,OAAO,GAAG,IAAA,sDAAyC,EACvD,oBAAoB,EACpB,UAAU,CACX,CAAC,OAAO,CAAC,eAAe,CACvB,KAAK,EACL,MAAa,EACb,GAAU,EACV,MAAM,CAAC,IAAI,CAAC,aAAa,CAAQ,EACjC,WAAW,CACZ,CAAC;IAEF,aAAa;IACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE;QACrC,QAAQ,EAAE,0BAA0B,CAClC,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,EACT,UAAU,EACV,YAAY,EACZ,YAAY,CACN;QACR,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,eAAe,EAAE,SAAS;QAC1B,gBAAgB,EAAE,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC;AA9CD,4EA8CC;AAsBD,SAAgB,0BAA0B,CACxC,oBAAuC,EACvC,iBAAoC,EACpC,KAAwB,EACxB,OAA0B,EAC1B,IAAuB,EACvB,SAA4B,EAC5B,UAAkB,EAClB,YAAiC,EACjC,YAA+B;IAE/B,MAAM,IAAI,GAAG,IAAA,+BAAoB,EAC/B,oBAAoB,EACpB,UAAU,EACV,YAAY,CACb,CAAC;IACF,MAAM,EACJ,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,EACL,IAAI,EACJ,aAAa,GACd,GAAG,uBAAK,CAAC,yBAAyB,CACjC,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,EACL,OAAO,CACR,CAAC;IACF,OAAO;QACL,KAAK,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC;QAC3B,MAAM,EAAE,IAAA,qCAA0B,EAAC,oBAAoB,CAAC;QACxD,IAAI,EAAE,IAAI,mBAAS,CAAC,IAAI,CAAC;QACzB,SAAS,EAAE,IAAI,mBAAS,CAAC,SAAS,CAAC;QACnC,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,IAAA,+BAAoB,EAAC,oBAAoB,EAAE,IAAI,CAAC;QAC7D,eAAe,EAAE,IAAA,mCAAwB,EAAC,oBAAoB,CAAC;QAC/D,cAAc;QACd,eAAe,EAAE,eAAe;QAChC,eAAe;QACf,gBAAgB;QAChB,oBAAoB;QACpB,KAAK;QACL,IAAI;QACJ,aAAa;QACb,eAAe,EAAE,IAAI,mBAAS,CAAC,iBAAiB,CAAC;QACjD,YAAY,EAAE,IAAI,mBAAS,CAAC,YAAY,CAAC;KAC1C,CAAC;AACJ,CAAC;AAlDD,gEAkDC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import type { Connection, PublicKeyInitData, TransactionInstruction } from '@solana/web3.js';
|
|
4
4
|
import { PublicKey } from '@solana/web3.js';
|
|
5
|
-
export declare function createTransferWrappedWithPayloadInstruction(connection: Connection, tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, from: PublicKeyInitData, fromOwner: PublicKeyInitData, tokenChain: number, tokenAddress: Buffer | Uint8Array, nonce: number, amount: bigint, targetAddress: Buffer | Uint8Array, targetChain: number, payload: Buffer | Uint8Array): TransactionInstruction;
|
|
5
|
+
export declare function createTransferWrappedWithPayloadInstruction(connection: Connection, tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, from: PublicKeyInitData, fromOwner: PublicKeyInitData, tokenChain: number, tokenAddress: Buffer | Uint8Array, tokenProgram: PublicKeyInitData, nonce: number, amount: bigint, targetAddress: Buffer | Uint8Array, targetChain: number, payload: Buffer | Uint8Array): TransactionInstruction;
|
|
6
6
|
export interface TransferWrappedWithPayloadAccounts {
|
|
7
7
|
payer: PublicKey;
|
|
8
8
|
config: PublicKey;
|
|
@@ -23,5 +23,5 @@ export interface TransferWrappedWithPayloadAccounts {
|
|
|
23
23
|
tokenProgram: PublicKey;
|
|
24
24
|
wormholeProgram: PublicKey;
|
|
25
25
|
}
|
|
26
|
-
export declare function getTransferWrappedWithPayloadAccounts(tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, from: PublicKeyInitData, fromOwner: PublicKeyInitData, tokenChain: number, tokenAddress: Buffer | Uint8Array, cpiProgramId?: PublicKeyInitData): TransferWrappedWithPayloadAccounts;
|
|
26
|
+
export declare function getTransferWrappedWithPayloadAccounts(tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, from: PublicKeyInitData, fromOwner: PublicKeyInitData, tokenChain: number, tokenAddress: Buffer | Uint8Array, cpiProgramId?: PublicKeyInitData, tokenProgram?: PublicKeyInitData): TransferWrappedWithPayloadAccounts;
|
|
27
27
|
//# sourceMappingURL=transferWrappedWithPayload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferWrappedWithPayload.d.ts","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/transferWrappedWithPayload.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAa5C,wBAAgB,2CAA2C,CACzD,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,iBAAiB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,UAAU,EACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GAAG,UAAU,EAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAAG,UAAU,GAC3B,sBAAsB,
|
|
1
|
+
{"version":3,"file":"transferWrappedWithPayload.d.ts","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/transferWrappedWithPayload.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAa5C,wBAAgB,2CAA2C,CACzD,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,iBAAiB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,UAAU,EACjC,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GAAG,UAAU,EAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAAG,UAAU,GAC3B,sBAAsB,CAgCxB;AAED,MAAM,WAAW,kCAAkC;IACjD,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,SAAS,CAAC;IACvB,eAAe,EAAE,SAAS,CAAC;IAC3B,cAAc,EAAE,SAAS,CAAC;IAC1B,eAAe,EAAE,SAAS,CAAC;IAC3B,eAAe,EAAE,SAAS,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,oBAAoB,EAAE,SAAS,CAAC;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,eAAe,EAAE,SAAS,CAAC;CAC5B;AAED,wBAAgB,qCAAqC,CACnD,oBAAoB,EAAE,iBAAiB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,UAAU,EACjC,YAAY,CAAC,EAAE,iBAAiB,EAChC,YAAY,CAAC,EAAE,iBAAiB,GAC/B,kCAAkC,CA2CpC"}
|
|
@@ -6,11 +6,11 @@ const spl_token_1 = require("@solana/spl-token");
|
|
|
6
6
|
const program_js_1 = require("../program.js");
|
|
7
7
|
const sdk_solana_core_1 = require("@wormhole-foundation/sdk-solana-core");
|
|
8
8
|
const index_js_1 = require("./../accounts/index.js");
|
|
9
|
-
function createTransferWrappedWithPayloadInstruction(connection, tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress, nonce, amount, targetAddress, targetChain, payload) {
|
|
9
|
+
function createTransferWrappedWithPayloadInstruction(connection, tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress, tokenProgram, nonce, amount, targetAddress, targetChain, payload) {
|
|
10
10
|
const methods = (0, program_js_1.createReadOnlyTokenBridgeProgramInterface)(tokenBridgeProgramId, connection).methods.transferWrappedWithPayload(nonce, amount, Buffer.from(targetAddress), targetChain, Buffer.from(payload), null);
|
|
11
11
|
// @ts-ignore
|
|
12
12
|
return methods._ixFn(...methods._args, {
|
|
13
|
-
accounts: getTransferWrappedWithPayloadAccounts(tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress),
|
|
13
|
+
accounts: getTransferWrappedWithPayloadAccounts(tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress, undefined, tokenProgram),
|
|
14
14
|
signers: undefined,
|
|
15
15
|
remainingAccounts: undefined,
|
|
16
16
|
preInstructions: undefined,
|
|
@@ -18,7 +18,7 @@ function createTransferWrappedWithPayloadInstruction(connection, tokenBridgeProg
|
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
exports.createTransferWrappedWithPayloadInstruction = createTransferWrappedWithPayloadInstruction;
|
|
21
|
-
function getTransferWrappedWithPayloadAccounts(tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress, cpiProgramId) {
|
|
21
|
+
function getTransferWrappedWithPayloadAccounts(tokenBridgeProgramId, wormholeProgramId, payer, message, from, fromOwner, tokenChain, tokenAddress, cpiProgramId, tokenProgram) {
|
|
22
22
|
const mint = (0, index_js_1.deriveWrappedMintKey)(tokenBridgeProgramId, tokenChain, tokenAddress);
|
|
23
23
|
const { wormholeBridge, wormholeMessage, wormholeEmitter, wormholeSequence, wormholeFeeCollector, clock, rent, systemProgram, } = sdk_solana_core_1.utils.getPostMessageCpiAccounts(tokenBridgeProgramId, wormholeProgramId, payer, message);
|
|
24
24
|
return {
|
|
@@ -39,7 +39,7 @@ function getTransferWrappedWithPayloadAccounts(tokenBridgeProgramId, wormholePro
|
|
|
39
39
|
rent,
|
|
40
40
|
systemProgram,
|
|
41
41
|
wormholeProgram: new web3_js_1.PublicKey(wormholeProgramId),
|
|
42
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
42
|
+
tokenProgram: tokenProgram ? new web3_js_1.PublicKey(tokenProgram) : spl_token_1.TOKEN_PROGRAM_ID,
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
exports.getTransferWrappedWithPayloadAccounts = getTransferWrappedWithPayloadAccounts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferWrappedWithPayload.js","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/transferWrappedWithPayload.ts"],"names":[],"mappings":";;;AAKA,6CAA4C;AAC5C,iDAAqD;AACrD,8CAA0E;AAE1E,0EAA6D;AAC7D,qDAMgC;AAEhC,SAAgB,2CAA2C,CACzD,UAAsB,EACtB,oBAAuC,EACvC,iBAAoC,EACpC,KAAwB,EACxB,OAA0B,EAC1B,IAAuB,EACvB,SAA4B,EAC5B,UAAkB,EAClB,YAAiC,EACjC,KAAa,EACb,MAAc,EACd,aAAkC,EAClC,WAAmB,EACnB,OAA4B;IAE5B,MAAM,OAAO,GAAG,IAAA,sDAAyC,EACvD,oBAAoB,EACpB,UAAU,CACX,CAAC,OAAO,CAAC,0BAA0B,CAClC,KAAK,EACL,MAAa,EACb,MAAM,CAAC,IAAI,CAAC,aAAa,CAAQ,EACjC,WAAW,EACX,MAAM,CAAC,IAAI,CAAC,OAAO,CAAQ,EAC3B,IAAI,CACL,CAAC;IAEF,aAAa;IACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE;QACrC,QAAQ,EAAE,qCAAqC,CAC7C,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,EACT,UAAU,EACV,YAAY,CACN;QACR,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,eAAe,EAAE,SAAS;QAC1B,gBAAgB,EAAE,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC;
|
|
1
|
+
{"version":3,"file":"transferWrappedWithPayload.js","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/transferWrappedWithPayload.ts"],"names":[],"mappings":";;;AAKA,6CAA4C;AAC5C,iDAAqD;AACrD,8CAA0E;AAE1E,0EAA6D;AAC7D,qDAMgC;AAEhC,SAAgB,2CAA2C,CACzD,UAAsB,EACtB,oBAAuC,EACvC,iBAAoC,EACpC,KAAwB,EACxB,OAA0B,EAC1B,IAAuB,EACvB,SAA4B,EAC5B,UAAkB,EAClB,YAAiC,EACjC,YAA+B,EAC/B,KAAa,EACb,MAAc,EACd,aAAkC,EAClC,WAAmB,EACnB,OAA4B;IAE5B,MAAM,OAAO,GAAG,IAAA,sDAAyC,EACvD,oBAAoB,EACpB,UAAU,CACX,CAAC,OAAO,CAAC,0BAA0B,CAClC,KAAK,EACL,MAAa,EACb,MAAM,CAAC,IAAI,CAAC,aAAa,CAAQ,EACjC,WAAW,EACX,MAAM,CAAC,IAAI,CAAC,OAAO,CAAQ,EAC3B,IAAI,CACL,CAAC;IAEF,aAAa;IACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE;QACrC,QAAQ,EAAE,qCAAqC,CAC7C,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,EACT,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,CACN;QACR,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,eAAe,EAAE,SAAS;QAC1B,gBAAgB,EAAE,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC;AAhDD,kGAgDC;AAuBD,SAAgB,qCAAqC,CACnD,oBAAuC,EACvC,iBAAoC,EACpC,KAAwB,EACxB,OAA0B,EAC1B,IAAuB,EACvB,SAA4B,EAC5B,UAAkB,EAClB,YAAiC,EACjC,YAAgC,EAChC,YAAgC;IAEhC,MAAM,IAAI,GAAG,IAAA,+BAAoB,EAC/B,oBAAoB,EACpB,UAAU,EACV,YAAY,CACb,CAAC;IACF,MAAM,EACJ,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,EACL,IAAI,EACJ,aAAa,GACd,GAAG,uBAAK,CAAC,yBAAyB,CACjC,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,EACL,OAAO,CACR,CAAC;IACF,OAAO;QACL,KAAK,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC;QAC3B,MAAM,EAAE,IAAA,qCAA0B,EAAC,oBAAoB,CAAC;QACxD,IAAI,EAAE,IAAI,mBAAS,CAAC,IAAI,CAAC;QACzB,SAAS,EAAE,IAAI,mBAAS,CAAC,SAAS,CAAC;QACnC,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,IAAA,+BAAoB,EAAC,oBAAoB,EAAE,IAAI,CAAC;QAC7D,eAAe,EAAE,IAAA,mCAAwB,EAAC,oBAAoB,CAAC;QAC/D,cAAc;QACd,eAAe,EAAE,eAAe;QAChC,eAAe;QACf,gBAAgB;QAChB,oBAAoB;QACpB,KAAK;QACL,MAAM,EAAE,IAAI,mBAAS,CACnB,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,iCAAsB,EAAC,YAAY,CAAC,CAC1E;QACD,IAAI;QACJ,aAAa;QACb,eAAe,EAAE,IAAI,mBAAS,CAAC,iBAAiB,CAAC;QACjD,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,mBAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,4BAAgB;KAC5E,CAAC;AACJ,CAAC;AAtDD,sFAsDC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenBridge.d.ts","sourceRoot":"","sources":["../../src/tokenBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,SAAS,EACT,aAAa,EACb,OAAO,EACP,QAAQ,EACR,WAAW,EACX,OAAO,EACR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,gBAAgB,EAMjB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EAEb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAGL,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,kBAAkB,EAEnB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"tokenBridge.d.ts","sourceRoot":"","sources":["../../src/tokenBridge.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/tokenBridge.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ErrNotWrapped, UniversalAddress, encoding, isNative, toChain, toChainId, toNative, } from '@wormhole-foundation/sdk-connect';
|
|
2
2
|
import { SolanaAddress, SolanaPlatform, SolanaUnsignedTransaction, } from '@wormhole-foundation/sdk-solana';
|
|
3
3
|
import { SolanaWormholeCore, utils as coreUtils, } from '@wormhole-foundation/sdk-solana-core';
|
|
4
|
-
import { ACCOUNT_SIZE, NATIVE_MINT, TOKEN_PROGRAM_ID, createAssociatedTokenAccountInstruction, createCloseAccountInstruction, createInitializeAccountInstruction, createTransferInstruction, getAssociatedTokenAddress, getMinimumBalanceForRentExemptAccount, getMint, } from '@solana/spl-token';
|
|
4
|
+
import { ACCOUNT_SIZE, ExtensionType, NATIVE_MINT, TOKEN_2022_PROGRAM_ID, TOKEN_PROGRAM_ID, createAssociatedTokenAccountInstruction, createCloseAccountInstruction, createInitializeAccountInstruction, createTransferInstruction, getAccount, getAssociatedTokenAddress, getExtensionTypes, getMetadataPointerState, getMinimumBalanceForRentExemptAccount, getMint, } from '@solana/spl-token';
|
|
5
5
|
import { Keypair, PublicKey, SystemProgram, Transaction, } from '@solana/web3.js';
|
|
6
6
|
import { createApproveAuthoritySignerInstruction, createAttestTokenInstruction, createCompleteTransferNativeInstruction, createCompleteTransferWrappedInstruction, createCreateWrappedInstruction, createReadOnlyTokenBridgeProgramInterface, createTransferNativeInstruction, createTransferNativeWithPayloadInstruction, createTransferWrappedInstruction, createTransferWrappedWithPayloadInstruction, deriveWrappedMintKey, getWrappedMeta, } from './utils/index.js';
|
|
7
7
|
import '@wormhole-foundation/sdk-solana-core';
|
|
@@ -104,8 +104,19 @@ export class SolanaTokenBridge {
|
|
|
104
104
|
const nonce = 0;
|
|
105
105
|
const msgFee = await this.coreBridge.getMessageFee();
|
|
106
106
|
const transferIx = coreUtils.createBridgeFeeTransferInstruction(this.coreBridge.coreBridge.programId, senderAddress, msgFee);
|
|
107
|
+
const tokenAddress = new SolanaAddress(token).unwrap();
|
|
108
|
+
const tokenProgram = await SolanaPlatform.getTokenProgramId(this.connection, tokenAddress);
|
|
109
|
+
// Check if the token has a metadata pointer (only applies to token-2022)
|
|
110
|
+
let metadataAddress;
|
|
111
|
+
if (tokenProgram.equals(TOKEN_2022_PROGRAM_ID)) {
|
|
112
|
+
const mintInfo = await getMint(this.connection, tokenAddress, undefined, tokenProgram);
|
|
113
|
+
const metadataPointer = getMetadataPointerState(mintInfo);
|
|
114
|
+
if (metadataPointer?.metadataAddress) {
|
|
115
|
+
metadataAddress = metadataPointer?.metadataAddress;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
107
118
|
const messageKey = Keypair.generate();
|
|
108
|
-
const attestIx = createAttestTokenInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, new SolanaAddress(token).unwrap(), messageKey.publicKey, nonce);
|
|
119
|
+
const attestIx = createAttestTokenInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, new SolanaAddress(token).unwrap(), messageKey.publicKey, nonce, metadataAddress);
|
|
109
120
|
const transaction = new Transaction().add(transferIx, attestIx);
|
|
110
121
|
transaction.feePayer = senderAddress;
|
|
111
122
|
yield this.createUnsignedTx({ transaction, signers: [messageKey] }, 'Solana.AttestToken');
|
|
@@ -152,10 +163,10 @@ export class SolanaTokenBridge {
|
|
|
152
163
|
//Initialize the account as a WSOL account, with the original payerAddress as owner
|
|
153
164
|
const initAccountIx = createInitializeAccountInstruction(ancillaryKeypair.publicKey, NATIVE_MINT, payerPublicKey);
|
|
154
165
|
//Normal approve & transfer instructions, except that the wSOL is sent from the ancillary account.
|
|
155
|
-
const approvalIx = createApproveAuthoritySignerInstruction(this.tokenBridge.programId, ancillaryKeypair.publicKey, payerPublicKey, amount);
|
|
166
|
+
const approvalIx = createApproveAuthoritySignerInstruction(this.tokenBridge.programId, ancillaryKeypair.publicKey, payerPublicKey, amount, TOKEN_PROGRAM_ID);
|
|
156
167
|
const tokenBridgeTransferIx = payload
|
|
157
|
-
? createTransferNativeWithPayloadInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, ancillaryKeypair.publicKey, NATIVE_MINT, nonce, amount, recipientAddress, recipientChainId, payload)
|
|
158
|
-
: createTransferNativeInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, ancillaryKeypair.publicKey, NATIVE_MINT, nonce, amount, relayerFee, recipientAddress, recipientChainId);
|
|
168
|
+
? createTransferNativeWithPayloadInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, ancillaryKeypair.publicKey, NATIVE_MINT, TOKEN_PROGRAM_ID, nonce, amount, recipientAddress, recipientChainId, payload)
|
|
169
|
+
: createTransferNativeInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, ancillaryKeypair.publicKey, NATIVE_MINT, TOKEN_PROGRAM_ID, nonce, amount, relayerFee, recipientAddress, recipientChainId);
|
|
159
170
|
//Close the ancillary account for cleanup. Payer address receives any remaining funds
|
|
160
171
|
const closeAccountIx = createCloseAccountInstruction(ancillaryKeypair.publicKey, //account to close
|
|
161
172
|
payerPublicKey, //Remaining funds destination
|
|
@@ -173,33 +184,86 @@ export class SolanaTokenBridge {
|
|
|
173
184
|
}
|
|
174
185
|
const tokenAddress = new SolanaAddress(token).unwrap();
|
|
175
186
|
const senderAddress = new SolanaAddress(sender).unwrap();
|
|
176
|
-
const
|
|
187
|
+
const tokenProgram = await SolanaPlatform.getTokenProgramId(this.connection, tokenAddress);
|
|
188
|
+
// NOTE: The Solana TB `completeNative` instruction doesn't support Token-2022 tokens
|
|
189
|
+
// when the recipient associated token account has the immutable owner extension.
|
|
190
|
+
// Therefore, we throw an error here to prevent such transfers from being initiated.
|
|
191
|
+
// Use the executor route instead which creates a temporary account without extensions
|
|
192
|
+
// during redemption.
|
|
193
|
+
if (tokenProgram.equals(TOKEN_2022_PROGRAM_ID)) {
|
|
194
|
+
throw new Error('Transfers of Token-2022 assets are not supported via the Manual Token Bridge route. Please use the Executor Token Bridge route instead.');
|
|
195
|
+
}
|
|
196
|
+
let senderTokenAddress = await getAssociatedTokenAddress(tokenAddress, senderAddress, false, tokenProgram);
|
|
197
|
+
// Check if the source account has immutable owner extension
|
|
198
|
+
// If it does, we need to create a temporary account without the extension
|
|
199
|
+
// since the token bridge cannot transfer from an account with immutable owner
|
|
200
|
+
const isSolanaNative = !(await this.isWrappedAsset(token));
|
|
201
|
+
let tempAccountKeypair;
|
|
202
|
+
let hasImmutableOwner = false;
|
|
203
|
+
if (isSolanaNative && tokenProgram.equals(TOKEN_2022_PROGRAM_ID)) {
|
|
204
|
+
const sourceAccountInfo = await this.connection.getAccountInfo(senderTokenAddress);
|
|
205
|
+
if (sourceAccountInfo && sourceAccountInfo.data.length > ACCOUNT_SIZE) {
|
|
206
|
+
const account = await getAccount(this.connection, senderTokenAddress, undefined, tokenProgram);
|
|
207
|
+
if (account.tlvData) {
|
|
208
|
+
hasImmutableOwner = getExtensionTypes(account.tlvData).includes(ExtensionType.ImmutableOwner);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
177
212
|
const recipientAddress = recipient.address
|
|
178
213
|
.toUniversalAddress()
|
|
179
214
|
.toUint8Array();
|
|
180
215
|
const recipientChainId = toChainId(recipient.chain);
|
|
181
216
|
const nonce = 0;
|
|
182
217
|
const relayerFee = 0n;
|
|
183
|
-
const isSolanaNative = !(await this.isWrappedAsset(token));
|
|
184
218
|
const message = Keypair.generate();
|
|
219
|
+
const instructions = [];
|
|
220
|
+
const signers = [message];
|
|
221
|
+
// If the account has immutable owner, create a temporary account and transfer to it first
|
|
222
|
+
if (hasImmutableOwner) {
|
|
223
|
+
tempAccountKeypair = Keypair.generate();
|
|
224
|
+
signers.push(tempAccountKeypair);
|
|
225
|
+
// Calculate rent for temporary account without extensions
|
|
226
|
+
const rentBalance = await getMinimumBalanceForRentExemptAccount(this.connection);
|
|
227
|
+
// Create temporary account without extensions
|
|
228
|
+
instructions.push(SystemProgram.createAccount({
|
|
229
|
+
fromPubkey: senderAddress,
|
|
230
|
+
newAccountPubkey: tempAccountKeypair.publicKey,
|
|
231
|
+
lamports: rentBalance,
|
|
232
|
+
space: ACCOUNT_SIZE,
|
|
233
|
+
programId: tokenProgram,
|
|
234
|
+
}));
|
|
235
|
+
// Initialize temporary account
|
|
236
|
+
instructions.push(createInitializeAccountInstruction(tempAccountKeypair.publicKey, tokenAddress, senderAddress, tokenProgram));
|
|
237
|
+
// Transfer tokens from ATA to temporary account
|
|
238
|
+
instructions.push(createTransferInstruction(senderTokenAddress, tempAccountKeypair.publicKey, senderAddress, amount, [], tokenProgram));
|
|
239
|
+
// Use the temporary account for the transfer
|
|
240
|
+
senderTokenAddress = tempAccountKeypair.publicKey;
|
|
241
|
+
}
|
|
185
242
|
let tokenBridgeTransferIx;
|
|
186
243
|
if (isSolanaNative) {
|
|
187
244
|
tokenBridgeTransferIx = payload
|
|
188
|
-
? createTransferNativeWithPayloadInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, senderTokenAddress, tokenAddress, nonce, amount, recipientAddress, recipientChainId, payload)
|
|
189
|
-
: createTransferNativeInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, senderTokenAddress, tokenAddress, nonce, amount, relayerFee, recipientAddress, recipientChainId);
|
|
245
|
+
? createTransferNativeWithPayloadInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, senderTokenAddress, tokenAddress, tokenProgram, nonce, amount, recipientAddress, recipientChainId, payload)
|
|
246
|
+
: createTransferNativeInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, senderTokenAddress, tokenAddress, tokenProgram, nonce, amount, relayerFee, recipientAddress, recipientChainId);
|
|
190
247
|
}
|
|
191
248
|
else {
|
|
192
249
|
const originAsset = await this.getOriginalAsset(token);
|
|
193
250
|
if (isNative(originAsset.address))
|
|
194
251
|
throw new Error('Native cannot be an original asset');
|
|
195
252
|
tokenBridgeTransferIx = payload
|
|
196
|
-
? createTransferWrappedWithPayloadInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, senderTokenAddress, senderAddress, toChainId(originAsset.chain), originAsset.address.toUint8Array(), nonce, amount, recipientAddress, recipientChainId, payload)
|
|
197
|
-
: createTransferWrappedInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, senderTokenAddress, senderAddress, toChainId(originAsset.chain), originAsset.address.toUint8Array(), nonce, amount, relayerFee, recipientAddress, recipientChainId);
|
|
253
|
+
? createTransferWrappedWithPayloadInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, senderTokenAddress, senderAddress, toChainId(originAsset.chain), originAsset.address.toUint8Array(), tokenProgram, nonce, amount, recipientAddress, recipientChainId, payload)
|
|
254
|
+
: createTransferWrappedInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, message.publicKey, senderTokenAddress, senderAddress, toChainId(originAsset.chain), originAsset.address.toUint8Array(), tokenProgram, nonce, amount, relayerFee, recipientAddress, recipientChainId);
|
|
255
|
+
}
|
|
256
|
+
const approvalIx = createApproveAuthoritySignerInstruction(this.tokenBridge.programId, senderTokenAddress, senderAddress, amount, tokenProgram);
|
|
257
|
+
// Add the approval and transfer instructions
|
|
258
|
+
instructions.push(approvalIx);
|
|
259
|
+
instructions.push(tokenBridgeTransferIx);
|
|
260
|
+
// If we used a temporary account, add instruction to close it and recover rent
|
|
261
|
+
if (tempAccountKeypair) {
|
|
262
|
+
instructions.push(createCloseAccountInstruction(tempAccountKeypair.publicKey, senderAddress, senderAddress, [], tokenProgram));
|
|
198
263
|
}
|
|
199
|
-
const
|
|
200
|
-
const transaction = new Transaction().add(approvalIx, tokenBridgeTransferIx);
|
|
264
|
+
const transaction = new Transaction().add(...instructions);
|
|
201
265
|
transaction.feePayer = senderAddress;
|
|
202
|
-
yield this.createUnsignedTx({ transaction, signers
|
|
266
|
+
yield this.createUnsignedTx({ transaction, signers }, 'TokenBridge.TransferTokens');
|
|
203
267
|
}
|
|
204
268
|
async *redeemAndUnwrap(sender, vaa) {
|
|
205
269
|
// sender, fee payer
|
|
@@ -231,14 +295,14 @@ export class SolanaTokenBridge {
|
|
|
231
295
|
transaction.add(completeTransferIx, createAncillaryAccountIx, initAccountIx, balanceTransferIx, closeAccountIx);
|
|
232
296
|
yield this.createUnsignedTx({ transaction, signers: [ancillaryKeypair] }, 'TokenBridge.RedeemAndUnwrap');
|
|
233
297
|
}
|
|
234
|
-
async *createAta(sender, token) {
|
|
298
|
+
async *createAta(sender, token, tokenProgram) {
|
|
235
299
|
const senderAddress = new SolanaAddress(sender).unwrap();
|
|
236
300
|
const tokenAddress = new SolanaAddress(token).unwrap();
|
|
237
|
-
const ata = await getAssociatedTokenAddress(tokenAddress, senderAddress);
|
|
301
|
+
const ata = await getAssociatedTokenAddress(tokenAddress, senderAddress, false, tokenProgram);
|
|
238
302
|
// If the ata doesn't exist yet, create it
|
|
239
303
|
const acctInfo = await this.connection.getAccountInfo(ata);
|
|
240
304
|
if (acctInfo === null) {
|
|
241
|
-
const transaction = new Transaction().add(createAssociatedTokenAccountInstruction(senderAddress, ata, senderAddress, tokenAddress));
|
|
305
|
+
const transaction = new Transaction().add(createAssociatedTokenAccountInstruction(senderAddress, ata, senderAddress, tokenAddress, tokenProgram));
|
|
242
306
|
transaction.feePayer = senderAddress;
|
|
243
307
|
yield this.createUnsignedTx({ transaction }, 'Redeem.CreateATA');
|
|
244
308
|
}
|
|
@@ -248,8 +312,9 @@ export class SolanaTokenBridge {
|
|
|
248
312
|
const nativeAddress = vaa.payload.token.chain === this.chain
|
|
249
313
|
? vaa.payload.token.address
|
|
250
314
|
: (await this.getWrappedAsset(vaa.payload.token)).toUniversalAddress();
|
|
315
|
+
const tokenProgram = await SolanaPlatform.getTokenProgramId(this.connection, new SolanaAddress(nativeAddress).unwrap());
|
|
251
316
|
// Create an ATA if necessary
|
|
252
|
-
yield* this.createAta(sender, nativeAddress);
|
|
317
|
+
yield* this.createAta(sender, nativeAddress, tokenProgram);
|
|
253
318
|
// Post the VAA if necessary
|
|
254
319
|
yield* this.coreBridge.postVaa(sender, vaa);
|
|
255
320
|
// redeem vaa and unwrap to native sol from wrapped sol
|
|
@@ -265,7 +330,7 @@ export class SolanaTokenBridge {
|
|
|
265
330
|
const createCompleteTransferInstruction = vaa.payload.token.chain == this.chain
|
|
266
331
|
? createCompleteTransferNativeInstruction
|
|
267
332
|
: createCompleteTransferWrappedInstruction;
|
|
268
|
-
const transaction = new Transaction().add(createCompleteTransferInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, vaa));
|
|
333
|
+
const transaction = new Transaction().add(createCompleteTransferInstruction(this.connection, this.tokenBridge.programId, this.coreBridge.address, senderAddress, vaa, undefined, tokenProgram));
|
|
269
334
|
transaction.feePayer = senderAddress;
|
|
270
335
|
yield this.createUnsignedTx({ transaction }, 'Solana.RedeemTransfer');
|
|
271
336
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenBridge.js","sourceRoot":"","sources":["../../src/tokenBridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tokenBridge.js","sourceRoot":"","sources":["../../src/tokenBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { PublicKeyInitData } from '@solana/web3.js';
|
|
2
|
-
export declare function createApproveAuthoritySignerInstruction(tokenBridgeProgramId: PublicKeyInitData, tokenAccount: PublicKeyInitData, owner: PublicKeyInitData, amount: number | bigint): import("@solana/web3.js").TransactionInstruction;
|
|
2
|
+
export declare function createApproveAuthoritySignerInstruction(tokenBridgeProgramId: PublicKeyInitData, tokenAccount: PublicKeyInitData, owner: PublicKeyInitData, amount: number | bigint, tokenProgram: PublicKeyInitData): import("@solana/web3.js").TransactionInstruction;
|
|
3
3
|
//# sourceMappingURL=approve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/approve.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIzD,wBAAgB,uCAAuC,CACrD,oBAAoB,EAAE,iBAAiB,EACvC,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/approve.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIzD,wBAAgB,uCAAuC,CACrD,oBAAoB,EAAE,iBAAiB,EACvC,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,YAAY,EAAE,iBAAiB,oDAUhC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createApproveInstruction } from '@solana/spl-token';
|
|
2
2
|
import { PublicKey } from '@solana/web3.js';
|
|
3
3
|
import { deriveAuthoritySignerKey } from './../accounts/index.js';
|
|
4
|
-
export function createApproveAuthoritySignerInstruction(tokenBridgeProgramId, tokenAccount, owner, amount) {
|
|
5
|
-
return createApproveInstruction(new PublicKey(tokenAccount), deriveAuthoritySignerKey(tokenBridgeProgramId), new PublicKey(owner), amount);
|
|
4
|
+
export function createApproveAuthoritySignerInstruction(tokenBridgeProgramId, tokenAccount, owner, amount, tokenProgram) {
|
|
5
|
+
return createApproveInstruction(new PublicKey(tokenAccount), deriveAuthoritySignerKey(tokenBridgeProgramId), new PublicKey(owner), amount, undefined, new PublicKey(tokenProgram));
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=approve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,UAAU,uCAAuC,CACrD,oBAAuC,EACvC,YAA+B,EAC/B,KAAwB,EACxB,MAAuB;
|
|
1
|
+
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,UAAU,uCAAuC,CACrD,oBAAuC,EACvC,YAA+B,EAC/B,KAAwB,EACxB,MAAuB,EACvB,YAA+B;IAE/B,OAAO,wBAAwB,CAC7B,IAAI,SAAS,CAAC,YAAY,CAAC,EAC3B,wBAAwB,CAAC,oBAAoB,CAAC,EAC9C,IAAI,SAAS,CAAC,KAAK,CAAC,EACpB,MAAM,EACN,SAAS,EACT,IAAI,SAAS,CAAC,YAAY,CAAC,CAC5B,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Connection, PublicKeyInitData, TransactionInstruction } from '@solana/web3.js';
|
|
2
2
|
import { PublicKey } from '@solana/web3.js';
|
|
3
|
-
export declare function createAttestTokenInstruction(connection: Connection, tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, mint: PublicKeyInitData, message: PublicKeyInitData, nonce: number): TransactionInstruction;
|
|
3
|
+
export declare function createAttestTokenInstruction(connection: Connection, tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, mint: PublicKeyInitData, message: PublicKeyInitData, nonce: number, metadataAddress?: PublicKeyInitData): TransactionInstruction;
|
|
4
4
|
export interface AttestTokenAccounts {
|
|
5
5
|
payer: PublicKey;
|
|
6
6
|
config: PublicKey;
|
|
@@ -17,5 +17,5 @@ export interface AttestTokenAccounts {
|
|
|
17
17
|
systemProgram: PublicKey;
|
|
18
18
|
wormholeProgram: PublicKey;
|
|
19
19
|
}
|
|
20
|
-
export declare function getAttestTokenAccounts(tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, mint: PublicKeyInitData, message: PublicKeyInitData): AttestTokenAccounts;
|
|
20
|
+
export declare function getAttestTokenAccounts(tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, mint: PublicKeyInitData, message: PublicKeyInitData, metadataAddress?: PublicKeyInitData): AttestTokenAccounts;
|
|
21
21
|
//# sourceMappingURL=attestToken.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestToken.d.ts","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/attestToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,iBAAiB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"attestToken.d.ts","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/attestToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,iBAAiB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,iBAAiB,GAClC,sBAAsB,CA+BxB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,SAAS,CAAC;IACvB,WAAW,EAAE,SAAS,CAAC;IACvB,cAAc,EAAE,SAAS,CAAC;IAC1B,eAAe,EAAE,SAAS,CAAC;IAC3B,eAAe,EAAE,SAAS,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,oBAAoB,EAAE,SAAS,CAAC;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;IACzB,eAAe,EAAE,SAAS,CAAC;CAC5B;AAED,wBAAgB,sBAAsB,CACpC,oBAAoB,EAAE,iBAAiB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,iBAAiB,EAC1B,eAAe,CAAC,EAAE,iBAAiB,GAClC,mBAAmB,CAiCrB"}
|
|
@@ -3,26 +3,28 @@ import { createReadOnlyTokenBridgeProgramInterface } from '../program.js';
|
|
|
3
3
|
import { utils as coreUtils } from '@wormhole-foundation/sdk-solana-core';
|
|
4
4
|
import { deriveSplTokenMetadataKey } from '../../splMetadata.js';
|
|
5
5
|
import { deriveTokenBridgeConfigKey, deriveWrappedMetaKey, } from './../accounts/index.js';
|
|
6
|
-
export function createAttestTokenInstruction(connection, tokenBridgeProgramId, wormholeProgramId, payer, mint, message, nonce) {
|
|
6
|
+
export function createAttestTokenInstruction(connection, tokenBridgeProgramId, wormholeProgramId, payer, mint, message, nonce, metadataAddress) {
|
|
7
7
|
const methods = createReadOnlyTokenBridgeProgramInterface(tokenBridgeProgramId, connection).methods.attestToken(nonce);
|
|
8
|
-
console.log(getAttestTokenAccounts(tokenBridgeProgramId, wormholeProgramId, payer, mint, message));
|
|
8
|
+
console.log(getAttestTokenAccounts(tokenBridgeProgramId, wormholeProgramId, payer, mint, message, metadataAddress));
|
|
9
9
|
// @ts-ignore
|
|
10
10
|
return methods._ixFn(...methods._args, {
|
|
11
|
-
accounts: getAttestTokenAccounts(tokenBridgeProgramId, wormholeProgramId, payer, mint, message),
|
|
11
|
+
accounts: getAttestTokenAccounts(tokenBridgeProgramId, wormholeProgramId, payer, mint, message, metadataAddress),
|
|
12
12
|
signers: undefined,
|
|
13
13
|
remainingAccounts: undefined,
|
|
14
14
|
preInstructions: undefined,
|
|
15
15
|
postInstructions: undefined,
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
|
-
export function getAttestTokenAccounts(tokenBridgeProgramId, wormholeProgramId, payer, mint, message) {
|
|
18
|
+
export function getAttestTokenAccounts(tokenBridgeProgramId, wormholeProgramId, payer, mint, message, metadataAddress) {
|
|
19
19
|
const { bridge: wormholeBridge, emitter: wormholeEmitter, sequence: wormholeSequence, feeCollector: wormholeFeeCollector, clock, rent, systemProgram, } = coreUtils.getPostMessageAccounts(wormholeProgramId, payer, message, tokenBridgeProgramId);
|
|
20
20
|
return {
|
|
21
21
|
payer: new PublicKey(payer),
|
|
22
22
|
config: deriveTokenBridgeConfigKey(tokenBridgeProgramId),
|
|
23
23
|
mint: new PublicKey(mint),
|
|
24
24
|
wrappedMeta: deriveWrappedMetaKey(tokenBridgeProgramId, mint),
|
|
25
|
-
splMetadata:
|
|
25
|
+
splMetadata: metadataAddress
|
|
26
|
+
? new PublicKey(metadataAddress)
|
|
27
|
+
: deriveSplTokenMetadataKey(mint),
|
|
26
28
|
wormholeBridge,
|
|
27
29
|
wormholeMessage: new PublicKey(message),
|
|
28
30
|
wormholeEmitter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestToken.js","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/attestToken.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,yCAAyC,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,UAAU,4BAA4B,CAC1C,UAAsB,EACtB,oBAAuC,EACvC,iBAAoC,EACpC,KAAwB,EACxB,IAAuB,EACvB,OAA0B,EAC1B,KAAa;
|
|
1
|
+
{"version":3,"file":"attestToken.js","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/attestToken.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,yCAAyC,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,UAAU,4BAA4B,CAC1C,UAAsB,EACtB,oBAAuC,EACvC,iBAAoC,EACpC,KAAwB,EACxB,IAAuB,EACvB,OAA0B,EAC1B,KAAa,EACb,eAAmC;IAEnC,MAAM,OAAO,GAAG,yCAAyC,CACvD,oBAAoB,EACpB,UAAU,CACX,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE7B,OAAO,CAAC,GAAG,CACT,sBAAsB,CACpB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,OAAO,EACP,eAAe,CAChB,CACF,CAAC;IACF,aAAa;IACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE;QACrC,QAAQ,EAAE,sBAAsB,CAC9B,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,OAAO,EACP,eAAe,CACT;QACR,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,eAAe,EAAE,SAAS;QAC1B,gBAAgB,EAAE,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC;AAmBD,MAAM,UAAU,sBAAsB,CACpC,oBAAuC,EACvC,iBAAoC,EACpC,KAAwB,EACxB,IAAuB,EACvB,OAA0B,EAC1B,eAAmC;IAEnC,MAAM,EACJ,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,oBAAoB,EAClC,KAAK,EACL,IAAI,EACJ,aAAa,GACd,GAAG,SAAS,CAAC,sBAAsB,CAClC,iBAAiB,EACjB,KAAK,EACL,OAAO,EACP,oBAAoB,CACrB,CAAC;IACF,OAAO;QACL,KAAK,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC;QAC3B,MAAM,EAAE,0BAA0B,CAAC,oBAAoB,CAAC;QACxD,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC;QACzB,WAAW,EAAE,oBAAoB,CAAC,oBAAoB,EAAE,IAAI,CAAC;QAC7D,WAAW,EAAE,eAAe;YAC1B,CAAC,CAAC,IAAI,SAAS,CAAC,eAAe,CAAC;YAChC,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC;QACnC,cAAc;QACd,eAAe,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC;QACvC,eAAe;QACf,gBAAgB;QAChB,oBAAoB;QACpB,KAAK;QACL,IAAI;QACJ,aAAa;QACb,eAAe,EAAE,IAAI,SAAS,CAAC,iBAAiB,CAAC;KAClD,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Connection, PublicKeyInitData, TransactionInstruction } from '@solana/web3.js';
|
|
2
2
|
import { PublicKey } from '@solana/web3.js';
|
|
3
3
|
import type { TokenBridge } from '@wormhole-foundation/sdk-connect';
|
|
4
|
-
export declare function createCompleteTransferNativeInstruction(connection: Connection, tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: TokenBridge.TransferVAA, feeRecipient?: PublicKeyInitData): TransactionInstruction;
|
|
4
|
+
export declare function createCompleteTransferNativeInstruction(connection: Connection, tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: TokenBridge.TransferVAA, feeRecipient?: PublicKeyInitData, tokenProgramId?: PublicKeyInitData): TransactionInstruction;
|
|
5
5
|
export interface CompleteTransferNativeAccounts {
|
|
6
6
|
payer: PublicKey;
|
|
7
7
|
config: PublicKey;
|
|
@@ -18,5 +18,5 @@ export interface CompleteTransferNativeAccounts {
|
|
|
18
18
|
tokenProgram: PublicKey;
|
|
19
19
|
wormholeProgram: PublicKey;
|
|
20
20
|
}
|
|
21
|
-
export declare function getCompleteTransferNativeAccounts(tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: TokenBridge.TransferVAA, feeRecipient?: PublicKeyInitData): CompleteTransferNativeAccounts;
|
|
21
|
+
export declare function getCompleteTransferNativeAccounts(tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: TokenBridge.TransferVAA, feeRecipient?: PublicKeyInitData, tokenProgramId?: PublicKeyInitData): CompleteTransferNativeAccounts;
|
|
22
22
|
//# sourceMappingURL=completeNative.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeNative.d.ts","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/completeNative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAqC,MAAM,iBAAiB,CAAC;AAU/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGpE,wBAAgB,uCAAuC,CACrD,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,iBAAiB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,WAAW,CAAC,WAAW,EAC5B,YAAY,CAAC,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"completeNative.d.ts","sourceRoot":"","sources":["../../../../../src/utils/tokenBridge/instructions/completeNative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAqC,MAAM,iBAAiB,CAAC;AAU/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGpE,wBAAgB,uCAAuC,CACrD,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,iBAAiB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,WAAW,CAAC,WAAW,EAC5B,YAAY,CAAC,EAAE,iBAAiB,EAChC,cAAc,CAAC,EAAE,iBAAiB,GACjC,sBAAsB,CAqBxB;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,eAAe,EAAE,SAAS,CAAC;CAC5B;AAED,wBAAgB,iCAAiC,CAC/C,oBAAoB,EAAE,iBAAiB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,WAAW,CAAC,WAAW,EAC5B,YAAY,CAAC,EAAE,iBAAiB,EAChC,cAAc,CAAC,EAAE,iBAAiB,GACjC,8BAA8B,CAiChC"}
|
|
@@ -4,18 +4,18 @@ import { createReadOnlyTokenBridgeProgramInterface } from '../program.js';
|
|
|
4
4
|
import { utils } from '@wormhole-foundation/sdk-solana-core';
|
|
5
5
|
import { deriveEndpointKey, deriveTokenBridgeConfigKey, deriveCustodyKey, deriveCustodySignerKey, } from './../accounts/index.js';
|
|
6
6
|
import { toChainId } from '@wormhole-foundation/sdk-connect';
|
|
7
|
-
export function createCompleteTransferNativeInstruction(connection, tokenBridgeProgramId, wormholeProgramId, payer, vaa, feeRecipient) {
|
|
7
|
+
export function createCompleteTransferNativeInstruction(connection, tokenBridgeProgramId, wormholeProgramId, payer, vaa, feeRecipient, tokenProgramId) {
|
|
8
8
|
const methods = createReadOnlyTokenBridgeProgramInterface(tokenBridgeProgramId, connection).methods.completeNative();
|
|
9
9
|
// @ts-ignore
|
|
10
10
|
return methods._ixFn(...methods._args, {
|
|
11
|
-
accounts: getCompleteTransferNativeAccounts(tokenBridgeProgramId, wormholeProgramId, payer, vaa, feeRecipient),
|
|
11
|
+
accounts: getCompleteTransferNativeAccounts(tokenBridgeProgramId, wormholeProgramId, payer, vaa, feeRecipient, tokenProgramId),
|
|
12
12
|
signers: undefined,
|
|
13
13
|
remainingAccounts: undefined,
|
|
14
14
|
preInstructions: undefined,
|
|
15
15
|
postInstructions: undefined,
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
|
-
export function getCompleteTransferNativeAccounts(tokenBridgeProgramId, wormholeProgramId, payer, vaa, feeRecipient) {
|
|
18
|
+
export function getCompleteTransferNativeAccounts(tokenBridgeProgramId, wormholeProgramId, payer, vaa, feeRecipient, tokenProgramId) {
|
|
19
19
|
const mint = new PublicKey(vaa.payload.token.address.toUint8Array());
|
|
20
20
|
return {
|
|
21
21
|
payer: new PublicKey(payer),
|
|
@@ -32,7 +32,9 @@ export function getCompleteTransferNativeAccounts(tokenBridgeProgramId, wormhole
|
|
|
32
32
|
custodySigner: deriveCustodySignerKey(tokenBridgeProgramId),
|
|
33
33
|
rent: SYSVAR_RENT_PUBKEY,
|
|
34
34
|
systemProgram: SystemProgram.programId,
|
|
35
|
-
tokenProgram:
|
|
35
|
+
tokenProgram: tokenProgramId
|
|
36
|
+
? new PublicKey(tokenProgramId)
|
|
37
|
+
: TOKEN_PROGRAM_ID,
|
|
36
38
|
wormholeProgram: new PublicKey(wormholeProgramId),
|
|
37
39
|
};
|
|
38
40
|
}
|