Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GM_BASE_ASSET_ID #561

Merged
merged 2 commits into from
Mar 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion src/fuel-vm/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ Every time the VM runs, a single monolithic memory of size `VM_MAX_RAM` bytes is
To initialize the VM, the following is pushed on the stack sequentially:

1. Transaction hash (`byte[32]`, word-aligned), computed as defined [here](../identifiers/transaction-id.md).
1. Base asset ID (`byte[32]`, word-aligned)
1. [`MAX_INPUTS`](../tx-format/consensus_parameters.md) pairs of `(asset_id: byte[32], balance: uint64)`, of:
1. For [predicate estimation](#predicate-estimation) and [predicate verification](#predicate-verification), zeroes.
1. For [script execution](#script-execution), the free balance for each asset ID seen in the transaction's inputs, ordered in ascending order. If there are fewer than `MAX_INPUTS` asset IDs, the pair has a value of zero.
Expand All @@ -89,7 +90,7 @@ To initialize the VM, the following is pushed on the stack sequentially:

Then the following registers are initialized (without explicit initialization, all registers are initialized to zero):

1. `$ssp = 32 + MAX_INPUTS*(32+8) + size(tx))`: the writable stack area starts immediately after the serialized transaction in memory (see above).
1. `$ssp = 32 + 32 + MAX_INPUTS*(32+8) + size(tx))`: the writable stack area starts immediately after the serialized transaction in memory (see above).
1. `$sp = $ssp`: writable stack area is empty to start.
1. `$hp = VM_MAX_RAM`: the heap area begins at the top and is empty to start.

Expand Down
15 changes: 8 additions & 7 deletions src/fuel-vm/instruction-set.md
Original file line number Diff line number Diff line change
Expand Up @@ -2415,13 +2415,14 @@ Panic if:

Read metadata from memory. A convenience instruction to avoid manually extracting metadata.

| name | value | description |
|------------------------------|-----------|---------------------------------|
| `GM_IS_CALLER_EXTERNAL` | `0x00001` | Get if caller is external. |
| `GM_GET_CALLER` | `0x00002` | Get caller's contract ID. |
| `GM_GET_VERIFYING_PREDICATE` | `0x00003` | Get index of current predicate. |
| `GM_GET_CHAIN_ID` | `0x00004` | Get the value of `CHAIN_ID` |
| `GM_GET_TX_START` | `0x00005` | Get transaction start address |
| name | value | description |
|------------------------------|-----------|----------------------------------|
| `GM_IS_CALLER_EXTERNAL` | `0x00001` | Get if caller is external. |
| `GM_GET_CALLER` | `0x00002` | Get caller's contract ID. |
| `GM_GET_VERIFYING_PREDICATE` | `0x00003` | Get index of current predicate. |
| `GM_GET_CHAIN_ID` | `0x00004` | Get the value of `CHAIN_ID` |
| `GM_TX_START` | `0x00005` | Transaction start memory address |
| `GM_BASE_ASSET_ID` | `0x00006` | Base asset ID |

If `imm == GM_IS_CALLER_EXTERNAL`:

Expand Down
Loading