@@ -31,7 +31,7 @@ address of the original *unwrapped* token mint. This allows anyone to easily det
31
31
corresponding to a wrapped token, facilitating unwrapping.
32
32
33
33
2 . ** ` Wrap ` :** This operation accepts deposits of unwrapped tokens and mints wrapped tokens.
34
- * Unwrapped tokens are transferred from the user's account to an escrow account owned by the wrapped mint authority (different for every mint). Any unwrapped token account whose owner is a PDA controlled by the Token Wrap program can be used .
34
+ * Unwrapped tokens are transferred from the user's account to a specific escrow Associated Token Account (ATA). This ATA is for the unwrapped mint, and its authority is a Program Derived Address ( PDA) controlled by the Token Wrap program (unique for each wrapped mint) .
35
35
* An equivalent amount of wrapped tokens is minted to the user's wrapped token account.
36
36
37
37
3 . ** ` Unwrap ` :** This operation burns wrapped tokens and releases unwrapped token deposits.
@@ -199,6 +199,7 @@ To interact with wrapped tokens, you need to know the PDAs (Program Derived Addr
199
199
Wrapped mint address: B8HbxGU4npjgjMX5xJFR2FYkgvAHdZqyVb8MyFvdsuNM
200
200
Wrapped mint authority: 8WdYPmtq8c6ZfmHMZUwCQL2E8qVHEV8rG9MXkyax3joR
201
201
Wrapped backpointer address: CNjr898vsBdzWxrJApMSAQac4A7o7qLRcSseTb56X7C9
202
+ Unwrapped escrow address: QrzXtFZedQmg8AGu6AnUkPgmsLnR9ErsjNRLdCrRVWw
202
203
```
203
204
</Tab >
204
205
@@ -210,7 +211,8 @@ To interact with wrapped tokens, you need to know the PDAs (Program Derived Addr
210
211
findWrappedMintAuthorityPda ,
211
212
findWrappedMintPda ,
212
213
} from ' @solana-program/token-wrap' ;
213
- import { TOKEN_2022_PROGRAM_ADDRESS } from ' @solana-program/token-2022' ;
214
+ import { findAssociatedTokenPda , TOKEN_2022_PROGRAM_ADDRESS } from ' @solana-program/token-2022' ;
215
+ import { TOKEN_PROGRAM_ADDRESS } from ' @solana-program/token' ;
214
216
215
217
const UNWRAPPED_MINT_ADDRESS = address (' 5StBUZ2w8ShDN9iF7NkGpDNNH2wv9jK7zhArmVRpwrCt' );
216
218
@@ -222,19 +224,28 @@ To interact with wrapped tokens, you need to know the PDAs (Program Derived Addr
222
224
const [backpointer] = await findBackpointerPda ({ wrappedMint });
223
225
const [wrappedMintAuthority] = await findWrappedMintAuthorityPda ({ wrappedMint });
224
226
227
+ const [escrowAccount] = await findAssociatedTokenPda ({
228
+ owner: wrappedMintAuthority ,
229
+ mint: UNWRAPPED_MINT_ADDRESS ,
230
+ tokenProgram: TOKEN_PROGRAM_ADDRESS , // unwrapped token program address
231
+ });
232
+
225
233
console .log (' WRAPPED_MINT_ADDRESS' , wrappedMint );
226
234
console .log (' BACKPOINTER' , backpointer );
227
235
console .log (' WRAPPED_MINT_AUTHORITY' , wrappedMintAuthority );
236
+ console .log (' ESCROW_ACCOUNT' , escrowAccount );
228
237
}
229
238
230
239
void main ();
240
+
231
241
```
232
242
</Tab >
233
243
</Tabs >
234
244
235
245
### Create escrow account
236
246
237
- Before wrapping tokens, you need to create an account to hold the unwrapped tokens. The escrow account's owner must be the correct PDA (see ` find-pdas ` command above). There is also a helper to create this account:
247
+ Before wrapping tokens, if you are the first to do so for this wrapped mint, you may need to initialize the escrow account to custody the unwrapped tokens.
248
+ The account must be an ATA whose owner is the mint authority PDA (see ` find-pdas ` command above). There is also a helper to initialize this account:
238
249
239
250
<Tabs groupId = " language" items = { [' CLI' , ' JS' ]} >
240
251
<Tab value = " CLI" >
@@ -284,10 +295,12 @@ Before wrapping tokens, you need to create an account to hold the unwrapped toke
284
295
unwrappedMint: UNWRAPPED_MINT_ADDRESS ,
285
296
wrappedTokenProgram: TOKEN_2022_PROGRAM_ADDRESS ,
286
297
});
287
- const signedCreateEscrowTx = await signTransactionMessageWithSigners (createEscrowMessage .tx );
288
- await sendAndConfirm (signedCreateEscrowTx , { commitment: ' confirmed' });
298
+ if (! createEscrowMessage .exists ) {
299
+ const signedCreateEscrowTx = await signTransactionMessageWithSigners (createEscrowMessage .tx );
300
+ await sendAndConfirm (signedCreateEscrowTx , { commitment: ' confirmed' });
301
+ }
289
302
290
- console .log (' ESCROW_ADDRESS' , createEscrowMessage .keyPair . address );
303
+ console .log (' ESCROW_ADDRESS' , createEscrowMessage .address );
291
304
}
292
305
293
306
void main ();
@@ -304,10 +317,9 @@ Escrows unwrapped tokens and mints wrapped tokens to recipient account.
304
317
<Tab value = " CLI" >
305
318
``` console
306
319
$ UNWRAPPED_TOKEN_ACCOUNT=DKFjYKEFS4tkXjamwkuiGf555Lww3eRSWwNTbue9x14
307
- $ ESCROW_ACCOUNT=4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3
308
320
$ WRAPPED_TOKEN_PROGRAM=TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
309
321
310
- $ spl-token-wrap wrap $UNWRAPPED_TOKEN_ACCOUNT $ESCROW_ACCOUNT $ WRAPPED_TOKEN_PROGRAM 100
322
+ $ spl-token-wrap wrap $UNWRAPPED_TOKEN_ACCOUNT $WRAPPED_TOKEN_PROGRAM 100
311
323
312
324
Wrapping 100 tokens from mint BVpjjYmSgSPZbFGTXe52NYXApsDNQJRe2qQF1hQft85e
313
325
Unwrapped mint address: BVpjjYmSgSPZbFGTXe52NYXApsDNQJRe2qQF1hQft85e
@@ -323,7 +335,7 @@ Escrows unwrapped tokens and mints wrapped tokens to recipient account.
323
335
You can specify a recipient token account with the ` --recipient-token-account ` option. If not provided, the associated token account of the fee payer will be used or created if it doesn't exist.
324
336
325
337
``` console
326
- $ spl-token-wrap wrap $UNWRAPPED_TOKEN_ACCOUNT $ESCROW_ACCOUNT $ WRAPPED_TOKEN_PROGRAM 100 \
338
+ $ spl-token-wrap wrap $UNWRAPPED_TOKEN_ACCOUNT $WRAPPED_TOKEN_PROGRAM 100 \
327
339
--recipient-token-account $RECIPIENT_WRAPPED_TOKEN_ACCOUNT
328
340
```
329
341
</Tab >
@@ -344,7 +356,6 @@ Escrows unwrapped tokens and mints wrapped tokens to recipient account.
344
356
345
357
// Replace these consts with your own
346
358
const PRIVATE_KEY_PAIR = new Uint8Array ([242 , 30 , 38 , 177 , 152 , 71 , ... ]);
347
- const ESCROW_ACCOUNT = address (' 4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3' );
348
359
const UNWRAPPED_TOKEN_ACCOUNT = address (' CbuRmvG3frMoPFnsKfC2t8jTUHFjtnrKZBt2aqdqH4PG' );
349
360
const RECIPIENT = address (' HKHfad5Rx7Vv1iWzPiQhx3cnXpbVfDonYRRo1e16x5Bt' );
350
361
const AMOUNT_TO_WRAP = 100n ;
@@ -362,7 +373,6 @@ Escrows unwrapped tokens and mints wrapped tokens to recipient account.
362
373
blockhash ,
363
374
payer ,
364
375
unwrappedTokenAccount: UNWRAPPED_TOKEN_ACCOUNT ,
365
- escrowAccount: ESCROW_ACCOUNT ,
366
376
wrappedTokenProgram: TOKEN_2022_PROGRAM_ADDRESS ,
367
377
recipientWrappedTokenAccount: RECIPIENT ,
368
378
amount: AMOUNT_TO_WRAP ,
@@ -416,11 +426,10 @@ An example wrapping tokens whose origin is a token account owned by an SPL Token
416
426
$ MULTISIG_ADDRESS=mgnqjedikMKaRtS5wrhVttuA12JaPXiqY619Gfef5eh
417
427
$ RECIPIENT_ACCOUNT=HKHfad5Rx7Vv1iWzPiQhx3cnXpbVfDonYRRo1e16x5Bt
418
428
$ UNWRAPPED_MINT=BVpjjYmSgSPZbFGTXe52NYXApsDNQJRe2qQF1hQft85e
419
- $ ESCROW_ACCOUNT=4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3
420
429
$ UNWRAPPED_TOKEN_PROGRAM=TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
421
430
$ WRAPPED_TOKEN_PROGRAM=TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
422
431
423
- $ spl-token-wrap wrap $UNWRAPPED_TOKEN_ACCOUNT $ESCROW_ACCOUNT $ WRAPPED_TOKEN_PROGRAM 23 \
432
+ $ spl-token-wrap wrap $UNWRAPPED_TOKEN_ACCOUNT $WRAPPED_TOKEN_PROGRAM 23 \
424
433
--transfer-authority $MULTISIG_ADDRESS \
425
434
--recipient-token-account $RECIPIENT_ACCOUNT \
426
435
--unwrapped-mint $UNWRAPPED_MINT \
@@ -451,11 +460,10 @@ An example wrapping tokens whose origin is a token account owned by an SPL Token
451
460
$ MULTISIG_ADDRESS=mgnqjedikMKaRtS5wrhVttuA12JaPXiqY619Gfef5eh
452
461
$ RECIPIENT_ACCOUNT=HKHfad5Rx7Vv1iWzPiQhx3cnXpbVfDonYRRo1e16x5Bt
453
462
$ UNWRAPPED_MINT=BVpjjYmSgSPZbFGTXe52NYXApsDNQJRe2qQF1hQft85e
454
- $ ESCROW_ACCOUNT=4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3
455
463
$ UNWRAPPED_TOKEN_PROGRAM=TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
456
464
$ WRAPPED_TOKEN_PROGRAM=TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
457
465
458
- $ spl-token-wrap wrap $UNWRAPPED_TOKEN_ACCOUNT $ESCROW_ACCOUNT $ WRAPPED_TOKEN_PROGRAM 23 \
466
+ $ spl-token-wrap wrap $UNWRAPPED_TOKEN_ACCOUNT $WRAPPED_TOKEN_PROGRAM 23 \
459
467
--transfer-authority $MULTISIG_ADDRESS \
460
468
--recipient-token-account $RECIPIENT_ACCOUNT \
461
469
--unwrapped-mint $UNWRAPPED_MINT \
@@ -487,11 +495,10 @@ An example wrapping tokens whose origin is a token account owned by an SPL Token
487
495
$ MULTISIG_ADDRESS=mgnqjedikMKaRtS5wrhVttuA12JaPXiqY619Gfef5eh
488
496
$ RECIPIENT_ACCOUNT=HKHfad5Rx7Vv1iWzPiQhx3cnXpbVfDonYRRo1e16x5Bt
489
497
$ UNWRAPPED_MINT=BVpjjYmSgSPZbFGTXe52NYXApsDNQJRe2qQF1hQft85e
490
- $ ESCROW_ACCOUNT=4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3
491
498
$ UNWRAPPED_TOKEN_PROGRAM=TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
492
499
$ WRAPPED_TOKEN_PROGRAM=TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
493
500
494
- $ spl-token-wrap wrap $UNWRAPPED_TOKEN_ACCOUNT $ESCROW_ACCOUNT $ WRAPPED_TOKEN_PROGRAM 23 \
501
+ $ spl-token-wrap wrap $UNWRAPPED_TOKEN_ACCOUNT $WRAPPED_TOKEN_PROGRAM 23 \
495
502
--transfer-authority $MULTISIG_ADDRESS \
496
503
--recipient-token-account $RECIPIENT_ACCOUNT \
497
504
--unwrapped-mint $UNWRAPPED_MINT \
@@ -547,7 +554,6 @@ An example wrapping tokens whose origin is a token account owned by an SPL Token
547
554
const UNWRAPPED_MINT_ADDRESS = address (' E8r9ixwg7QYr6xCh4tSdHErZ6CUxQhVGHqF5bRoZXyyV' );
548
555
const UNWRAPPED_TOKEN_ACCOUNT = address (' DGNyuKAWP3susy6XMbVsYHy2AMrrKmh8pXM3WpQUeyL2' ); // Must be owned by multisig account
549
556
const UNWRAPPED_TOKEN_PROGRAM = address (' TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb' );
550
- const ESCROW = address (' 4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3' );
551
557
const RECIPIENT = address (' HKHfad5Rx7Vv1iWzPiQhx3cnXpbVfDonYRRo1e16x5Bt' );
552
558
const AMOUNT_TO_WRAP = 100n ;
553
559
@@ -566,10 +572,9 @@ An example wrapping tokens whose origin is a token account owned by an SPL Token
566
572
567
573
// Two signers and the payer sign the transaction independently
568
574
569
- const wrapTxA = multisigOfflineSignWrapTx ({
575
+ const wrapTxA = await multisigOfflineSignWrapTx ({
570
576
payer: createNoopSigner (payer .address ),
571
577
unwrappedTokenAccount: UNWRAPPED_TOKEN_ACCOUNT ,
572
- escrowAccount: ESCROW ,
573
578
wrappedTokenProgram: TOKEN_2022_PROGRAM_ADDRESS ,
574
579
amount: AMOUNT_TO_WRAP ,
575
580
unwrappedMint: UNWRAPPED_MINT_ADDRESS ,
@@ -583,10 +588,9 @@ An example wrapping tokens whose origin is a token account owned by an SPL Token
583
588
});
584
589
const signedWrapTxA = await partiallySignTransactionMessageWithSigners (wrapTxA );
585
590
586
- const wrapTxB = multisigOfflineSignWrapTx ({
591
+ const wrapTxB = await multisigOfflineSignWrapTx ({
587
592
payer: createNoopSigner (payer .address ),
588
593
unwrappedTokenAccount: UNWRAPPED_TOKEN_ACCOUNT ,
589
- escrowAccount: ESCROW ,
590
594
wrappedTokenProgram: TOKEN_2022_PROGRAM_ADDRESS ,
591
595
amount: AMOUNT_TO_WRAP ,
592
596
unwrappedMint: UNWRAPPED_MINT_ADDRESS ,
@@ -600,10 +604,9 @@ An example wrapping tokens whose origin is a token account owned by an SPL Token
600
604
});
601
605
const signedWrapTxB = await partiallySignTransactionMessageWithSigners (wrapTxB );
602
606
603
- const wrapTxC = multisigOfflineSignWrapTx ({
607
+ const wrapTxC = await multisigOfflineSignWrapTx ({
604
608
payer ,
605
609
unwrappedTokenAccount: UNWRAPPED_TOKEN_ACCOUNT ,
606
- escrowAccount: ESCROW ,
607
610
wrappedTokenProgram: TOKEN_2022_PROGRAM_ADDRESS ,
608
611
amount: AMOUNT_TO_WRAP ,
609
612
unwrappedMint: UNWRAPPED_MINT_ADDRESS ,
@@ -647,11 +650,10 @@ Burns wrapped tokens and releases unwrapped tokens from escrow.
647
650
<Tabs groupId = " language" items = { [' CLI' , ' JS' ]} >
648
651
<Tab value = " CLI" >
649
652
``` console
650
- $ ESCROW_ACCOUNT=4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3
651
653
$ WRAPPED_TOKEN_ACCOUNT=HKHfad5Rx7Vv1iWzPiQhx3cnXpbVfDonYRRo1e16x5Bt
652
654
$ UNWRAPPED_TOKEN_RECIPIENT=DKFjYKEFS4tkXjamwkuiGf555Lww3eRSWwNTbue9x14
653
655
654
- $ spl-token-wrap unwrap $WRAPPED_TOKEN_ACCOUNT $ESCROW_ACCOUNT $ UNWRAPPED_TOKEN_RECIPIENT 50
656
+ $ spl-token-wrap unwrap $WRAPPED_TOKEN_ACCOUNT $UNWRAPPED_TOKEN_RECIPIENT 50
655
657
656
658
Unwrapping 50 tokens from mint BVpjjYmSgSPZbFGTXe52NYXApsDNQJRe2qQF1hQft85e
657
659
Unwrapped token program: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
@@ -679,7 +681,6 @@ Burns wrapped tokens and releases unwrapped tokens from escrow.
679
681
// Replace these consts with your own
680
682
const PRIVATE_KEY_PAIR = new Uint8Array ([242 , 30 , 38 , 177 , 152 , 71 , ... ]);
681
683
const WRAPPED_TOKEN_ACCOUNT = address (' HKHfad5Rx7Vv1iWzPiQhx3cnXpbVfDonYRRo1e16x5Bt' );
682
- const ESCROW = address (' 4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3' );
683
684
const RECIPIENT = address (' DKFjYKEFS4tkXjamwkuiGf555Lww3eRSWwNTbue9x14' );
684
685
const AMOUNT_TO_WRAP = 100n ;
685
686
@@ -696,7 +697,6 @@ Burns wrapped tokens and releases unwrapped tokens from escrow.
696
697
blockhash ,
697
698
payer ,
698
699
wrappedTokenAccount: WRAPPED_TOKEN_ACCOUNT ,
699
- unwrappedEscrow: ESCROW ,
700
700
amount: AMOUNT_TO_WRAP ,
701
701
recipientUnwrappedToken: RECIPIENT ,
702
702
});
@@ -748,11 +748,10 @@ An example unwrapping tokens whose origin is a token account owned by an SPL Tok
748
748
$ MULTISIG_ADDRESS=FFQvYvhaWnHeGsCMfixccUMdnXPgDrkG3KkGzpfBHFPb # note this should have the same program-id as wrapped token account
749
749
$ UNWRAPPED_TOKEN_RECIPIENT=DKFjYKEFS4tkXjamwkuiGf555Lww3eRSWwNTbue9x14
750
750
$ UNWRAPPED_MINT=BVpjjYmSgSPZbFGTXe52NYXApsDNQJRe2qQF1hQft85e
751
- $ ESCROW_ACCOUNT=4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3
752
751
$ UNWRAPPED_TOKEN_PROGRAM=TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
753
752
$ WRAPPED_TOKEN_PROGRAM=TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
754
753
755
- $ spl-token-wrap unwrap $WRAPPED_TOKEN_ACCOUNT $ESCROW_ACCOUNT $ UNWRAPPED_TOKEN_RECIPIENT 5 \
754
+ $ spl-token-wrap unwrap $WRAPPED_TOKEN_ACCOUNT $UNWRAPPED_TOKEN_RECIPIENT 5 \
756
755
--transfer-authority $MULTISIG_ADDRESS \
757
756
--fee-payer $FEE_PAYER \
758
757
--unwrapped-mint $UNWRAPPED_MINT \
@@ -777,11 +776,10 @@ An example unwrapping tokens whose origin is a token account owned by an SPL Tok
777
776
$ MULTISIG_ADDRESS=FFQvYvhaWnHeGsCMfixccUMdnXPgDrkG3KkGzpfBHFPb
778
777
$ UNWRAPPED_TOKEN_RECIPIENT=DKFjYKEFS4tkXjamwkuiGf555Lww3eRSWwNTbue9x14
779
778
$ UNWRAPPED_MINT=BVpjjYmSgSPZbFGTXe52NYXApsDNQJRe2qQF1hQft85e
780
- $ ESCROW_ACCOUNT=4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3
781
779
$ UNWRAPPED_TOKEN_PROGRAM=TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
782
780
$ WRAPPED_TOKEN_PROGRAM=TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
783
781
784
- $ spl-token-wrap unwrap $WRAPPED_TOKEN_ACCOUNT $ESCROW_ACCOUNT $ UNWRAPPED_TOKEN_RECIPIENT 5 \
782
+ $ spl-token-wrap unwrap $WRAPPED_TOKEN_ACCOUNT $UNWRAPPED_TOKEN_RECIPIENT 5 \
785
783
--transfer-authority $MULTISIG_ADDRESS \
786
784
--fee-payer $FEE_PAYER \
787
785
--unwrapped-mint $UNWRAPPED_MINT \
@@ -807,11 +805,10 @@ An example unwrapping tokens whose origin is a token account owned by an SPL Tok
807
805
$ MULTISIG_ADDRESS=FFQvYvhaWnHeGsCMfixccUMdnXPgDrkG3KkGzpfBHFPb
808
806
$ UNWRAPPED_TOKEN_RECIPIENT=DKFjYKEFS4tkXjamwkuiGf555Lww3eRSWwNTbue9x14
809
807
$ UNWRAPPED_MINT=BVpjjYmSgSPZbFGTXe52NYXApsDNQJRe2qQF1hQft85e
810
- $ ESCROW_ACCOUNT=4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3
811
808
$ UNWRAPPED_TOKEN_PROGRAM=TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
812
809
$ WRAPPED_TOKEN_PROGRAM=TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
813
810
814
- $ spl-token-wrap unwrap $WRAPPED_TOKEN_ACCOUNT $ESCROW_ACCOUNT $ UNWRAPPED_TOKEN_RECIPIENT 5 \
811
+ $ spl-token-wrap unwrap $WRAPPED_TOKEN_ACCOUNT $UNWRAPPED_TOKEN_RECIPIENT 5 \
815
812
--transfer-authority $MULTISIG_ADDRESS \
816
813
--fee-payer $FEE_PAYER \
817
814
--unwrapped-mint $UNWRAPPED_MINT \
@@ -865,7 +862,6 @@ An example unwrapping tokens whose origin is a token account owned by an SPL Tok
865
862
const UNWRAPPED_MINT_ADDRESS = address (' E8r9ixwg7QYr6xCh4tSdHErZ6CUxQhVGHqF5bRoZXyyV' );
866
863
const UNWRAPPED_TOKEN_ACCOUNT = address (' DGNyuKAWP3susy6XMbVsYHy2AMrrKmh8pXM3WpQUeyL2' ); // Must be owned by multisig account
867
864
const UNWRAPPED_TOKEN_PROGRAM = address (' TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb' );
868
- const ESCROW = address (' 4NoeQJKuH8fu1Pqk5k8BJpNu4wA7T8K6QABJxjTWoHs3' );
869
865
const RECIPIENT = address (' HKHfad5Rx7Vv1iWzPiQhx3cnXpbVfDonYRRo1e16x5Bt' );
870
866
const AMOUNT_TO_WRAP = 100n ;
871
867
@@ -884,9 +880,8 @@ An example unwrapping tokens whose origin is a token account owned by an SPL Tok
884
880
885
881
const { value : unwrapBlockhash } = await rpc .getLatestBlockhash ().send ();
886
882
887
- const unwrapTxA = multisigOfflineSignUnwrap ({
883
+ const unwrapTxA = await multisigOfflineSignUnwrap ({
888
884
payer: createNoopSigner (payer .address ),
889
- unwrappedEscrow: ESCROW ,
890
885
wrappedTokenProgram: TOKEN_2022_PROGRAM_ADDRESS ,
891
886
amount: AMOUNT_TO_WRAP ,
892
887
unwrappedMint: UNWRAPPED_MINT_ADDRESS ,
@@ -901,9 +896,8 @@ An example unwrapping tokens whose origin is a token account owned by an SPL Tok
901
896
});
902
897
const signedUnwrapTxA = await partiallySignTransactionMessageWithSigners (unwrapTxA );
903
898
904
- const unwrapTxB = multisigOfflineSignUnwrap ({
899
+ const unwrapTxB = await multisigOfflineSignUnwrap ({
905
900
payer: createNoopSigner (payer .address ),
906
- unwrappedEscrow: ESCROW ,
907
901
wrappedTokenProgram: TOKEN_2022_PROGRAM_ADDRESS ,
908
902
amount: AMOUNT_TO_WRAP ,
909
903
unwrappedMint: UNWRAPPED_MINT_ADDRESS ,
@@ -918,9 +912,8 @@ An example unwrapping tokens whose origin is a token account owned by an SPL Tok
918
912
});
919
913
const signedUnwrapTxB = await partiallySignTransactionMessageWithSigners (unwrapTxB );
920
914
921
- const unwrapTxC = multisigOfflineSignUnwrap ({
915
+ const unwrapTxC = await multisigOfflineSignUnwrap ({
922
916
payer: payer ,
923
- unwrappedEscrow: ESCROW ,
924
917
wrappedTokenProgram: TOKEN_2022_PROGRAM_ADDRESS ,
925
918
amount: AMOUNT_TO_WRAP ,
926
919
unwrappedMint: UNWRAPPED_MINT_ADDRESS ,
0 commit comments