Skip to content

Commit 36a64ac

Browse files
committed
fix release ix
1 parent 9677e47 commit 36a64ac

File tree

3 files changed

+26
-10
lines changed

3 files changed

+26
-10
lines changed

programs/portal/src/instructions/release_inbound.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ pub struct ReleaseInboundMint<'info> {
5858
pub earn_program: Program<'info, Earn>,
5959

6060
#[account(
61+
mut,
6162
seeds = [GLOBAL_SEED],
6263
seeds::program = earn::ID,
6364
bump = m_global.bump,

programs/portal/src/instructions/resolve_execute.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ use crate::{
3030
messages::ValidatedTransceiverMessage,
3131
ntt_messages::{ChainId, TransceiverMessage, TransceiverMessageData, WormholeTransceiver},
3232
payloads::Payload,
33+
peer::NttManagerPeer,
3334
queue::{
3435
inbox::{InboxItem, InboxRateLimit},
3536
outbox::OutboxRateLimit,
@@ -190,7 +191,7 @@ pub fn resolve_execute_vaa_v1<'a>(
190191
.untrim(mint_data.decimals)
191192
.map_err(NTTError::from)?;
192193

193-
let peer = pda(&[TransceiverPeer::SEED_PREFIX, emitter_chain]);
194+
let transceiver_peer = pda(&[TransceiverPeer::SEED_PREFIX, emitter_chain]);
194195
let transceiver_message = pda(&[
195196
ValidatedTransceiverMessage::<TransceiverMessageData<Payload>>::SEED_PREFIX,
196197
emitter_chain,
@@ -218,7 +219,7 @@ pub fn resolve_execute_vaa_v1<'a>(
218219
is_signer: false,
219220
},
220221
SerializableAccountMeta {
221-
pubkey: peer,
222+
pubkey: transceiver_peer,
222223
is_writable: false,
223224
is_signer: false,
224225
},
@@ -241,6 +242,7 @@ pub fn resolve_execute_vaa_v1<'a>(
241242
};
242243

243244
let redeem = {
245+
let peer = pda(&[NttManagerPeer::SEED_PREFIX, emitter_chain]);
244246
let transceiver = pda(&[RegisteredTransceiver::SEED_PREFIX, &crate::ID.to_bytes()]);
245247
let inbox_rate_limit = pda(&[InboxRateLimit::SEED_PREFIX, emitter_chain]);
246248
let outbox_rate_limit = pda(&[OutboxRateLimit::SEED_PREFIX]);
@@ -373,7 +375,7 @@ pub fn resolve_execute_vaa_v1<'a>(
373375
},
374376
SerializableAccountMeta {
375377
pubkey: m_global,
376-
is_writable: false,
378+
is_writable: true,
377379
is_signer: false,
378380
},
379381
]
@@ -437,7 +439,7 @@ pub fn resolve_execute_vaa_v1<'a>(
437439
token_program,
438440
);
439441
let ext_token_account = get_associated_token_address_with_program_id(
440-
&recipient,
442+
&ntt_recipient,
441443
&destination_mint,
442444
&ext_token_program,
443445
);
@@ -451,7 +453,7 @@ pub fn resolve_execute_vaa_v1<'a>(
451453
},
452454
SerializableAccountMeta {
453455
pubkey: swap_global,
454-
is_writable: true,
456+
is_writable: false,
455457
is_signer: false,
456458
},
457459
SerializableAccountMeta {
@@ -489,6 +491,11 @@ pub fn resolve_execute_vaa_v1<'a>(
489491
is_writable: false,
490492
is_signer: false,
491493
},
494+
SerializableAccountMeta {
495+
pubkey: ext_token_program,
496+
is_writable: false,
497+
is_signer: false,
498+
},
492499
SerializableAccountMeta {
493500
pubkey: System::id(),
494501
is_writable: false,

tests/unit/portal.test.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,7 +1072,7 @@ describe('Portal unit tests', () => {
10721072
expect(accountData).toBeDefined();
10731073
const resolveResult = encoder.decode('ExecutorAccountResolverResult', Buffer.from(accountData!.data));
10741074

1075-
const { instructions, address_lookup_tables } = resolveResult[0].Resolved[0][0][0];
1075+
const { instructions } = resolveResult[0].Resolved[0][0][0];
10761076

10771077
const resolveKey = (key: PublicKey) => {
10781078
const vaaPlaceholder = new PublicKey(Buffer.from('posted_vaa_000000000000000000000'));
@@ -1082,7 +1082,7 @@ describe('Portal unit tests', () => {
10821082
};
10831083

10841084
const redeemTx = new Transaction().add(
1085-
...[instructions[0]].map(
1085+
...instructions.map(
10861086
(ix: any) =>
10871087
new TransactionInstruction({
10881088
programId: ix.program_id,
@@ -1096,14 +1096,22 @@ describe('Portal unit tests', () => {
10961096
),
10971097
);
10981098

1099+
// check ext balance
1100+
let extTokenAccountInfo = await connection.getAccountInfo(extAta);
1101+
let extParsedTokenAccount = spl.unpackAccount(extAta, extTokenAccountInfo, TOKEN_PROGRAM);
1102+
expect(extParsedTokenAccount.amount).toBe(9099n);
1103+
1104+
// send transactions
10991105
redeemTx.feePayer = payer.publicKey;
11001106
redeemTx.recentBlockhash = svm.latestBlockhash();
11011107
redeemTx.sign(payer);
11021108
const redeemResult = svm.sendTransaction!(redeemTx);
1109+
expect((redeemResult as any).logs?.()).toBeDefined();
11031110

1104-
console.log('Redeem tx', JSON.stringify(redeemTx, null, 2));
1105-
1106-
console.log('Redeem result:', redeemResult.toString());
1111+
// check updated ext balance
1112+
extTokenAccountInfo = await connection.getAccountInfo(extAta);
1113+
extParsedTokenAccount = spl.unpackAccount(extAta, extTokenAccountInfo, TOKEN_PROGRAM);
1114+
expect(extParsedTokenAccount.amount).toBe(9198n);
11071115
});
11081116

11091117
it('tokens with merkle roots', async () => {

0 commit comments

Comments
 (0)