Skip to content
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
46 changes: 21 additions & 25 deletions docs/src/web-client/mint_consume_create_tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,15 @@ Add this to the end of your `createMintConsume` function in `lib/createMintConsu
// 4. Mint tokens from the faucet to Alice
await client.syncState();

console.log("Minting 1000 tokens to Alice...");
console.log("Minting tokens to Alice...");
const mintTxRequest = client.newMintTransactionRequest(
alice.id(), // Target account (who receives the tokens)
faucet.id(), // Faucet account (who mints the tokens)
NoteType.Public, // Note visibility (public = on-chain)
NoteType.Public, // Note visibility (public = onchain)
BigInt(1000), // Amount to mint (in base units)
);

const mintTx = await client.newTransaction(faucet.id(), mintTxRequest);
await client.submitTransaction(mintTx);
await client.submitNewTransaction(faucet.id(), mintTxRequest);

// Wait for the transaction to be processed
console.log("Waiting 10 seconds for transaction confirmation...");
Expand Down Expand Up @@ -92,10 +91,10 @@ Now let's consume the notes to add the tokens to Alice's account balance:

```ts
// 6. Consume the notes to add tokens to Alice's balance
console.log("Consuming notes...");
const consumeTxRequest = client.newConsumeTransactionRequest(noteIds);
const consumeTx = await client.newTransaction(alice.id(), consumeTxRequest);
await client.submitTransaction(consumeTx);
console.log("Consuming minted notes...");
const consumeTxRequest = client.newConsumeTransactionRequest(mintedNoteIds);

await client.submitNewTransaction(alice.id(), consumeTxRequest);

await client.syncState();
console.log("Notes consumed.");
Expand All @@ -117,8 +116,8 @@ import { NoteType } from "@demox-labs/miden-sdk";

// 7. Send tokens from Alice to Bob
const bobAccountId = "0x599a54603f0cf9000000ed7a11e379";
console.log("Sending 100 tokens to Bob...");

console.log("Sending tokens to Bob's account...");
const sendTxRequest = client.newSendTransactionRequest(
alice.id(), // Sender account
AccountId.fromHex(bobAccountId), // Recipient account
Expand All @@ -127,10 +126,9 @@ const sendTxRequest = client.newSendTransactionRequest(
BigInt(100), // Amount to send
);

const sendTx = await client.newTransaction(alice.id(), sendTxRequest);
await client.submitTransaction(sendTx);
await client.submitNewTransaction(alice.id(), sendTxRequest);

console.log("Tokens sent successfully!");
console.log('Tokens sent successfully!');
```

<!-- prettier-ignore-end -->
Expand All @@ -149,6 +147,7 @@ Here's the complete `lib/createMintConsume.ts` file:

```ts
// lib/createMintConsume.ts
// lib/createMintConsume.ts
export async function createMintConsume(): Promise<void> {
if (typeof window === "undefined") {
console.warn("webClient() can only run in the browser");
Expand All @@ -169,7 +168,7 @@ export async function createMintConsume(): Promise<void> {

// 2. Create Alice’s account
console.log("Creating account for Alice…");
const alice = await client.newWallet(AccountStorageMode.public(), true);
const alice = await client.newWallet(AccountStorageMode.public(), true, 0);
console.log("Alice ID:", alice.id().toString());

// 3. Deploy faucet
Expand All @@ -180,6 +179,7 @@ export async function createMintConsume(): Promise<void> {
"MID",
8,
BigInt(1_000_000),
0,
);
console.log("Faucet ID:", faucet.id().toString());

Expand All @@ -189,15 +189,14 @@ export async function createMintConsume(): Promise<void> {
await client.syncState();

console.log("Minting tokens to Alice...");
let mintTxRequest = client.newMintTransactionRequest(
const mintTxRequest = client.newMintTransactionRequest(
alice.id(),
faucet.id(),
NoteType.Public,
BigInt(1000),
);

let txResult = await client.newTransaction(faucet.id(), mintTxRequest);
await client.submitTransaction(txResult);
await client.submitNewTransaction(faucet.id(), mintTxRequest);

console.log("Waiting 10 seconds for transaction confirmation...");
await new Promise((resolve) => setTimeout(resolve, 10000));
Expand All @@ -212,29 +211,26 @@ export async function createMintConsume(): Promise<void> {

// 6. Consume minted notes
console.log("Consuming minted notes...");
let consumeTxRequest = client.newConsumeTransactionRequest(mintedNoteIds);
const consumeTxRequest = client.newConsumeTransactionRequest(mintedNoteIds);

let txResult_2 = await client.newTransaction(alice.id(), consumeTxRequest);

await client.submitTransaction(txResult_2);
await client.submitNewTransaction(alice.id(), consumeTxRequest);

await client.syncState();
console.log("Notes consumed.");

// 7. Send tokens to Bob
const bobAccountId = "0x599a54603f0cf9000000ed7a11e379";
console.log("Sending tokens to Bob's account...");
let sendTxRequest = client.newSendTransactionRequest(
const sendTxRequest = client.newSendTransactionRequest(
alice.id(),
AccountId.fromHex(bobAccountId),
faucet.id(),
NoteType.Public,
BigInt(100),
);

let txResult_3 = await client.newTransaction(alice.id(), sendTxRequest);

await client.submitTransaction(txResult_3);
await client.submitNewTransaction(alice.id(), sendTxRequest);
console.log("Tokens sent successfully!");
}
```

Expand Down
22 changes: 9 additions & 13 deletions web-client/lib/createMintConsume.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export async function createMintConsume(): Promise<void> {

// 2. Create Alice’s account
console.log("Creating account for Alice…");
const alice = await client.newWallet(AccountStorageMode.public(), true);
const alice = await client.newWallet(AccountStorageMode.public(), true, 0);
console.log("Alice ID:", alice.id().toString());

// 3. Deploy faucet
Expand All @@ -30,6 +30,7 @@ export async function createMintConsume(): Promise<void> {
"MID",
8,
BigInt(1_000_000),
0,
);
console.log("Faucet ID:", faucet.id().toString());

Expand All @@ -39,16 +40,14 @@ export async function createMintConsume(): Promise<void> {
await client.syncState();

console.log("Minting tokens to Alice...");
let mintTxRequest = client.newMintTransactionRequest(
const mintTxRequest = client.newMintTransactionRequest(
alice.id(),
faucet.id(),
NoteType.Public,
BigInt(1000),
);

let txResult = await client.newTransaction(faucet.id(), mintTxRequest);

await client.submitTransaction(txResult);
await client.submitNewTransaction(faucet.id(), mintTxRequest);

console.log("Waiting 10 seconds for transaction confirmation...");
await new Promise((resolve) => setTimeout(resolve, 10000));
Expand All @@ -63,27 +62,24 @@ export async function createMintConsume(): Promise<void> {

// 6. Consume minted notes
console.log("Consuming minted notes...");
let consumeTxRequest = client.newConsumeTransactionRequest(mintedNoteIds);

let txResult_2 = await client.newTransaction(alice.id(), consumeTxRequest);
const consumeTxRequest = client.newConsumeTransactionRequest(mintedNoteIds);

await client.submitTransaction(txResult_2);
await client.submitNewTransaction(alice.id(), consumeTxRequest);

await client.syncState();
console.log("Notes consumed.");

// 7. Send tokens to Bob
const bobAccountId = "0x599a54603f0cf9000000ed7a11e379";
console.log("Sending tokens to Bob's account...");
let sendTxRequest = client.newSendTransactionRequest(
const sendTxRequest = client.newSendTransactionRequest(
alice.id(),
AccountId.fromHex(bobAccountId),
faucet.id(),
NoteType.Public,
BigInt(100),
);

let txResult_3 = await client.newTransaction(alice.id(), sendTxRequest);

await client.submitTransaction(txResult_3);
await client.submitNewTransaction(alice.id(), sendTxRequest);
console.log("Tokens sent successfully!");
}