0xMiden / 0xMiden/tutorials

docs(rust): add an end-to-end NFT mint and transfer recipe

未关闭
#245 0 条评论 0 个 reaction 已指派 1 人 已被 @BrianSeong99 认领 在 GitHub 查看
主要语言
Rust
星标
18
派生
34
PR 合并指标
30 天内没有已合并 PR

描述

## Goal

Add a focused Rust recipe showing the complete v0.16 NFT flow:

1. Create authenticated Alice and Bob wallets.
2. Create a user `NonFungibleFaucet`.
3. Compute an NFT asset commitment from metadata and a salt.
4. Mint the NFT to Alice through the production `MintNote` / `MintNoteStorage` flow.
5. Have Alice consume and transfer the NFT to Bob.
6. Have Bob consume it and verify final ownership.

## Dependency

Blocked until the tutorials Rust client is migrated from v0.15 to v0.16. Philipp is working on that migration. Implement this from updated `main` after it lands; do not introduce a second temporary dependency stack.

## Deliverables

- A concise page under `docs/src/rust-client/`.
- A matching runnable binary under `rust-client/src/bin/`.
- Registration in `docs/src/lib.rs` and the Rust tutorial runner.
- The documentation and runnable example use the same flow.
- The recipe explains that `compute_asset_commitment(metadata, salt)` is an off-chain convention. The faucet does not validate the metadata, salt, or knowledge of the preimage.

## Acceptance criteria

- [ ] Creates a non-fungible faucet using the v0.16 standard APIs.
- [ ] Mints one NFT to Alice using `MintNote` / `MintNoteStorage`.
- [ ] Alice consumes and transfers the NFT to Bob using `PaymentNoteDescription` and `build_pay_to_id`.
- [ ] Bob consumes the transfer note.
- [ ] The example verifies Alice no longer owns the NFT and Bob does.
- [ ] Rust checks and documentation tests pass.
- [ ] `yarn tutorials --rust=nft_mint_transfer` passes.
- [ ] The ingested page renders and the Docs build passes.

## Out of scope

Fees, burning, Web/React SDKs, marketplace behavior, and metadata hosting. Reuse the canonical v0.16 network and fee bootstrap established by the migration without teaching fees in this recipe.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。