Skip to content
Merged
Show file tree
Hide file tree
Changes from 51 commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
dcd7ffa
chore: use `get_balance` helper in account_delta
PhilippGackstatter Jan 27, 2026
67718c7
chore: Add `TryFrom<Word> for AssetVaultKey`
PhilippGackstatter Feb 2, 2026
2052f82
feat: refactor `asset.masm`
PhilippGackstatter Jan 29, 2026
acdc97b
feat: add `fungible_asset.masm`
PhilippGackstatter Jan 30, 2026
0374da3
feat: refactor `asset_vault.masm`
PhilippGackstatter Jan 30, 2026
9b4e83b
feat: refactor `faucet.masm`
PhilippGackstatter Jan 30, 2026
09ac617
feat: refactor `account.masm`
PhilippGackstatter Jan 30, 2026
aff2d9d
feat: refactor `account_delta.masm`
PhilippGackstatter Jan 30, 2026
7137504
feat: refactor `epilogue.masm`
PhilippGackstatter Feb 2, 2026
a8086f1
feat: refactor `output_note.masm`
PhilippGackstatter Feb 2, 2026
f7d8454
feat: refactor `prologue.masm`
PhilippGackstatter Feb 2, 2026
9be1b36
chore: increase `NOTE_MEM_SIZE` to 3072
PhilippGackstatter Feb 2, 2026
d7552fb
chore: adapt `NoteAssets` commitment
PhilippGackstatter Feb 2, 2026
798df71
feat: refactor `note.masm`
PhilippGackstatter Feb 3, 2026
d7c4094
chore: refactor `api.masm`
PhilippGackstatter Feb 3, 2026
f83cd68
chore: regenerate kernel proc hashes
PhilippGackstatter Feb 4, 2026
3ea65e5
chore: add changelog
PhilippGackstatter Feb 4, 2026
199643b
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 4, 2026
349a829
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 5, 2026
c1b163f
fix: faucet::mint output docs
PhilippGackstatter Feb 5, 2026
96fe20e
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 5, 2026
be81101
Merge branch 'next' into pgackst-kernel-asset-key-value
PhilippGackstatter Feb 5, 2026
1774785
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 6, 2026
23263d6
chore: update memory.rs input/output note memory layouts
PhilippGackstatter Feb 6, 2026
d85482b
fix: duplicate num assets in memory.rs table
PhilippGackstatter Feb 6, 2026
e6909da
feat: move `build_asset_vault_key` to shared utils
PhilippGackstatter Feb 4, 2026
2f200d5
feat: refactor `faucet::mint`
PhilippGackstatter Feb 5, 2026
02502ee
feat: refactor `faucet::burn`
PhilippGackstatter Feb 5, 2026
2a6cc50
chore: refactor `create_non_fungible_asset` for uniformity
PhilippGackstatter Feb 5, 2026
01a0591
feat: refactor `native_account::remove_asset`
PhilippGackstatter Feb 5, 2026
7256ad2
chore: move `mock::util` lib to miden-standards
PhilippGackstatter Feb 5, 2026
d3c7220
feat: refactor `move_asset_to_note`
PhilippGackstatter Feb 5, 2026
82df521
feat: add asset key to SWAP storage
PhilippGackstatter Feb 5, 2026
0b650bf
feat: refactor `native_account::add_asset`
PhilippGackstatter Feb 5, 2026
5ff13bd
chore: refactor `receive_asset`
PhilippGackstatter Feb 5, 2026
b8bab15
feat: refactor `output_note::add_asset`
PhilippGackstatter Feb 6, 2026
6a8dfd9
chore: deduplicate epilogue asset preservation test
PhilippGackstatter Feb 6, 2026
21b0b02
chore: remove re-export of vault key builder procedures
PhilippGackstatter Feb 6, 2026
fc0e850
chore: regenerate kernel procedure hashes
PhilippGackstatter Feb 6, 2026
77f4984
chore: add changelog
PhilippGackstatter Feb 6, 2026
8530a46
fix: doc link to mock util lib
PhilippGackstatter Feb 6, 2026
b360b7d
chore: improve send_note_body impl and test
PhilippGackstatter Feb 6, 2026
b1af2ca
fix: replace leftover `ASSET`s with `ASSET_VALUE`
PhilippGackstatter Feb 6, 2026
23daea6
chore: update protocol library docs
PhilippGackstatter Feb 6, 2026
1a9963f
fix: rename leftover `ASSET` to `ASSET_VALUE`
PhilippGackstatter Feb 6, 2026
136678c
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 9, 2026
abb0a94
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 9, 2026
7ca82dd
chore: remove unused error
PhilippGackstatter Feb 9, 2026
e11fb33
chore: regenerate tx kernel errors
PhilippGackstatter Feb 9, 2026
f2f062c
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 10, 2026
65a15aa
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 10, 2026
60a00c7
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 11, 2026
fd47b2e
chore: improve note assets commitment computation
PhilippGackstatter Feb 11, 2026
51c91f2
fix: input notes memory assertions
PhilippGackstatter Feb 11, 2026
d8de731
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 11, 2026
625a3c8
chore: add renamed procedures to changelog
PhilippGackstatter Feb 11, 2026
04a5fef
fix: incorrect stack and doc comment
PhilippGackstatter Feb 11, 2026
f416eec
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 12, 2026
ac817c4
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 12, 2026
955d92b
fix: p2id::new test
PhilippGackstatter Feb 12, 2026
1550298
Initial plan
Copilot Feb 12, 2026
c4bf16a
Address review nits: add load_asset_key_and_value utility, use explic…
Copilot Feb 12, 2026
e81a8ea
Fix load_asset_key_and_value procedure and usages in prologue and epi…
Copilot Feb 12, 2026
7a57963
Run cargo fmt to fix formatting issues
Copilot Feb 12, 2026
1ce31fa
Rename asset_value back to asset in tx_event.rs
Copilot Feb 14, 2026
7bb2c67
Run cargo fmt to fix formatting after variable rename
Copilot Feb 14, 2026
e0ac414
Merge pull request #2438 from 0xMiden/copilot/sub-pr-2396
PhilippGackstatter Feb 14, 2026
525d94f
Merge branch 'next' into pgackst-kernel-asset-key-value
PhilippGackstatter Feb 14, 2026
7639505
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 14, 2026
0a49bb4
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 16, 2026
0ff5601
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 16, 2026
baf7474
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 17, 2026
76f343e
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 17, 2026
14e80e5
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 19, 2026
2d42665
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 19, 2026
7abde8b
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 20, 2026
c06263a
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 20, 2026
8c82bea
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 23, 2026
98bf47d
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 23, 2026
e31542d
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 24, 2026
ee4ccff
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 24, 2026
97d02da
fix: avoid using undeclared stack
PhilippGackstatter Feb 24, 2026
934f049
feat: reexport asset::mem_load
PhilippGackstatter Feb 24, 2026
fa660cd
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 24, 2026
8ddcfd2
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 24, 2026
9fc1662
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 25, 2026
f90acc8
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 25, 2026
4a552a1
feat: Add `Asset::as_elements`
PhilippGackstatter Feb 25, 2026
069ba66
chore: use `asset::mem_load` in swap note
PhilippGackstatter Feb 25, 2026
25e1d54
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Feb 26, 2026
e4bc64f
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Feb 26, 2026
a7c52b2
Merge remote-tracking branch 'origin/next' into pgackst-kernel-asset-…
PhilippGackstatter Mar 2, 2026
9f61f79
Merge branch 'pgackst-kernel-asset-key-value' into pgackst-user-asset…
PhilippGackstatter Mar 2, 2026
fc5ad3a
Merge remote-tracking branch 'origin/next' into pgackst-user-asset-ke…
PhilippGackstatter Mar 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
- [BREAKING] Updated note tag length to support up to 32 bits ([#2329](https://github.com/0xMiden/miden-base/pull/2329)).
- [BREAKING] Moved standard note code into individual note modules ([#2363](https://github.com/0xMiden/miden-base/pull/2363)).
- [BREAKING] Added `miden::standards::note_tag` module for account target note tags ([#2366](https://github.com/0xMiden/miden-base/pull/2366)).
- [BREAKING] Refactored assets in the tx kernel and `miden::protocol` from one to two words, i.e. `ASSET` becomes `ASSET_KEY` and `ASSET_VALUE` ([#2396](https://github.com/0xMiden/miden-base/pull/2396), [#2410](https://github.com/0xMiden/miden-base/pull/2410)).

## 0.13.3 (2026-01-27)

Expand Down
9 changes: 5 additions & 4 deletions bin/bench-transaction/src/context_setups.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
use anyhow::Result;
use miden_protocol::Word;
use miden_protocol::asset::{Asset, FungibleAsset};
use miden_protocol::note::NoteType;
use miden_protocol::testing::account_id::ACCOUNT_ID_SENDER;
Expand Down Expand Up @@ -37,9 +36,10 @@ pub fn tx_create_single_p2id_note() -> Result<TransactionContext> {
# => [note_idx]

# move the asset to the note
push.{asset}
dup
push.{ASSET_VALUE}
push.{ASSET_KEY}
call.::miden::standards::wallets::basic::move_asset_to_note
dropw
# => [note_idx]

# truncate the stack
Expand All @@ -49,7 +49,8 @@ pub fn tx_create_single_p2id_note() -> Result<TransactionContext> {
RECIPIENT = output_note.recipient().digest(),
note_type = NoteType::Public as u8,
tag = output_note.metadata().tag(),
asset = Word::from(fungible_asset),
ASSET_KEY = fungible_asset.to_key_word(),
ASSET_VALUE = fungible_asset.to_value_word(),
);

let tx_script = CodeBuilder::default().compile_tx_script(tx_note_creation_script)?;
Expand Down
89 changes: 57 additions & 32 deletions crates/miden-agglayer/asm/bridge/bridge_out.masm
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,28 @@ const LOCAL_EXIT_TREE_SLOT=word("miden::agglayer::let")

const PUBLIC_NOTE=1
const BURN_NOTE_NUM_STORAGE_ITEMS=0
const BURN_ASSET_MEM_PTR=24
const BURN_ASSET_KEY_MEM_PTR=32
const BURN_ASSET_VALUE_MEM_PTR=36

const CREATE_BURN_NOTE_ASSET_KEY_LOC=0
const CREATE_BURN_NOTE_ASSET_VALUE_LOC=4

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not for this PR, but I do wonder if there are better ways to name these constants. I ran into the issue of defining memory locals for similar (w.r.t. function) constants in different procedures, only to find that names get unnecessarily long.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, agreed. My favorite thing would be constants that can be defined in a procedure body to make them scoped and accessible in only that body, e.g.:

@locals(9)
proc create_burn_note
    const ASSET_KEY_LOC = 0
    const ASSET_VALUE_LOC = ASSET_KEY_LOC + ASSET_VALUE_MEMORY_OFFSET

    loc_storew_be.ASSET_KEY_LOC
    swapw
    # => [ASSET_VALUE, ASSET_KEY]

    loc_storew_be.ASSET_VALUE_LOC
    dropw dupw
    # => [ASSET_KEY, ASSET_KEY]
end

Alternatively, we could define these in the @locals attribute:

@locals(
    ASSET_KEY = 0,
    ASSET_VALUE = ASSET_KEY + ASSET_VALUE_MEMORY_OFFSET,
)
proc create_burn_note
    loc_storew_be.ASSET_KEY
    # ...
end

The assembler could translate these into globally defined constants under the hood to not require a new MASM feature, though this may be a bit too much magic for an assembly language.

cc @bitwalker in case you have thoughts for how difficult this would be to add

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great suggestion!

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At this point we're just describing local variables 😅.

That said, with the type system available now, we could require declaring procedure locals with names + a type, and expand references to the names as base pointer + offset math, e.g. local FOO: array<felt, 8> in the procedure body defines a local named 'FOOwhich gets allocated 8 elements of memory, and something likeloc_load.FOOwould load the first element, whileloc_load.FOO+3` would load the fourth element.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bitwalker I think that sounds great!

const CREATE_BURN_NOTE_TAG_LOC=8

#! Computes the SERIAL_NUM of the outputted BURN note.
#!
#! The serial number is computed as hash(B2AGG_SERIAL_NUM, ASSET).
#! The serial number is computed as hash(B2AGG_SERIAL_NUM, ASSET_KEY).
Comment thread
mmagician marked this conversation as resolved.
Outdated
#!
#! Inputs: [ASSET]
#! Inputs: [ASSET_KEY]
#! Outputs: [SERIAL_NUM]
#!
#! Where:
#! - ASSET is the asset for which to compute the burn note serial number.
#! - ASSET_KEY is the vault key from which to compute the burn note serial number.
#! - SERIAL_NUM is the computed serial number for the BURN note.
#!
#! Invocation: exec
proc compute_burn_note_serial_num
exec.active_note::get_serial_number
# => [B2AGG_SERIAL_NUM, ASSET]
# => [B2AGG_SERIAL_NUM, ASSET_KEY]

exec.rpo256::merge
# => [SERIAL_NUM]
Expand All @@ -41,26 +46,32 @@ end
#! This procedure creates an output note that represents a burn operation for the given asset.
#! The note is configured with the appropriate recipient, tag, and execution hint.
#!
#! Inputs: [ASSET]
#! Inputs: [ASSET_KEY, ASSET_VALUE]
#! Outputs: []
#!
#! Where:
#! - ASSET is the asset to be burned.
#! - ASSET_KEY is the vault key of the asset to be burnt.
#! - ASSET_VALUE is the value of the asset to be burnt.
#!
#! Invocation: exec
@locals(8)
@locals(9)
proc create_burn_note
loc_storew_be.0 dupw
# => [ASSET, ASSET]
loc_storew_be.CREATE_BURN_NOTE_ASSET_KEY_LOC
swapw
# => [ASSET_VALUE, ASSET_KEY]

loc_storew_be.CREATE_BURN_NOTE_ASSET_VALUE_LOC
dropw dupw
# => [ASSET_KEY, ASSET_KEY]

movup.2 drop movup.2 drop
# => [faucet_id_prefix, faucet_id_suffix, ASSET]
# => [faucet_id_prefix, faucet_id_suffix, ASSET_KEY]

exec.note_tag::create_account_target
# => [network_faucet_tag, ASSET]
# => [network_faucet_tag, ASSET_KEY]

loc_store.5
# => [ASSET]
loc_store.CREATE_BURN_NOTE_TAG_LOC
Comment thread
PhilippGackstatter marked this conversation as resolved.
Outdated
# => [ASSET_KEY]

exec.compute_burn_note_serial_num
# => [SERIAL_NUM]
Expand All @@ -75,14 +86,17 @@ proc create_burn_note
# => [RECIPIENT]

push.PUBLIC_NOTE
loc_load.5
loc_load.CREATE_BURN_NOTE_TAG_LOC
# => [tag, note_type, RECIPIENT]

call.output_note::create
# => [note_idx]

movdn.4 loc_loadw_be.0
# => [ASSET, note_idx]
movdn.8 loc_loadw_be.CREATE_BURN_NOTE_ASSET_VALUE_LOC
# => [ASSET_VALUE, pad(4), note_idx]
Comment thread
mmagician marked this conversation as resolved.
Outdated

swapw loc_loadw_be.CREATE_BURN_NOTE_ASSET_KEY_LOC
# => [ASSET_KEY, ASSET_VALUE, note_idx]

exec.output_note::add_asset
# => []
Expand All @@ -97,18 +111,22 @@ end
#! - Storing the updated MMR root in account storage
#! - Creating a BURN note with the bridged out asset
#!
#! Inputs: [ASSET, dest_network, dest_address(5)]
#! Inputs: [ASSET_KEY, ASSET_VALUE, dest_network, dest_address(5)]
#! Outputs: []
#!
#! Where:
#! - ASSET is the asset to be bridged out.
#! - ASSET_KEY is the vault key of the asset to be bridged out.
#! - ASSET_VALUE is the value of the asset to be bridged out.
#! - dest_network is the u32 destination network/chain ID.
#! - dest_address(5) are 5 u32 values representing a 20-byte Ethereum address.
#!
#! Invocation: call
pub proc bridge_out
mem_storew_be.BURN_ASSET_MEM_PTR
# => [ASSET, dest_network, dest_address(5)]
mem_storew_be.BURN_ASSET_KEY_MEM_PTR
swapw
mem_storew_be.BURN_ASSET_VALUE_MEM_PTR
swapw
# => [ASSET_KEY, ASSET_VALUE, dest_network, dest_address(5)]

# @dev TODO: Look up asset faucet id in asset registry
# -> return scaling factor
Expand All @@ -120,27 +138,32 @@ pub proc bridge_out
# in preparation for keccak256 hashing

# keccak256 inputs:
# => [ASSET, dest_network, dest_address(5)]
# => [ASSET_KEY, ASSET_VALUE, dest_network, dest_address(5)]
# TODO we should convert Miden->Ethereum asset values, incl. amount conversion etc.

# TODO: make building bridge message a separate procedure
# TODO: match Agglayer addLeafBridge logic
# TODO: convert Miden asset amount to Ethereum amount
# Store ASSET as u32 limbs in memory starting at address 0

# Store ASSET_KEY as u32 limbs in memory starting at address 0
push.0 movdn.4 exec.word::store_word_u32s_le
# => [dest_network, dest_address(5)]
# => [ASSET_VALUE, dest_network, dest_address(5)]

# Store [dest_network, dest_address[0..3]] as u32 limbs in memory starting at address 8
# Store ASSET_VALUE as u32 limbs in memory starting at address 8
push.8 movdn.4 exec.word::store_word_u32s_le
# => [dest_address(2), 0, 0]
# => [dest_network, dest_address(5)]

# Store [dest_address[3..5], 0, 0] as u32 limbs in memory starting at address 16
# Store [dest_network, dest_address[0..3]] as u32 limbs in memory starting at address 16
push.16 movdn.4 exec.word::store_word_u32s_le
# => [dest_address(2), 0, 0]

# Store [dest_address[3..5], 0, 0] as u32 limbs in memory starting at address 24
push.24 movdn.4 exec.word::store_word_u32s_le
# => []

# 1 u32 = 4 bytes
# 10 u32 values = 40 bytes
push.40 push.0
# 14 u32 values = 56 bytes
push.56 push.0
# => [ptr, len_bytes]

exec.keccak256::hash_bytes
Expand All @@ -150,9 +173,11 @@ pub proc bridge_out
exec.local_exit_tree::add_asset_message
# => []

# creating BURN output note for ASSET
mem_loadw_be.BURN_ASSET_MEM_PTR
# => [ASSET]
# creating BURN output note for the asset
mem_loadw_be.BURN_ASSET_VALUE_MEM_PTR
swapw
mem_loadw_be.BURN_ASSET_KEY_MEM_PTR
# => [ASSET_KEY, ASSET_VALUE]

exec.create_burn_note
# => []
Expand Down
15 changes: 11 additions & 4 deletions crates/miden-agglayer/asm/note_scripts/B2AGG.masm
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use miden::agglayer::bridge_out
use miden::protocol::account_id
use miden::protocol::active_account
use miden::protocol::active_note
use ::miden::protocol::asset::ASSET_VALUE_MEMORY_OFFSET
use miden::protocol::note
use miden::standards::attachments::network_account_target
use miden::standards::wallets::basic->basic_wallet
Expand Down Expand Up @@ -77,7 +78,7 @@ begin
push.B2AGG_NOTE_NUM_STORAGE_ITEMS assert_eq.err=ERR_B2AGG_UNEXPECTED_NUMBER_OF_STORAGE_ITEMS drop
# => [pad(16)]

# Store note assets -> mem[0..4]
# Store note assets -> mem[0..8]
push.0 exec.active_note::get_assets
# => [num_assets, ptr, pad(16)]

Expand All @@ -89,11 +90,17 @@ begin
mem_loadw_be.12 swapw.2 mem_loadw_be.8 swapw
# => [EMPTY_WORD, dest_network, dest_address(5), pad(6)]

# Load ASSET onto the stack
mem_loadw_be.0
# => [ASSET, dest_network, dest_address(5), pad(6)]
# Load ASSET_VALUE onto the stack from 0 + ASSET_VALUE_MEMORY_OFFSET
mem_loadw_be.ASSET_VALUE_MEMORY_OFFSET
# => [ASSET_VALUE, dest_network, dest_address(5), pad(6)]

padw mem_loadw_be.0
# => [ASSET_KEY, ASSET_VALUE, dest_network, dest_address(5), pad(6)]

call.bridge_out::bridge_out
# => [pad(20)]

dropw
# => [pad(16)]
end
# => [pad(16)]
Expand Down
Loading