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