0xMiden / 0xMiden/tutorials

docs/fpi-bug: Miden Bank tutorial's "get_balance" and "deposit" method names collide with core library on v0.15.3

Open
#237 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
18
Forks
34
PR merge metrics
No merged PRs in 30d

Description

### Documentation Issue / Namespace Collision
While building the official **Miden Bank** tutorial using the latest `mainnet` toolchain (`v0.15.3` and `miden-base v0.13.1`), I encountered a namespace collision and linker errors when compiling the `deposit-note` (or other cross-component FPI notes).

The original tutorial uses:
1. `deposit` method on the Bank account.
2. `get_balance` method on the Bank account.

### The Conflict
On v0.15.3, the `#[account(bank_account::BankAccount)]` macro expands into FPI bindings. However:
1. The `deposit` function name collides with the built-in standard library's `BasicWallet` `deposit` method.
2. The `get_balance` function name collides with the built-in `ActiveAccount`'s `get_balance` method, throwing the following error during `wasm-component-ld` linking:
`error: dependency function get-balance collides with the built-in ActiveAccount method get_balance; the generated wrapper method would shadow it. Rename the dependency function`

### The Solution
To successfully compile the Miden Bank tutorial on the new mainnet toolchain:
- Rename the `deposit` method to **`bank_deposit`** (or another unique name) in both the contract and the notes.
- Rename the `get_balance` method to **`check_balance`** in both the contract and the notes.

I suggest updating the official tutorial repository and documentation to reflect these v0.15.3 namespace rules.

### Reproduction Repo
I have compiled, tested, and resolved this in my local workspace here:
🔗 https://github.com/anaraydinli55/miden-testnet-project

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.