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
120 changes: 60 additions & 60 deletions docs/src/web-client/creating_multiple_notes_tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,17 +131,9 @@ export async function multiSendWithDelegatedProver(): Promise<void> {
AccountId,
NoteType,
TransactionProver,
NoteInputs,
Note,
NoteAssets,
NoteRecipient,
Word,
OutputNotesArray,
NoteExecutionHint,
NoteTag,
NoteExecutionMode,
NoteMetadata,
FeltArray,
OutputNoteArray,
Felt,
FungibleAsset,
TransactionRequestBuilder,
Expand All @@ -166,7 +158,7 @@ Add the code snippet below to the `multiSendWithDelegatedProver` function. This
```ts
// ── Creating new 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 accout ID:", alice.id().toString());

// ── Creating new faucet ──────────────────────────────────────────────────────
Expand All @@ -176,40 +168,51 @@ const faucet = await client.newFaucet(
"MID",
8,
BigInt(1_000_000),
0,
);
console.log("Faucet ID:", faucet.id().toString());

// ── mint 10 000 MID to Alice ──────────────────────────────────────────────────────
await client.submitTransaction(
await client.newTransaction(
{
const txResult = await client.executeTransaction(
faucet.id(),
client.newMintTransactionRequest(
alice.id(),
faucet.id(),
NoteType.Public,
BigInt(10_000),
),
),
prover,
);
);
const proven = await client.proveTransaction(txResult, prover);
const submissionHeight = await client.submitProvenTransaction(
proven,
txResult,
);
await client.applyTransaction(txResult, submissionHeight);

console.log("waiting for settlement");
await new Promise((r) => setTimeout(r, 7_000));
await client.syncState();
console.log("waiting for settlement");
await new Promise((r) => setTimeout(r, 7_000));
await client.syncState();
}

// ── consume the freshly minted notes ──────────────────────────────────────────────
const noteIds = (await client.getConsumableNotes(alice.id())).map((rec) =>
rec.inputNoteRecord().id().toString(),
);

await client.submitTransaction(
await client.newTransaction(
{
const txResult = await client.executeTransaction(
alice.id(),
client.newConsumeTransactionRequest(noteIds),
),
prover,
);
await client.syncState();
);
const proven = await client.proveTransaction(txResult, prover);
await client.syncState();
const submissionHeight = await client.submitProvenTransaction(
proven,
txResult,
);
await client.applyTransaction(txResult, submissionHeight);
}
```

## Step 5 — Build and Create P2ID notes
Expand All @@ -228,7 +231,7 @@ const assets = new NoteAssets([new FungibleAsset(faucet.id(), BigInt(100))]);

const p2idNotes = recipientAddresses.map((addr) => {
const receiverAccountId = AccountId.fromHex(addr);
let note = Note.createP2IDNote(
const note = Note.createP2IDNote(
alice.id(),
receiverAccountId,
assets,
Expand All @@ -240,16 +243,13 @@ const p2idNotes = recipientAddresses.map((addr) => {
});

// ── create all P2ID notes ───────────────────────────────────────────────────────────────
let transaction = await client.newTransaction(
await client.submitNewTransaction(
alice.id(),
new TransactionRequestBuilder()
.withOwnOutputNotes(new OutputNotesArray(p2idNotes))
.withOwnOutputNotes(new OutputNoteArray(p2idNotes))
.build(),
);

// ── submit tx ───────────────────────────────────────────────────────────────
await client.submitTransaction(transaction, prover);

console.log("All notes created ✅");
```

Expand All @@ -274,17 +274,9 @@ export async function multiSendWithDelegatedProver(): Promise<void> {
AccountId,
NoteType,
TransactionProver,
NoteInputs,
Note,
NoteAssets,
NoteRecipient,
Word,
OutputNotesArray,
NoteExecutionHint,
NoteTag,
NoteExecutionMode,
NoteMetadata,
FeltArray,
OutputNoteArray,
Felt,
FungibleAsset,
TransactionRequestBuilder,
Expand All @@ -302,7 +294,7 @@ export async function multiSendWithDelegatedProver(): Promise<void> {

// ── Creating new 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 accout ID:", alice.id().toString());

// ── Creating new faucet ──────────────────────────────────────────────────────
Expand All @@ -312,40 +304,51 @@ export async function multiSendWithDelegatedProver(): Promise<void> {
"MID",
8,
BigInt(1_000_000),
0,
);
console.log("Faucet ID:", faucet.id().toString());

// ── mint 10 000 MID to Alice ──────────────────────────────────────────────────────
await client.submitTransaction(
await client.newTransaction(
{
const txResult = await client.executeTransaction(
faucet.id(),
client.newMintTransactionRequest(
alice.id(),
faucet.id(),
NoteType.Public,
BigInt(10_000),
),
),
prover,
);
);
const proven = await client.proveTransaction(txResult, prover);
const submissionHeight = await client.submitProvenTransaction(
proven,
txResult,
);
await client.applyTransaction(txResult, submissionHeight);

console.log("waiting for settlement");
await new Promise((r) => setTimeout(r, 7_000));
await client.syncState();
console.log("waiting for settlement");
await new Promise((r) => setTimeout(r, 7_000));
await client.syncState();
}

// ── consume the freshly minted notes ──────────────────────────────────────────────
const noteIds = (await client.getConsumableNotes(alice.id())).map((rec) =>
rec.inputNoteRecord().id().toString(),
);

await client.submitTransaction(
await client.newTransaction(
{
const txResult = await client.executeTransaction(
alice.id(),
client.newConsumeTransactionRequest(noteIds),
),
prover,
);
await client.syncState();
);
const proven = await client.proveTransaction(txResult, prover);
await client.syncState();
const submissionHeight = await client.submitProvenTransaction(
proven,
txResult,
);
await client.applyTransaction(txResult, submissionHeight);
}

// ── build 3 P2ID notes (100 MID each) ─────────────────────────────────────────────
const recipientAddresses = [
Expand All @@ -358,7 +361,7 @@ export async function multiSendWithDelegatedProver(): Promise<void> {

const p2idNotes = recipientAddresses.map((addr) => {
const receiverAccountId = AccountId.fromHex(addr);
let note = Note.createP2IDNote(
const note = Note.createP2IDNote(
alice.id(),
receiverAccountId,
assets,
Expand All @@ -370,16 +373,13 @@ export async function multiSendWithDelegatedProver(): Promise<void> {
});

// ── create all P2ID notes ───────────────────────────────────────────────────────────────
let transaction = await client.newTransaction(
await client.submitNewTransaction(
alice.id(),
new TransactionRequestBuilder()
.withOwnOutputNotes(new OutputNotesArray(p2idNotes))
.withOwnOutputNotes(new OutputNoteArray(p2idNotes))
.build(),
);

// ── submit tx ───────────────────────────────────────────────────────────────
await client.submitTransaction(transaction, prover);

console.log("All notes created ✅");
}
```
Expand Down
Loading