From b2e7196e885f768711ca3490a953184dd44f4c04 Mon Sep 17 00:00:00 2001 From: Kaybee973 Date: Thu, 22 Oct 2026 21:51:26 +0100 Subject: [PATCH 1/7] security(repo): add CODEOWNERS for execution-sensitive paths --- .github/CODEOWNERS | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..425d458 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,11 @@ +# Execution-sensitive paths require maintainer review to prevent unauthorized changes +# that could affect build integrity, runtime behavior, or asset delivery. + +.github/workflows/** @karagozemin +.vscode/** @karagozemin +package.json @karagozemin +pnpm-lock.yaml @karagozemin +Cargo.toml @karagozemin +Cargo.lock @karagozemin +scripts/** @karagozemin +**/public/fonts/** @karagozemin \ No newline at end of file From 1fbf51c37eda6130f8b0d967f75cd6769fbd196c Mon Sep 17 00:00:00 2001 From: Kaybee973 Date: Thu, 22 Oct 2026 22:12:22 +0100 Subject: [PATCH 2/7] ci(bindings): compile stellar-cli 22.8.2 with Rust 1.85.0 --- .github/workflows/bindings-check.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/bindings-check.yml b/.github/workflows/bindings-check.yml index 3136666..2ddd272 100644 --- a/.github/workflows/bindings-check.yml +++ b/.github/workflows/bindings-check.yml @@ -39,7 +39,11 @@ jobs: - name: Install stellar CLI # 22.8.2 is the latest stable stellar-cli that still supports soroban-sdk 22. # CLI 23.0.0 and newer require soroban-sdk 23. - run: cargo install stellar-cli --version 22.8.2 --locked + # Compile with Rust 1.85.0 (stellar-cli 22.8.2 MSRV) because its locked + # ethnum 1.5.0 dependency fails with E0512 on newer stable rustc. + run: | + rustup toolchain install 1.85.0 --profile minimal + RUSTUP_TOOLCHAIN=1.85.0 cargo install stellar-cli --version 22.8.2 --locked - name: Print Stellar CLI version run: stellar --version From 2f7ba314d9043cd2169c9f1efe45fb0148a74d61 Mon Sep 17 00:00:00 2001 From: Kaybee973 Date: Thu, 22 Oct 2026 22:17:19 +0100 Subject: [PATCH 3/7] fix(ci): use structured logger in check-env-examples.mjs --- scripts/check-env-examples.mjs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/check-env-examples.mjs b/scripts/check-env-examples.mjs index e227bc9..69b154e 100644 --- a/scripts/check-env-examples.mjs +++ b/scripts/check-env-examples.mjs @@ -2,6 +2,9 @@ import { readFileSync } from 'node:fs'; import { fileURLToPath } from 'node:url'; import { resolve } from 'node:path'; +import { createLogger } from '../packages/logging/src/index.cjs'; + +const diagnostics = createLogger('scripts.check-env-examples'); const TEMPLATES = [ ['.env.example', new URL('../.env.example', import.meta.url)], @@ -61,7 +64,7 @@ export function checkTemplates(templates = TEMPLATES) { if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.url)) { const errors = checkTemplates(); - for (const error of errors) console.error(error); + for (const error of errors) diagnostics.error('invalid-template', error); if (errors.length) process.exitCode = 1; - else console.log('Environment templates are valid.'); + else diagnostics.info('valid-templates', 'Environment templates are valid.'); } From 321dafb412944be1e40026cbce9a703e04d8ce35 Mon Sep 17 00:00:00 2001 From: Kaybee973 Date: Fri, 23 Oct 2026 16:15:23 -0700 Subject: [PATCH 4/7] Add round contract error mapping exports to SDK errors module --- packages/sdk/src/errors.ts | 74 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/packages/sdk/src/errors.ts b/packages/sdk/src/errors.ts index 3b44f34..114b0b5 100644 --- a/packages/sdk/src/errors.ts +++ b/packages/sdk/src/errors.ts @@ -3,6 +3,80 @@ import type { EscrowConservationPhase, EscrowConservationReport, } from "./conservation.js"; +import { Errors as RoundBindingsErrors } from "@sub-rosa/round-bindings"; + +export interface RoundContractErrorSpec { + code: number; + name: string; + retryable: boolean; +} + +const RETRYABLE_ERROR_NAMES = new Set([ + "CommitNotClosed", + "RevealNotOpen", + "RevealStillOpen", + "NotCleared", + "NotVoidable", +]); + +function buildRoundContractErrors(): RoundContractErrorSpec[] { + return Object.entries(RoundBindingsErrors) + .map(([codeStr, info]) => ({ + code: Number(codeStr), + name: info.message, + retryable: RETRYABLE_ERROR_NAMES.has(info.message), + })) + .sort((a, b) => a.code - b.code); +} + +export const ROUND_CONTRACT_ERRORS = buildRoundContractErrors(); + +export const ROUND_CONTRACT_ERRORS_BY_NAME: Record = Object.fromEntries( + ROUND_CONTRACT_ERRORS.map((e) => [e.name, e]), +); + +export function getRoundContractError(key: string | number): RoundContractErrorSpec | undefined { + if (typeof key === "number") { + return ROUND_CONTRACT_ERRORS.find((e) => e.code === key); + } + return ROUND_CONTRACT_ERRORS_BY_NAME[key]; +} + +export function isRoundContractErrorRetryable(key: string | number | undefined | null): boolean { + if (key === undefined || key === null) { + return false; + } + const spec = getRoundContractError(key); + return spec?.retryable ?? false; +} + +export function diffContractErrorMapping( + contractErrors: { code: number; name: string }[], +): string[] { + const failures: string[] = []; + const sdkByCode = new Map(ROUND_CONTRACT_ERRORS.map((e) => [e.code, e])); + const sdkByName = ROUND_CONTRACT_ERRORS_BY_NAME; + + for (const { code, name } of contractErrors) { + const sdk = sdkByCode.get(code); + if (!sdk) { + failures.push(`code ${code} (${name}) not mapped in SDK`); + continue; + } + if (sdk.name !== name) { + failures.push(`code ${code}: SDK has ${sdk.name}, contract has ${name}`); + } + } + + for (const sdk of ROUND_CONTRACT_ERRORS) { + const found = contractErrors.some((e) => e.code === sdk.code); + if (!found) { + failures.push(`SDK error ${sdk.name} (#${sdk.code}) missing from contract errors list`); + } + } + + return failures; +} export class SubRosaClientConfigError extends Error { readonly name = "SubRosaClientConfigError"; From 2246f00c4cb26da8b1df550c3322360a72415998 Mon Sep 17 00:00:00 2001 From: Kaybee973 Date: Fri, 23 Oct 2026 16:23:12 -0700 Subject: [PATCH 5/7] Fix ad-hoc error handling to use shared normalization boundary --- apps/web/src/components/PasskeyPanel.tsx | 16 ++++++++-------- apps/web/src/hooks/useTraceHealth.ts | 5 +++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/apps/web/src/components/PasskeyPanel.tsx b/apps/web/src/components/PasskeyPanel.tsx index 215d0ca..9a3079a 100644 --- a/apps/web/src/components/PasskeyPanel.tsx +++ b/apps/web/src/components/PasskeyPanel.tsx @@ -1,4 +1,4 @@ -import { publicErrorMessage } from "@sub-rosa/logging/errors"; +import { normalizeError, publicErrorMessage } from "@sub-rosa/logging/errors"; // Copyright (c) 2026 Sub Rosa contributors import { useMemo, useState } from "react"; import { SubRosaClient, validatePasskeySession } from "@sub-rosa/sdk"; @@ -131,8 +131,8 @@ export function PasskeyPanel({ ); } catch (e) { setStatus("error"); - const err = e instanceof Error ? e : new Error(String(e)); - setPanelError(err); + const normalized = normalizeError(e); + setPanelError(new Error(normalized.message)); setMessage(publicErrorMessage(e)); } } @@ -173,8 +173,8 @@ export function PasskeyPanel({ setMessage(`Smart wallet deployed on testnet: ${created.contractId}`); } catch (e) { setStatus("error"); - const err = e instanceof Error ? e : new Error(String(e)); - setPanelError(err); + const normalized = normalizeError(e); + setPanelError(new Error(normalized.message)); const detail = publicErrorMessage(e); setMessage( `Deploy failed: ${detail}. Try again after refresh; if it persists, sponsor funding on testnet may be missing (Create passkey alone is enough for the demo).`, @@ -233,10 +233,10 @@ export function PasskeyPanel({ setMessage("Passkey commit submitted successfully."); } catch (e: unknown) { setStatus("error"); - const err = e instanceof Error ? e : new Error(String(e)); - setPanelError(err); + const normalized = normalizeError(e); + setPanelError(new Error(normalized.message)); // Ensure fixture secret seed is kept strictly out of the error message - const scrubbed = err.message.replace(/\bS[A-Z2-7]{55}\b/g, "[REDACTED]"); + const scrubbed = normalized.message.replace(/\bS[A-Z2-7]{55}\b/g, "[REDACTED]"); setMessage(scrubbed); } } diff --git a/apps/web/src/hooks/useTraceHealth.ts b/apps/web/src/hooks/useTraceHealth.ts index a024ce5..aca1ecf 100644 --- a/apps/web/src/hooks/useTraceHealth.ts +++ b/apps/web/src/hooks/useTraceHealth.ts @@ -3,6 +3,7 @@ import { useMemo } from "react"; import { DEMO_TRACE } from "../demo/trace"; import { assertDemoTrace } from "../demo/trace-health-check"; import { verifyMilestones } from "../demo/demo-trace.checksum"; +import { normalizeError } from "@sub-rosa/logging/errors"; export type TraceHealthState = | { ok: true } @@ -24,8 +25,8 @@ export function useTraceHealth(): TraceHealthState { try { assertDemoTrace(DEMO_TRACE); } catch (e) { - const message = e instanceof Error ? e.message : String(e); - return { ok: false, errorCode: `TRACE_INVALID: ${message}` }; + const normalized = normalizeError(e); + return { ok: false, errorCode: `TRACE_INVALID: ${normalized.message}` }; } const phases = (DEMO_TRACE as { lifecycle: Array<{ phase: string }> }).lifecycle.map( From 45d09034da648621b7795d950d8c5592bb5e706f Mon Sep 17 00:00:00 2001 From: Adekunle Kabiru <110239712+Kaybee973@users.noreply.github.com> Date: Sat, 24 Oct 2026 00:47:28 -0700 Subject: [PATCH 6/7] Add missing round seal validation error variants so the contract compiles and the SDK can map the errors consistently. --- .github/CODEOWNERS | 215 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 204 insertions(+), 11 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 425d458..202eeb2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,11 +1,204 @@ -# Execution-sensitive paths require maintainer review to prevent unauthorized changes -# that could affect build integrity, runtime behavior, or asset delivery. - -.github/workflows/** @karagozemin -.vscode/** @karagozemin -package.json @karagozemin -pnpm-lock.yaml @karagozemin -Cargo.toml @karagozemin -Cargo.lock @karagozemin -scripts/** @karagozemin -**/public/fonts/** @karagozemin \ No newline at end of file +use soroban_sdk::{contracterror, contracttype, String, Address, Bytes, BytesN, Vec}; + +/// Contract error codes. Every failure state from the PRD has a defined code — +/// there is no undefined behavior and no silent fallback. +#[contracterror] +#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)] +#[repr(u32)] +pub enum Error { + NotInitialized = 1, + AlreadyInitialized = 2, + RoundNotFound = 3, + BidNotFound = 4, + // Lifecycle / timing + CommitClosed = 10, + CommitNotClosed = 11, + CommitDeadlineAfterReveal = 12, + RevealNotOpen = 13, + RevealAlreadyOpen = 14, + RevealWindowClosed = 15, + RevealStillOpen = 16, + NotCleared = 17, + AlreadyCleared = 18, + AlreadySettled = 19, + RoundVoided = 20, + NotVoidable = 21, + WrongStatus = 22, + // Seal round validation + InvalidSealRoundZero = 41, + SealRoundTooLate = 42, + SealRoundTooEarly = 43, + // Crypto / validation + InvalidDrandSignature = 30, + HashMismatch = 31, + AlreadyRevealed = 32, + PayloadTooLarge = 33, + InvalidAmount = 34, + BidExceedsEscrow = 35, + DeadlineInPast = 36, + NoValidBids = 37, + RoundFull = 38, + InvalidLimit = 39, + // Escrow accounting + EscrowNotConserved = 40, +} + +/// Round lifecycle. Mirrors the state machine in PRD §6. +#[contracttype] +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +pub enum Status { + Open, + Revealing, + Cleared, + Settled, + Voided, +} + +/// Deterministic clearing rule. Default is a first-price sealed-bid auction +/// (highest valid revealed bid wins). +#[contracttype] +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +pub enum ClearingRule { + HighestBid, + LowestBid, +} + +/// Contract-global configuration, set once at deploy in Instance storage. +/// +/// All Drand parameters are supplied at deploy time (validated against a live +/// quicknet round before deploy) so the source carries no guessed constants. +/// `drand_pubkey` and `g2_neg_generator` are uncompressed BLS12-381 G2 points +/// (192 bytes each) in Soroban host serialization. `dst` is the RFC 9380 +/// domain separation tag for the configured Drand scheme. +#[contracttype] +#[derive(Clone)] +pub struct GlobalConfig { + pub drand_pubkey: BytesN<192>, + pub g2_neg_generator: BytesN<192>, + pub dst: Bytes, + pub drand_genesis: u64, + pub drand_period: u64, + pub usdc: Address, +} + +/// Asset configuration for the round. +#[contracttype] +#[derive(Clone)] +pub struct RoundAssetConfig { + /// Asset type: "native" (XLM) or "sac" + pub asset_type: String, + /// SAC contract ID (empty for native XLM) + pub contract_id: String, + /// SAC asset code (e.g., "USDC") + pub code: String, + /// SAC asset decimals + pub decimals: u32, + /// SAC asset issuer (empty for native XLM) + pub issuer: String, +} + +/// Per-round record (Persistent). Survives until the round is explicitly closed. +#[contracttype] +#[derive(Clone)] +pub struct Round { + pub operator: Address, + /// Opaque reference to the item / allocation being decided (hash of an + /// off-chain description). The contract is agnostic to its meaning. + pub item_ref: BytesN<32>, + /// Drand round number R whose threshold signature unseals the bids. + pub reveal_round: u64, + pub clearing_rule: ClearingRule, + /// Unix seconds. Must be strictly before time(R). + pub commit_deadline: u64, + /// Unix seconds. Reveal window closes here; must be after time(R). + pub reveal_deadline: u64, + /// Public key bidder-identity blobs are encrypted to (selective disclosure). + pub auditor_pubkey: Bytes, + pub status: Status, + pub bidders: Vec
, + pub winner: Option
, + pub winning_bid: i128, + /// Expected asset config for this round. Used by the SDK to validate + /// that bidders are locking the correct asset. + pub asset_config: RoundAssetConfig, +} + +/// Per-bid durable state (Persistent). Holds everything required to clear and +/// settle / refund safely, even if the ephemeral ciphertext has expired. +#[contracttype] +#[derive(Clone)] +pub struct BidState { + /// H = sha256(be16(value) ‖ nonce) — binds the sealed bid. + pub commitment: BytesN<32>, + /// Public USDC budget locked at commit; upper bound on the sealed bid. + pub escrow: i128, + pub revealed_value: Option, + /// The 32-byte nonce used in the commitment. Persisted at reveal time so + /// that offline receipt verifiers can recompute sha256(be16(value)‖nonce) + /// without trusting the exporter. + pub revealed_nonce: Option>, + pub valid: bool, + pub settled: bool, +} + +/// Per-bid ephemeral sealed payload (Temporary). Auto-expires after the reveal +/// window; the auto-expiry is the design, not a workaround (PRD §8). +#[contracttype] +#[derive(Clone)] +pub struct Seal { + /// C = tlock_encrypt(be16(value) ‖ nonce, drand_pubkey, R). + pub ciphertext: Bytes, + /// enc(bidder_identity, auditor_pubkey) — readable only by the auditor. + pub auditor_blob: Bytes, +} + +/// A page of bidders for a round, with continuation metadata. +#[contracttype] +#[derive(Clone)] +pub struct BiddersPage { + /// Page of bidder addresses. + pub data: Vec
, + /// Opaque continuation token; None at exhaustion. + pub next_cursor: Option, + pub has_more: bool, + /// Number of bidders in the enumeration snapshot. + pub total: u32, +} + +/// Per-round escrow accounting (Persistent). One ledger, written by every path +/// that moves tokens, holding the three cumulative flows the conservation +/// predicate is proved against: +/// +/// `committed == payout + refunds + locked` +/// +/// `committed` is cumulative and never decreases: it counts every escrow ever +/// locked for the round, including escrow later returned by an +/// overwrite-before-close. `payout` and `refunds` count every token that has +/// left the contract for this round. `locked` is the balance still held on +/// behalf of the round's bids, and is maintained as an independent accumulator +/// rather than derived, so an arithmetic slip in any transfer path is caught +/// instead of cancelled out. +#[contracttype] +#[derive(Clone)] +pub struct EscrowLedger { + /// Cumulative escrow received for this round (Σ of every commit). + pub committed: i128, + /// Cumulative tokens transferred to the round operator as the settled bid. + pub payout: i128, + /// Cumulative tokens transferred back to bidders (overwrite refunds, + /// winner surplus, loser refunds, and void refunds). + pub refunds: i128, + /// Escrow still locked for this round. + pub locked: i128, +} + +#[contracttype] +#[derive(Clone)] +pub enum DataKey { + Config, + RoundCounter, + Round(u64), + State(u64, Address), + Seal(u64, Address), + Escrow(u64), +} From bbeb4edc808af51247d0799bad95d5d82d9c8e34 Mon Sep 17 00:00:00 2001 From: Kaybee973 Date: Sun, 25 Oct 2026 12:47:42 +0100 Subject: [PATCH 7/7] fix(round): restore CODEOWNERS, sync error variants, and update bindings --- .github/CODEOWNERS | 215 +----------------- contracts/round/ERRORS.md | 7 +- contracts/round/src/error_paths.rs | 48 +++- contracts/round/src/storage.rs | 62 ++++- contracts/round/src/test.rs | 24 +- contracts/round/src/types.rs | 6 +- ...round_seal_ttl_covers_reveal_window.1.json | 16 +- ...rejects_tampering_and_foreign_scope.1.json | 151 ++++++++++-- ...r_cursor_shared_fixture_three_pages.1.json | 127 ++++++++++- ...pshot_survives_append_and_overwrite.1.json | 133 ++++++++++- ...r_and_settle_work_after_seal_expiry.1.json | 16 +- .../commit_after_deadline_rejected.1.json | 16 +- .../test/commit_locks_escrow.1.json | 16 +- .../commit_on_settled_round_rejected.1.json | 16 +- ...e_before_close_refunds_prior_escrow.1.json | 16 +- .../test/commit_zero_escrow_rejected.1.json | 16 +- .../contract_balance_zero_after_settle.1.json | 16 +- .../contract_balance_zero_after_void.1.json | 16 +- .../test/create_round_happy_path.1.json | 16 +- .../test/double_settle_rejected.1.json | 16 +- .../test/double_void_rejected.1.json | 16 +- .../test/duplicate_reveal_rejected.1.json | 16 +- ...ves_escrow_on_void_and_settle_paths.1.json | 93 ++++++++ ...ves_escrow_on_void_and_settle_paths.2.json | 93 ++++++++ .../error_path_already_cleared.1.json | 16 +- .../error_path_already_revealed.1.json | 16 +- .../error_path_already_settled.1.json | 16 +- .../error_path_bid_exceeds_escrow.1.json | 16 +- .../error_path_bid_not_found.1.json | 16 +- .../error_path_commit_closed.1.json | 16 +- .../error_path_commit_not_closed.1.json | 16 +- .../error_path_escrow_not_conserved.1.json | 97 ++++++++ .../error_path_hash_mismatch.1.json | 16 +- .../error_path_invalid_amount.1.json | 16 +- .../error_path_invalid_cursor.1.json | 16 +- .../error_path_invalid_drand_signature.1.json | 16 +- .../error_path_invalid_limit.1.json | 16 +- .../error_path_invalid_seal_round_zero.1.json | 93 ++++++++ .../error_path_no_valid_bids.1.json | 16 +- .../error_paths/error_path_not_cleared.1.json | 16 +- .../error_path_not_voidable.1.json | 16 +- .../error_path_reveal_already_open.1.json | 16 +- .../error_path_reveal_not_open.1.json | 16 +- .../error_path_reveal_still_open.1.json | 16 +- .../error_path_reveal_window_closed.1.json | 16 +- .../error_paths/error_path_round_full.1.json | 16 +- .../error_path_round_voided.1.json | 16 +- .../error_path_seal_round_too_early.1.json | 93 ++++++++ .../error_path_seal_round_too_late.1.json | 93 ++++++++ .../error_path_wrong_status.1.json | 16 +- ...s_commits_overwrites_and_settlement.1.json | 105 +++++++++ ...full_lifecycle_real_drand_signature.1.json | 16 +- .../get_bidders_page_cursor_at_total.1.json | 16 +- ...et_bidders_page_cursor_beyond_total.1.json | 16 +- .../test/get_bidders_page_empty.1.json | 16 +- .../test/get_bidders_page_exact.1.json | 16 +- .../test/get_bidders_page_final.1.json | 16 +- .../test/get_bidders_page_multi.1.json | 16 +- .../test/get_bidders_page_partial.1.json | 16 +- .../get_bidders_page_preserves_order.1.json | 16 +- ...bidders_page_rejects_limit_over_max.1.json | 16 +- ...get_bidders_page_rejects_limit_zero.1.json | 16 +- .../get_bidders_returns_ordered_index.1.json | 16 +- ...get_bidders_still_returns_full_list.1.json | 16 +- .../test/highest_bid_table_driven.1.json | 16 +- .../test/highest_bid_table_driven.2.json | 16 +- .../test/highest_bid_table_driven.3.json | 16 +- .../test/highest_bid_table_driven.4.json | 16 +- ...s_deterministic_first_inserter_wins.1.json | 16 +- ...s_deterministic_first_inserter_wins.2.json | 16 +- ...after_window_even_with_seal_present.1.json | 16 +- .../test/lowest_bid_table_driven.1.json | 16 +- .../test/lowest_bid_table_driven.2.json | 16 +- .../test/lowest_bid_table_driven.3.json | 16 +- ...s_deterministic_first_inserter_wins.1.json | 16 +- ...iple_pages_settle_conserving_escrow.1.json | 121 ++++++++++ ..._reveal_bid_is_skipped_during_clear.1.json | 16 +- .../no_valid_bids_after_reveal_window.1.json | 16 +- ...id_state_after_lifecycle_completion.1.json | 16 +- ..._extends_seal_through_reveal_window.1.json | 16 +- ...en_reveal_on_settled_round_rejected.1.json | 16 +- ...e_to_larger_escrow_conserves_tokens.1.json | 16 +- ...very_unrevealed_bidder_exactly_once.1.json | 105 +++++++++ ...ated_overwrites_escrow_conservation.1.json | 16 +- ...eveal_hash_mismatch_invalidates_bid.1.json | 16 +- .../reveal_on_settled_round_rejected.1.json | 16 +- ..._that_drifted_from_the_escrowed_set.1.json | 105 +++++++++ ...jects_a_phantom_bidder_in_the_index.1.json | 97 ++++++++ .../test/reveal_wrong_nonce_rejected.1.json | 16 +- ...ed_case_42_highest_bid_reproducible.1.json | 16 +- ...eded_case_7_lowest_bid_reproducible.1.json | 16 +- .../test/settle_exact_payouts_table.1.json | 16 +- .../test/settle_exact_payouts_table.2.json | 16 +- .../test/settle_exact_payouts_table.3.json | 16 +- ..._rejects_bid_already_marked_settled.1.json | 101 ++++++++ ..._pay_from_a_duplicated_bidder_index.1.json | 101 ++++++++ ..._bidder_instead_of_stranding_escrow.1.json | 101 ++++++++ ...r_claims_more_escrow_than_bids_hold.1.json | 97 ++++++++ ...s_again_after_the_index_is_restored.1.json | 101 ++++++++ ...rsistent_state_survives_seal_expiry.1.json | 16 +- .../token_conservation_full_lifecycle.1.json | 16 +- .../test/void_after_grace_refunds_all.1.json | 16 +- .../test/void_before_grace_rejected.1.json | 16 +- ..._that_drifted_from_the_escrowed_set.1.json | 101 ++++++++ ...d_round_refunds_survive_seal_expiry.1.json | 16 +- ...d_refunds_every_bidder_exactly_once.1.json | 105 +++++++++ packages/round-bindings/src/index.ts | 46 ++-- packages/sdk/src/errors.test.ts | 5 + packages/sdk/src/errors.ts | 180 +++++++++++---- packages/tlock/src/window.ts | 4 +- scripts/check-round-errors.test.mjs | 14 +- 111 files changed, 3126 insertions(+), 962 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 202eeb2..4c2d503 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,204 +1,11 @@ -use soroban_sdk::{contracterror, contracttype, String, Address, Bytes, BytesN, Vec}; - -/// Contract error codes. Every failure state from the PRD has a defined code — -/// there is no undefined behavior and no silent fallback. -#[contracterror] -#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)] -#[repr(u32)] -pub enum Error { - NotInitialized = 1, - AlreadyInitialized = 2, - RoundNotFound = 3, - BidNotFound = 4, - // Lifecycle / timing - CommitClosed = 10, - CommitNotClosed = 11, - CommitDeadlineAfterReveal = 12, - RevealNotOpen = 13, - RevealAlreadyOpen = 14, - RevealWindowClosed = 15, - RevealStillOpen = 16, - NotCleared = 17, - AlreadyCleared = 18, - AlreadySettled = 19, - RoundVoided = 20, - NotVoidable = 21, - WrongStatus = 22, - // Seal round validation - InvalidSealRoundZero = 41, - SealRoundTooLate = 42, - SealRoundTooEarly = 43, - // Crypto / validation - InvalidDrandSignature = 30, - HashMismatch = 31, - AlreadyRevealed = 32, - PayloadTooLarge = 33, - InvalidAmount = 34, - BidExceedsEscrow = 35, - DeadlineInPast = 36, - NoValidBids = 37, - RoundFull = 38, - InvalidLimit = 39, - // Escrow accounting - EscrowNotConserved = 40, -} - -/// Round lifecycle. Mirrors the state machine in PRD §6. -#[contracttype] -#[derive(Clone, Copy, PartialEq, Eq, Debug)] -pub enum Status { - Open, - Revealing, - Cleared, - Settled, - Voided, -} - -/// Deterministic clearing rule. Default is a first-price sealed-bid auction -/// (highest valid revealed bid wins). -#[contracttype] -#[derive(Clone, Copy, PartialEq, Eq, Debug)] -pub enum ClearingRule { - HighestBid, - LowestBid, -} - -/// Contract-global configuration, set once at deploy in Instance storage. -/// -/// All Drand parameters are supplied at deploy time (validated against a live -/// quicknet round before deploy) so the source carries no guessed constants. -/// `drand_pubkey` and `g2_neg_generator` are uncompressed BLS12-381 G2 points -/// (192 bytes each) in Soroban host serialization. `dst` is the RFC 9380 -/// domain separation tag for the configured Drand scheme. -#[contracttype] -#[derive(Clone)] -pub struct GlobalConfig { - pub drand_pubkey: BytesN<192>, - pub g2_neg_generator: BytesN<192>, - pub dst: Bytes, - pub drand_genesis: u64, - pub drand_period: u64, - pub usdc: Address, -} - -/// Asset configuration for the round. -#[contracttype] -#[derive(Clone)] -pub struct RoundAssetConfig { - /// Asset type: "native" (XLM) or "sac" - pub asset_type: String, - /// SAC contract ID (empty for native XLM) - pub contract_id: String, - /// SAC asset code (e.g., "USDC") - pub code: String, - /// SAC asset decimals - pub decimals: u32, - /// SAC asset issuer (empty for native XLM) - pub issuer: String, -} - -/// Per-round record (Persistent). Survives until the round is explicitly closed. -#[contracttype] -#[derive(Clone)] -pub struct Round { - pub operator: Address, - /// Opaque reference to the item / allocation being decided (hash of an - /// off-chain description). The contract is agnostic to its meaning. - pub item_ref: BytesN<32>, - /// Drand round number R whose threshold signature unseals the bids. - pub reveal_round: u64, - pub clearing_rule: ClearingRule, - /// Unix seconds. Must be strictly before time(R). - pub commit_deadline: u64, - /// Unix seconds. Reveal window closes here; must be after time(R). - pub reveal_deadline: u64, - /// Public key bidder-identity blobs are encrypted to (selective disclosure). - pub auditor_pubkey: Bytes, - pub status: Status, - pub bidders: Vec
, - pub winner: Option
, - pub winning_bid: i128, - /// Expected asset config for this round. Used by the SDK to validate - /// that bidders are locking the correct asset. - pub asset_config: RoundAssetConfig, -} - -/// Per-bid durable state (Persistent). Holds everything required to clear and -/// settle / refund safely, even if the ephemeral ciphertext has expired. -#[contracttype] -#[derive(Clone)] -pub struct BidState { - /// H = sha256(be16(value) ‖ nonce) — binds the sealed bid. - pub commitment: BytesN<32>, - /// Public USDC budget locked at commit; upper bound on the sealed bid. - pub escrow: i128, - pub revealed_value: Option, - /// The 32-byte nonce used in the commitment. Persisted at reveal time so - /// that offline receipt verifiers can recompute sha256(be16(value)‖nonce) - /// without trusting the exporter. - pub revealed_nonce: Option>, - pub valid: bool, - pub settled: bool, -} - -/// Per-bid ephemeral sealed payload (Temporary). Auto-expires after the reveal -/// window; the auto-expiry is the design, not a workaround (PRD §8). -#[contracttype] -#[derive(Clone)] -pub struct Seal { - /// C = tlock_encrypt(be16(value) ‖ nonce, drand_pubkey, R). - pub ciphertext: Bytes, - /// enc(bidder_identity, auditor_pubkey) — readable only by the auditor. - pub auditor_blob: Bytes, -} - -/// A page of bidders for a round, with continuation metadata. -#[contracttype] -#[derive(Clone)] -pub struct BiddersPage { - /// Page of bidder addresses. - pub data: Vec
, - /// Opaque continuation token; None at exhaustion. - pub next_cursor: Option, - pub has_more: bool, - /// Number of bidders in the enumeration snapshot. - pub total: u32, -} - -/// Per-round escrow accounting (Persistent). One ledger, written by every path -/// that moves tokens, holding the three cumulative flows the conservation -/// predicate is proved against: -/// -/// `committed == payout + refunds + locked` -/// -/// `committed` is cumulative and never decreases: it counts every escrow ever -/// locked for the round, including escrow later returned by an -/// overwrite-before-close. `payout` and `refunds` count every token that has -/// left the contract for this round. `locked` is the balance still held on -/// behalf of the round's bids, and is maintained as an independent accumulator -/// rather than derived, so an arithmetic slip in any transfer path is caught -/// instead of cancelled out. -#[contracttype] -#[derive(Clone)] -pub struct EscrowLedger { - /// Cumulative escrow received for this round (Σ of every commit). - pub committed: i128, - /// Cumulative tokens transferred to the round operator as the settled bid. - pub payout: i128, - /// Cumulative tokens transferred back to bidders (overwrite refunds, - /// winner surplus, loser refunds, and void refunds). - pub refunds: i128, - /// Escrow still locked for this round. - pub locked: i128, -} - -#[contracttype] -#[derive(Clone)] -pub enum DataKey { - Config, - RoundCounter, - Round(u64), - State(u64, Address), - Seal(u64, Address), - Escrow(u64), -} +# Execution-sensitive paths require maintainer review to prevent unauthorized changes +# that could affect build integrity, runtime behavior, or asset delivery. + +.github/workflows/** @karagozemin +.vscode/** @karagozemin +package.json @karagozemin +pnpm-lock.yaml @karagozemin +Cargo.toml @karagozemin +Cargo.lock @karagozemin +scripts/** @karagozemin +**/public/fonts/** @karagozemin diff --git a/contracts/round/ERRORS.md b/contracts/round/ERRORS.md index 7bc459d..2ee0969 100644 --- a/contracts/round/ERRORS.md +++ b/contracts/round/ERRORS.md @@ -71,9 +71,10 @@ stay in sync with `contracts/round/src/types.rs`. | 37 | `NoValidBids` | `settle` | `round.winner` is `None` on a round whose status is `Cleared`. | Round has no winner to settle against. | Investigate: under current behavior the contract transitions to `Voided` (with all escrow refunded) when no valid bid is revealed, so this code should not appear in normal flow. If it does, the round is in an inconsistent state and warrants a manual review. | | 38 | `RoundFull` | `commit` | `round.bidders.len() >= MAX_BIDDERS` (500). | The round has reached its bidder cap. | Start a new round to accept further bidders. | | 39 | `InvalidLimit` | `get_bidders_page` | `limit == 0` or `limit > 100`. | Page size must be between 1 and 100 (inclusive). | Pass a `limit` in `[1, 100]`; use `next_cursor` from the previous page to walk larger rounds. | -| 40 | `SealRoundTooEarly` | `commit` | `seal_round < round.reveal_round`: the seal names a Drand round before the one the auction committed to open. | The sealed bid is locked to the wrong Drand round. | Reseal the bid to the round published in the `created` event (`reveal_round`) and commit again; no escrow was moved. | -| 41 | `SealRoundTooLate` | `commit` | `seal_round > round.reveal_round`: the seal names a Drand round after the one the auction committed to open. | The sealed bid is locked to the wrong Drand round. | Reseal the bid to the round published in the `created` event (`reveal_round`) and commit again; no escrow was moved. | -| 42 | `InvalidSealRoundZero` | `create_round`, `commit` | `reveal_round == 0` at round creation, or `seal_round == 0` at commit. A zero or overflowing round can never be published by the Drand chain. | The Drand round number is malformed. | Use a positive round the quicknet chain can actually publish (`genesis + period × R` must fit in `u64`); check before locking escrow. | +| 41 | `SealRoundTooEarly` | `commit` | `seal_round < round.reveal_round`: the seal names a Drand round before the one the auction committed to open. | The sealed bid is locked to the wrong Drand round. | Reseal the bid to the round published in the `created` event (`reveal_round`) and commit again; no escrow was moved. | +| 42 | `SealRoundTooLate` | `commit` | `seal_round > round.reveal_round`: the seal names a Drand round after the one the auction committed to open. | The sealed bid is locked to the wrong Drand round. | Reseal the bid to the round published in the `created` event (`reveal_round`) and commit again; no escrow was moved. | +| 43 | `InvalidSealRoundZero` | `create_round`, `commit` | `reveal_round == 0` at round creation, or `seal_round == 0` at commit. A zero or overflowing round can never be published by the Drand chain. | The Drand round number is malformed. | Use a positive round the quicknet chain can actually publish (`genesis + period × R` must fit in `u64`); check before locking escrow. | +| 44 | `InvalidCursor` | `get_bidders_page` | Cursor has the wrong length, version, checksum, scope, or bounds. | The bidder cursor is invalid for this round and contract. | Restart with no cursor; pass each returned token unchanged. | ## Escrow accounting (40–49) diff --git a/contracts/round/src/error_paths.rs b/contracts/round/src/error_paths.rs index d334464..0ee7011 100644 --- a/contracts/round/src/error_paths.rs +++ b/contracts/round/src/error_paths.rs @@ -46,6 +46,10 @@ const ERROR_PATH_REGISTRY: &[(Error, &'static str)] = &[ (Error::RoundFull, "error_path_round_full"), (Error::InvalidLimit, "error_path_invalid_limit"), (Error::EscrowNotConserved, "error_path_escrow_not_conserved"), + (Error::SealRoundTooEarly, "error_path_seal_round_too_early"), + (Error::SealRoundTooLate, "error_path_seal_round_too_late"), + (Error::InvalidSealRoundZero, "error_path_invalid_seal_round_zero"), + (Error::InvalidCursor, "error_path_invalid_cursor"), ]; fn oversized_bytes(env: &Env, len: u32) -> Bytes { @@ -88,7 +92,7 @@ fn settle_happy_path(f: &Fixture, t_reveal: u64, commit_deadline: u64, reveal_de fn error_paths_registry_covers_every_variant() { assert_eq!( ERROR_PATH_REGISTRY.len(), - 28, + 32, "update ERROR_PATH_REGISTRY when adding/removing Error variants" ); for (variant, name) in ERROR_PATH_REGISTRY { @@ -553,6 +557,48 @@ fn error_path_invalid_cursor() { assert_try_contract_err(f.client.try_get_bidders_page(&id, &Some(Bytes::new(&f.env)), &10), Error::InvalidCursor); } +#[test] +fn error_path_escrow_not_conserved() { + let (f, t_reveal, commit_deadline, reveal_deadline) = setup_drand(); + let operator = Address::generate(&f.env); + let id = drand_round( + &f, + &operator, + commit_deadline, + reveal_deadline, + ClearingRule::HighestBid, + ); + let alice = funded_bidder(&f, 1_000); + let a_nonce = commit_bid(&f, id, &alice, 500, 500, 0x01); + f.env.ledger().with_mut(|l| l.timestamp = t_reveal + 1); + f.client.open_reveal(&id, &real_sig(&f.env)); + f.client.reveal(&id, &alice, &500, &a_nonce); + f.env + .ledger() + .with_mut(|l| l.timestamp = reveal_deadline + 1); + f.client.clear(&id); + + // A winning bid above the winner's escrow would mint tokens out of escrow. + f.env.as_contract(&f.client.address, || { + let mut round = get_round(&f.env, id).unwrap(); + round.winning_bid = 900; + set_round(&f.env, id, &round); + }); + + assert_try_contract_err(f.client.try_settle(&id), Error::EscrowNotConserved); + assert_eq!( + f.usdc_token.balance(&operator), + 0, + "a rejected settle must not pay the operator" + ); + assert_eq!( + f.usdc_token.balance(&f.client.address), + 500, + "a rejected settle must leave every escrow locked" + ); + assert_eq!(f.client.get_round(&id).status, Status::Cleared); +} + /// Issue #376: a seal for a round earlier than the stored reveal round is /// rejected with a stable error before any escrow is locked. #[test] diff --git a/contracts/round/src/storage.rs b/contracts/round/src/storage.rs index b8f9b5e..61472cd 100644 --- a/contracts/round/src/storage.rs +++ b/contracts/round/src/storage.rs @@ -1,6 +1,66 @@ use soroban_sdk::{xdr::ToXdr, Address, Bytes, Env, Vec}; -use crate::types::{BidState, DataKey, Error, EscrowLedger, GlobalConfig, Round, Seal}; +use crate::types::{BidState, BiddersPage, DataKey, Error, EscrowLedger, GlobalConfig, Round, Seal}; + +// v1: version (1 byte), next offset (4-byte BE), snapshot count (4-byte BE), +// SHA-256 checksum (32 bytes). See ERRORS.md for the checksum preimage. +fn bidder_cursor(env: &Env, round_id: u64, offset: u32, total: u32) -> Bytes { + let mut header = [0u8; 9]; + header[0] = 1; + header[1..5].copy_from_slice(&offset.to_be_bytes()); + header[5..9].copy_from_slice(&total.to_be_bytes()); + let mut cursor = Bytes::from_array(env, &header); + let preimage = (env.current_contract_address(), round_id, cursor.clone()).to_xdr(env); + cursor.append(&Bytes::from(env.crypto().sha256(&preimage).to_bytes())); + cursor +} + +pub fn bidders_page( + env: &Env, + round_id: u64, + cursor: Option, + limit: u32, +) -> Result { + let bidders = get_round(env, round_id)?.bidders; + let (start, total) = match cursor { + None => (0, bidders.len()), + Some(cursor) => { + if cursor.len() != 41 || cursor.get(0) != Some(1) { + return Err(Error::InvalidCursor); + } + let mut offset = [0u8; 4]; + let mut count = [0u8; 4]; + cursor.slice(1..5).copy_into_slice(&mut offset); + cursor.slice(5..9).copy_into_slice(&mut count); + let start = u32::from_be_bytes(offset); + let total = u32::from_be_bytes(count); + if start == 0 + || start > total + || total > bidders.len() + || cursor != bidder_cursor(env, round_id, start, total) + { + return Err(Error::InvalidCursor); + } + (start, total) + } + }; + let end = (start + limit).min(total); + let mut data = Vec::new(env); + for i in start..end { + data.push_back(bidders.get(i).unwrap()); + } + let has_more = end < total; + Ok(BiddersPage { + data, + next_cursor: if has_more { + Some(bidder_cursor(env, round_id, end, total)) + } else { + None + }, + has_more, + total, + }) +} // TTL policy. Ledger close time on Stellar is ~5s, so these are generous for a // hackathon-scale round while keeping ephemeral seal data short-lived. diff --git a/contracts/round/src/test.rs b/contracts/round/src/test.rs index d74c18f..d29213c 100644 --- a/contracts/round/src/test.rs +++ b/contracts/round/src/test.rs @@ -12,7 +12,8 @@ use crate::storage::{ TEMP_THRESHOLD, }; use crate::types::{ - BidState, ClearingRule, DataKey, Error, EscrowLedger, GlobalConfig, Round, Status, + BidState, ClearingRule, DataKey, Error, EscrowLedger, GlobalConfig, Round, RoundAssetConfig, + Status, }; use crate::{conserved, SubRosaRound, SubRosaRoundClient}; @@ -179,7 +180,6 @@ pub fn native_xlm(env: &Env) -> RoundAssetConfig { } fn open_round(f: &Fixture, operator: &Address) -> u64 { - let asset_config = sac_asset_config(&f.env); f.client.create_round( operator, &b32(&f.env, 1), @@ -342,7 +342,7 @@ fn create_round_rejects_overflowing_reveal_round() { let operator = Address::generate(&f.env); let res = f.client.try_create_round( &operator, &b32(&f.env, 1), &u64::MAX, &ClearingRule::HighestBid, - &1_500, &2_500, &Bytes::from_array(&f.env, b"a"), + &1_500, &2_500, &Bytes::from_array(&f.env, b"a"), &native_xlm(&f.env), ); assert!(res.is_err()); } @@ -1847,7 +1847,7 @@ fn many_bidders_across_multiple_pages_settle_conserving_escrow() { // Walk the bidder index in three pages; the pages must agree with the full // list and report a stable total before anything is revealed. let mut paged: Vec
= Vec::new(&f.env); - let mut cursor: u32 = 0; + let mut cursor: Option = None; loop { let page = f.client.get_bidders_page(&id, &cursor, &3); assert_eq!( @@ -1857,7 +1857,7 @@ fn many_bidders_across_multiple_pages_settle_conserving_escrow() { for i in 0..page.data.len() { paged.push_back(page.data.get(i).unwrap()); } - if page.next_cursor == 0 { + if !page.has_more { break; } cursor = page.next_cursor; @@ -2283,8 +2283,12 @@ pub(super) const DOCUMENTED_ERROR_CODES: &[(Error, u32)] = &[ (Error::NoValidBids, 37), (Error::RoundFull, 38), (Error::InvalidLimit, 39), - // ── 40–49: escrow accounting ── + // ── 40–49: escrow accounting & seal/cursor validation ── (Error::EscrowNotConserved, 40), + (Error::SealRoundTooEarly, 41), + (Error::SealRoundTooLate, 42), + (Error::InvalidSealRoundZero, 43), + (Error::InvalidCursor, 44), ]; /// Convert an `Error` to its on-chain discriminant using the [`repr(u32)`] @@ -2324,6 +2328,10 @@ pub(super) fn variant_name(e: Error) -> &'static str { Error::RoundFull => "RoundFull", Error::InvalidLimit => "InvalidLimit", Error::EscrowNotConserved => "EscrowNotConserved", + Error::SealRoundTooEarly => "SealRoundTooEarly", + Error::SealRoundTooLate => "SealRoundTooLate", + Error::InvalidSealRoundZero => "InvalidSealRoundZero", + Error::InvalidCursor => "InvalidCursor", } } @@ -2371,7 +2379,7 @@ fn error_table_enumerates_every_variant() { // DOCUMENTED_ERROR_CODES. assert_eq!( DOCUMENTED_ERROR_CODES.len(), - 28, + 32, "DOCUMENTED_ERROR_CODES appears missing entries. The exhaustive \ `variant_name` match already enforces parity at compile time — \ update it together with this list and contracts/round/ERRORS.md." @@ -2415,6 +2423,7 @@ fn shared_pagination_round() -> (Fixture, u64, Vec
) { &Bytes::from_array(&f.env, b"c"), &100, &Bytes::new(&f.env), + &2_000, ); bidders.push_back(bidder); } @@ -2513,6 +2522,7 @@ fn bidder_cursor_snapshot_survives_append_and_overwrite() { &Bytes::from_array(&f.env, b"c"), &100, &Bytes::new(&f.env), + &2_000, ); } let second = f.client.get_bidders_page(&id, &first.next_cursor, &3); diff --git a/contracts/round/src/types.rs b/contracts/round/src/types.rs index 4fbac39..6360fec 100644 --- a/contracts/round/src/types.rs +++ b/contracts/round/src/types.rs @@ -35,8 +35,12 @@ pub enum Error { NoValidBids = 37, RoundFull = 38, InvalidLimit = 39, - // Escrow accounting + // Escrow accounting & seal/cursor validation EscrowNotConserved = 40, + SealRoundTooEarly = 41, + SealRoundTooLate = 42, + InvalidSealRoundZero = 43, + InvalidCursor = 44, } /// Round lifecycle. Mirrors the state machine in PRD §6. diff --git a/contracts/round/test_snapshots/test/active_round_seal_ttl_covers_reveal_window.1.json b/contracts/round/test_snapshots/test/active_round_seal_ttl_covers_reveal_window.1.json index a5a8725..4b61ce0 100644 --- a/contracts/round/test_snapshots/test/active_round_seal_ttl_covers_reveal_window.1.json +++ b/contracts/round/test_snapshots/test/active_round_seal_ttl_covers_reveal_window.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -445,7 +445,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -453,7 +453,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -461,7 +461,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -477,7 +477,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/bidder_cursor_rejects_tampering_and_foreign_scope.1.json b/contracts/round/test_snapshots/test/bidder_cursor_rejects_tampering_and_foreign_scope.1.json index a91c57b..6d4bfaa 100644 --- a/contracts/round/test_snapshots/test/bidder_cursor_rejects_tampering_and_foreign_scope.1.json +++ b/contracts/round/test_snapshots/test/bidder_cursor_rejects_tampering_and_foreign_scope.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -163,6 +163,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -249,6 +252,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -335,6 +341,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -421,6 +430,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -507,6 +519,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -593,6 +608,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -679,6 +697,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -798,7 +819,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -806,7 +827,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -814,7 +835,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -830,7 +851,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -1149,6 +1170,96 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Escrow" + }, + { + "u64": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Escrow" + }, + { + "u64": 1 + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "committed" + }, + "val": { + "i128": { + "hi": 0, + "lo": 700 + } + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "i128": { + "hi": 0, + "lo": 700 + } + } + }, + { + "key": { + "symbol": "payout" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "refunds" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 1036800 + ] + ], [ { "contract_data": { @@ -1197,7 +1308,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -1205,7 +1316,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -1213,7 +1324,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -1229,7 +1340,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -1411,7 +1522,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -1419,7 +1530,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -1427,7 +1538,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -1443,7 +1554,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -2944,7 +3055,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -2952,7 +3063,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -2960,7 +3071,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -2976,7 +3087,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/bidder_cursor_shared_fixture_three_pages.1.json b/contracts/round/test_snapshots/test/bidder_cursor_shared_fixture_three_pages.1.json index e51660e..2a8c14c 100644 --- a/contracts/round/test_snapshots/test/bidder_cursor_shared_fixture_three_pages.1.json +++ b/contracts/round/test_snapshots/test/bidder_cursor_shared_fixture_three_pages.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -163,6 +163,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -249,6 +252,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -335,6 +341,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -421,6 +430,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -507,6 +519,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -593,6 +608,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -679,6 +697,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -1017,6 +1038,96 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Escrow" + }, + { + "u64": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Escrow" + }, + { + "u64": 1 + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "committed" + }, + "val": { + "i128": { + "hi": 0, + "lo": 700 + } + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "i128": { + "hi": 0, + "lo": 700 + } + } + }, + { + "key": { + "symbol": "payout" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "refunds" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 1036800 + ] + ], [ { "contract_data": { @@ -1065,7 +1176,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -1073,7 +1184,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -1081,7 +1192,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -1097,7 +1208,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/bidder_cursor_snapshot_survives_append_and_overwrite.1.json b/contracts/round/test_snapshots/test/bidder_cursor_snapshot_survives_append_and_overwrite.1.json index 6a564a8..4e08594 100644 --- a/contracts/round/test_snapshots/test/bidder_cursor_snapshot_survives_append_and_overwrite.1.json +++ b/contracts/round/test_snapshots/test/bidder_cursor_snapshot_survives_append_and_overwrite.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -163,6 +163,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -249,6 +252,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -335,6 +341,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -421,6 +430,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -507,6 +519,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -593,6 +608,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -679,6 +697,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -766,6 +787,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -827,6 +851,9 @@ }, { "bytes": "" + }, + { + "u64": 2000 } ] } @@ -1198,6 +1225,96 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Escrow" + }, + { + "u64": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Escrow" + }, + { + "u64": 1 + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "committed" + }, + "val": { + "i128": { + "hi": 0, + "lo": 900 + } + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "i128": { + "hi": 0, + "lo": 800 + } + } + }, + { + "key": { + "symbol": "payout" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "refunds" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 1036800 + ] + ], [ { "contract_data": { @@ -1246,7 +1363,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -1254,7 +1371,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -1262,7 +1379,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -1278,7 +1395,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/clear_and_settle_work_after_seal_expiry.1.json b/contracts/round/test_snapshots/test/clear_and_settle_work_after_seal_expiry.1.json index b781843..b05f7f0 100644 --- a/contracts/round/test_snapshots/test/clear_and_settle_work_after_seal_expiry.1.json +++ b/contracts/round/test_snapshots/test/clear_and_settle_work_after_seal_expiry.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -575,7 +575,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -583,7 +583,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -591,7 +591,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -607,7 +607,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/commit_after_deadline_rejected.1.json b/contracts/round/test_snapshots/test/commit_after_deadline_rejected.1.json index bc92fd8..ed8135a 100644 --- a/contracts/round/test_snapshots/test/commit_after_deadline_rejected.1.json +++ b/contracts/round/test_snapshots/test/commit_after_deadline_rejected.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -288,7 +288,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -296,7 +296,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -304,7 +304,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -320,7 +320,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/commit_locks_escrow.1.json b/contracts/round/test_snapshots/test/commit_locks_escrow.1.json index 851eccf..c8cc132 100644 --- a/contracts/round/test_snapshots/test/commit_locks_escrow.1.json +++ b/contracts/round/test_snapshots/test/commit_locks_escrow.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -445,7 +445,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -453,7 +453,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -461,7 +461,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -477,7 +477,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/commit_on_settled_round_rejected.1.json b/contracts/round/test_snapshots/test/commit_on_settled_round_rejected.1.json index 8c66ea2..fcae565 100644 --- a/contracts/round/test_snapshots/test/commit_on_settled_round_rejected.1.json +++ b/contracts/round/test_snapshots/test/commit_on_settled_round_rejected.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -505,7 +505,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -513,7 +513,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -521,7 +521,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -537,7 +537,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/commit_overwrite_before_close_refunds_prior_escrow.1.json b/contracts/round/test_snapshots/test/commit_overwrite_before_close_refunds_prior_escrow.1.json index 8d3baa3..82f9833 100644 --- a/contracts/round/test_snapshots/test/commit_overwrite_before_close_refunds_prior_escrow.1.json +++ b/contracts/round/test_snapshots/test/commit_overwrite_before_close_refunds_prior_escrow.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -508,7 +508,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -516,7 +516,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -524,7 +524,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -540,7 +540,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/commit_zero_escrow_rejected.1.json b/contracts/round/test_snapshots/test/commit_zero_escrow_rejected.1.json index 3ba3371..1a613d8 100644 --- a/contracts/round/test_snapshots/test/commit_zero_escrow_rejected.1.json +++ b/contracts/round/test_snapshots/test/commit_zero_escrow_rejected.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -288,7 +288,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -296,7 +296,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -304,7 +304,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -320,7 +320,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/contract_balance_zero_after_settle.1.json b/contracts/round/test_snapshots/test/contract_balance_zero_after_settle.1.json index 800d4ac..eb2085b 100644 --- a/contracts/round/test_snapshots/test/contract_balance_zero_after_settle.1.json +++ b/contracts/round/test_snapshots/test/contract_balance_zero_after_settle.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -571,7 +571,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -579,7 +579,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -587,7 +587,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -603,7 +603,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/contract_balance_zero_after_void.1.json b/contracts/round/test_snapshots/test/contract_balance_zero_after_void.1.json index 9022d60..f94cde7 100644 --- a/contracts/round/test_snapshots/test/contract_balance_zero_after_void.1.json +++ b/contracts/round/test_snapshots/test/contract_balance_zero_after_void.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -567,7 +567,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -575,7 +575,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -583,7 +583,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -599,7 +599,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/create_round_happy_path.1.json b/contracts/round/test_snapshots/test/create_round_happy_path.1.json index 220a816..b5ac68c 100644 --- a/contracts/round/test_snapshots/test/create_round_happy_path.1.json +++ b/contracts/round/test_snapshots/test/create_round_happy_path.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -230,7 +230,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -238,7 +238,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -246,7 +246,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -262,7 +262,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/double_settle_rejected.1.json b/contracts/round/test_snapshots/test/double_settle_rejected.1.json index 96f22e1..d535962 100644 --- a/contracts/round/test_snapshots/test/double_settle_rejected.1.json +++ b/contracts/round/test_snapshots/test/double_settle_rejected.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -448,7 +448,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -456,7 +456,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -464,7 +464,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -480,7 +480,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/double_void_rejected.1.json b/contracts/round/test_snapshots/test/double_void_rejected.1.json index 7aa86b5..7951bfd 100644 --- a/contracts/round/test_snapshots/test/double_void_rejected.1.json +++ b/contracts/round/test_snapshots/test/double_void_rejected.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -445,7 +445,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -453,7 +453,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -461,7 +461,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -477,7 +477,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/duplicate_reveal_rejected.1.json b/contracts/round/test_snapshots/test/duplicate_reveal_rejected.1.json index 858585b..1fcf709 100644 --- a/contracts/round/test_snapshots/test/duplicate_reveal_rejected.1.json +++ b/contracts/round/test_snapshots/test/duplicate_reveal_rejected.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -445,7 +445,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -453,7 +453,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -461,7 +461,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -477,7 +477,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/empty_round_conserves_escrow_on_void_and_settle_paths.1.json b/contracts/round/test_snapshots/test/empty_round_conserves_escrow_on_void_and_settle_paths.1.json index 81b0127..71868ad 100644 --- a/contracts/round/test_snapshots/test/empty_round_conserves_escrow_on_void_and_settle_paths.1.json +++ b/contracts/round/test_snapshots/test/empty_round_conserves_escrow_on_void_and_settle_paths.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f722d7075626b6579" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -267,6 +311,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/empty_round_conserves_escrow_on_void_and_settle_paths.2.json b/contracts/round/test_snapshots/test/empty_round_conserves_escrow_on_void_and_settle_paths.2.json index e1f2d39..b2eae28 100644 --- a/contracts/round/test_snapshots/test/empty_round_conserves_escrow_on_void_and_settle_paths.2.json +++ b/contracts/round/test_snapshots/test/empty_round_conserves_escrow_on_void_and_settle_paths.2.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -270,6 +314,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_already_cleared.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_already_cleared.1.json index 24fb8b6..e272d24 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_already_cleared.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_already_cleared.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -446,7 +446,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -454,7 +454,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -462,7 +462,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -478,7 +478,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_already_revealed.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_already_revealed.1.json index fbf6626..802c422 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_already_revealed.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_already_revealed.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -445,7 +445,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -453,7 +453,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -461,7 +461,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -477,7 +477,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_already_settled.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_already_settled.1.json index 40ecc9b..4ad727b 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_already_settled.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_already_settled.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -447,7 +447,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -455,7 +455,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -463,7 +463,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -479,7 +479,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_bid_exceeds_escrow.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_bid_exceeds_escrow.1.json index 8d338e2..6f17452 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_bid_exceeds_escrow.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_bid_exceeds_escrow.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -443,7 +443,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -451,7 +451,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -459,7 +459,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -475,7 +475,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_bid_not_found.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_bid_not_found.1.json index 4d72bbe..c6daae0 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_bid_not_found.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_bid_not_found.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -230,7 +230,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -238,7 +238,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -246,7 +246,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -262,7 +262,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_commit_closed.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_commit_closed.1.json index bc92fd8..ed8135a 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_commit_closed.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_commit_closed.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -288,7 +288,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -296,7 +296,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -304,7 +304,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -320,7 +320,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_commit_not_closed.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_commit_not_closed.1.json index d63d0e3..e66d169 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_commit_not_closed.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_commit_not_closed.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -230,7 +230,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -238,7 +238,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -246,7 +246,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -262,7 +262,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_escrow_not_conserved.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_escrow_not_conserved.1.json index 024d20a..2175753 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_escrow_not_conserved.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_escrow_not_conserved.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -90,6 +134,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -119,6 +164,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -391,6 +439,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_hash_mismatch.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_hash_mismatch.1.json index fc6e0d8..315c19c 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_hash_mismatch.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_hash_mismatch.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -444,7 +444,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -452,7 +452,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -460,7 +460,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -476,7 +476,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_invalid_amount.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_invalid_amount.1.json index 3ba3371..1a613d8 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_invalid_amount.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_invalid_amount.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -288,7 +288,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -296,7 +296,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -304,7 +304,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -320,7 +320,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_invalid_cursor.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_invalid_cursor.1.json index 220a816..b5ac68c 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_invalid_cursor.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_invalid_cursor.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -230,7 +230,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -238,7 +238,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -246,7 +246,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -262,7 +262,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_invalid_drand_signature.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_invalid_drand_signature.1.json index 130373b..b484765 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_invalid_drand_signature.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_invalid_drand_signature.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -443,7 +443,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -451,7 +451,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -459,7 +459,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -475,7 +475,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_invalid_limit.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_invalid_limit.1.json index 5fcd261..b3ed359 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_invalid_limit.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_invalid_limit.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -231,7 +231,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -239,7 +239,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -247,7 +247,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -263,7 +263,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_invalid_seal_round_zero.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_invalid_seal_round_zero.1.json index 351f0d9..78472b3 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_invalid_seal_round_zero.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_invalid_seal_round_zero.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f722d7075626b6579" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -234,6 +278,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_no_valid_bids.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_no_valid_bids.1.json index 3865ba5..b43d0a4 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_no_valid_bids.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_no_valid_bids.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -231,7 +231,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -239,7 +239,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -247,7 +247,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -263,7 +263,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_not_cleared.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_not_cleared.1.json index 89887a0..eced916 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_not_cleared.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_not_cleared.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -445,7 +445,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -453,7 +453,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -461,7 +461,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -477,7 +477,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_not_voidable.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_not_voidable.1.json index d00f26b..f52fa3d 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_not_voidable.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_not_voidable.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -230,7 +230,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -238,7 +238,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -246,7 +246,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -262,7 +262,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_reveal_already_open.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_reveal_already_open.1.json index fc6e0d8..315c19c 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_reveal_already_open.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_reveal_already_open.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -444,7 +444,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -452,7 +452,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -460,7 +460,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -476,7 +476,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_reveal_not_open.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_reveal_not_open.1.json index 6061f3c..5554fb2 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_reveal_not_open.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_reveal_not_open.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -443,7 +443,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -451,7 +451,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -459,7 +459,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -475,7 +475,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_reveal_still_open.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_reveal_still_open.1.json index fc6e0d8..315c19c 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_reveal_still_open.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_reveal_still_open.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -444,7 +444,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -452,7 +452,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -460,7 +460,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -476,7 +476,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_reveal_window_closed.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_reveal_window_closed.1.json index b1beb2b..593ad22 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_reveal_window_closed.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_reveal_window_closed.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -444,7 +444,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -452,7 +452,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -460,7 +460,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -476,7 +476,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_round_full.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_round_full.1.json index 335e43a..8e8a93b 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_round_full.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_round_full.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -289,7 +289,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -297,7 +297,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -305,7 +305,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -321,7 +321,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_round_voided.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_round_voided.1.json index 746c3d6..f51f59a 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_round_voided.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_round_voided.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -444,7 +444,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -452,7 +452,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -460,7 +460,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -476,7 +476,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_seal_round_too_early.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_seal_round_too_early.1.json index b7577c1..bead8da 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_seal_round_too_early.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_seal_round_too_early.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -234,6 +278,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_seal_round_too_late.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_seal_round_too_late.1.json index b7577c1..bead8da 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_seal_round_too_late.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_seal_round_too_late.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -234,6 +278,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/error_paths/error_path_wrong_status.1.json b/contracts/round/test_snapshots/test/error_paths/error_path_wrong_status.1.json index 146484f..406da83 100644 --- a/contracts/round/test_snapshots/test/error_paths/error_path_wrong_status.1.json +++ b/contracts/round/test_snapshots/test/error_paths/error_path_wrong_status.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -502,7 +502,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -510,7 +510,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -518,7 +518,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -534,7 +534,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/escrow_ledger_tracks_commits_overwrites_and_settlement.1.json b/contracts/round/test_snapshots/test/escrow_ledger_tracks_commits_overwrites_and_settlement.1.json index fdc84b5..711f2fa 100644 --- a/contracts/round/test_snapshots/test/escrow_ledger_tracks_commits_overwrites_and_settlement.1.json +++ b/contracts/round/test_snapshots/test/escrow_ledger_tracks_commits_overwrites_and_settlement.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -115,6 +159,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -144,6 +189,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -178,6 +226,7 @@ ], [], [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -207,6 +256,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -239,6 +291,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -268,6 +321,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -579,6 +635,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/full_lifecycle_real_drand_signature.1.json b/contracts/round/test_snapshots/test/full_lifecycle_real_drand_signature.1.json index 7533585..f591294 100644 --- a/contracts/round/test_snapshots/test/full_lifecycle_real_drand_signature.1.json +++ b/contracts/round/test_snapshots/test/full_lifecycle_real_drand_signature.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -576,7 +576,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -584,7 +584,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -592,7 +592,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -608,7 +608,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_page_cursor_at_total.1.json b/contracts/round/test_snapshots/test/get_bidders_page_cursor_at_total.1.json index 6b6d1ce..53c493e 100644 --- a/contracts/round/test_snapshots/test/get_bidders_page_cursor_at_total.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_page_cursor_at_total.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -686,7 +686,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -694,7 +694,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -702,7 +702,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -718,7 +718,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_page_cursor_beyond_total.1.json b/contracts/round/test_snapshots/test/get_bidders_page_cursor_beyond_total.1.json index 6b6d1ce..53c493e 100644 --- a/contracts/round/test_snapshots/test/get_bidders_page_cursor_beyond_total.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_page_cursor_beyond_total.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -686,7 +686,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -694,7 +694,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -702,7 +702,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -718,7 +718,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_page_empty.1.json b/contracts/round/test_snapshots/test/get_bidders_page_empty.1.json index 220a816..b5ac68c 100644 --- a/contracts/round/test_snapshots/test/get_bidders_page_empty.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_page_empty.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -230,7 +230,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -238,7 +238,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -246,7 +246,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -262,7 +262,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_page_exact.1.json b/contracts/round/test_snapshots/test/get_bidders_page_exact.1.json index 6b6d1ce..53c493e 100644 --- a/contracts/round/test_snapshots/test/get_bidders_page_exact.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_page_exact.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -686,7 +686,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -694,7 +694,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -702,7 +702,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -718,7 +718,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_page_final.1.json b/contracts/round/test_snapshots/test/get_bidders_page_final.1.json index 45eb9f6..267c46e 100644 --- a/contracts/round/test_snapshots/test/get_bidders_page_final.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_page_final.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -931,7 +931,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -939,7 +939,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -947,7 +947,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -963,7 +963,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_page_multi.1.json b/contracts/round/test_snapshots/test/get_bidders_page_multi.1.json index c2d25e5..cbb229b 100644 --- a/contracts/round/test_snapshots/test/get_bidders_page_multi.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_page_multi.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -1542,7 +1542,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -1550,7 +1550,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -1558,7 +1558,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -1574,7 +1574,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_page_partial.1.json b/contracts/round/test_snapshots/test/get_bidders_page_partial.1.json index 3828a77..e7d735b 100644 --- a/contracts/round/test_snapshots/test/get_bidders_page_partial.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_page_partial.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -930,7 +930,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -938,7 +938,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -946,7 +946,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -962,7 +962,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_page_preserves_order.1.json b/contracts/round/test_snapshots/test/get_bidders_page_preserves_order.1.json index 5c161ea..90db4c5 100644 --- a/contracts/round/test_snapshots/test/get_bidders_page_preserves_order.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_page_preserves_order.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -932,7 +932,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -940,7 +940,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -948,7 +948,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -964,7 +964,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_page_rejects_limit_over_max.1.json b/contracts/round/test_snapshots/test/get_bidders_page_rejects_limit_over_max.1.json index 220a816..b5ac68c 100644 --- a/contracts/round/test_snapshots/test/get_bidders_page_rejects_limit_over_max.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_page_rejects_limit_over_max.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -230,7 +230,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -238,7 +238,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -246,7 +246,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -262,7 +262,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_page_rejects_limit_zero.1.json b/contracts/round/test_snapshots/test/get_bidders_page_rejects_limit_zero.1.json index 220a816..b5ac68c 100644 --- a/contracts/round/test_snapshots/test/get_bidders_page_rejects_limit_zero.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_page_rejects_limit_zero.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -230,7 +230,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -238,7 +238,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -246,7 +246,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -262,7 +262,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_returns_ordered_index.1.json b/contracts/round/test_snapshots/test/get_bidders_returns_ordered_index.1.json index b1af216..9b150a4 100644 --- a/contracts/round/test_snapshots/test/get_bidders_returns_ordered_index.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_returns_ordered_index.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -628,7 +628,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -636,7 +636,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -644,7 +644,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -660,7 +660,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/get_bidders_still_returns_full_list.1.json b/contracts/round/test_snapshots/test/get_bidders_still_returns_full_list.1.json index 3828a77..e7d735b 100644 --- a/contracts/round/test_snapshots/test/get_bidders_still_returns_full_list.1.json +++ b/contracts/round/test_snapshots/test/get_bidders_still_returns_full_list.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -930,7 +930,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -938,7 +938,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -946,7 +946,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -962,7 +962,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/highest_bid_table_driven.1.json b/contracts/round/test_snapshots/test/highest_bid_table_driven.1.json index aca8495..ce3f22f 100644 --- a/contracts/round/test_snapshots/test/highest_bid_table_driven.1.json +++ b/contracts/round/test_snapshots/test/highest_bid_table_driven.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -693,7 +693,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -701,7 +701,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -709,7 +709,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -725,7 +725,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/highest_bid_table_driven.2.json b/contracts/round/test_snapshots/test/highest_bid_table_driven.2.json index 0fe2035..6e2d1f0 100644 --- a/contracts/round/test_snapshots/test/highest_bid_table_driven.2.json +++ b/contracts/round/test_snapshots/test/highest_bid_table_driven.2.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -693,7 +693,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -701,7 +701,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -709,7 +709,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -725,7 +725,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/highest_bid_table_driven.3.json b/contracts/round/test_snapshots/test/highest_bid_table_driven.3.json index 7e1231f..581f2a6 100644 --- a/contracts/round/test_snapshots/test/highest_bid_table_driven.3.json +++ b/contracts/round/test_snapshots/test/highest_bid_table_driven.3.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -693,7 +693,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -701,7 +701,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -709,7 +709,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -725,7 +725,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/highest_bid_table_driven.4.json b/contracts/round/test_snapshots/test/highest_bid_table_driven.4.json index d17f1a3..5e0df56 100644 --- a/contracts/round/test_snapshots/test/highest_bid_table_driven.4.json +++ b/contracts/round/test_snapshots/test/highest_bid_table_driven.4.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -445,7 +445,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -453,7 +453,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -461,7 +461,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -477,7 +477,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/highest_bid_tie_is_deterministic_first_inserter_wins.1.json b/contracts/round/test_snapshots/test/highest_bid_tie_is_deterministic_first_inserter_wins.1.json index 3d7d31b..665efe9 100644 --- a/contracts/round/test_snapshots/test/highest_bid_tie_is_deterministic_first_inserter_wins.1.json +++ b/contracts/round/test_snapshots/test/highest_bid_tie_is_deterministic_first_inserter_wins.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -569,7 +569,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -577,7 +577,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -585,7 +585,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -601,7 +601,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/highest_bid_tie_is_deterministic_first_inserter_wins.2.json b/contracts/round/test_snapshots/test/highest_bid_tie_is_deterministic_first_inserter_wins.2.json index 7410019..79997c1 100644 --- a/contracts/round/test_snapshots/test/highest_bid_tie_is_deterministic_first_inserter_wins.2.json +++ b/contracts/round/test_snapshots/test/highest_bid_tie_is_deterministic_first_inserter_wins.2.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -569,7 +569,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -577,7 +577,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -585,7 +585,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -601,7 +601,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/late_reveal_rejected_after_window_even_with_seal_present.1.json b/contracts/round/test_snapshots/test/late_reveal_rejected_after_window_even_with_seal_present.1.json index 255689b..d9e381a 100644 --- a/contracts/round/test_snapshots/test/late_reveal_rejected_after_window_even_with_seal_present.1.json +++ b/contracts/round/test_snapshots/test/late_reveal_rejected_after_window_even_with_seal_present.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -446,7 +446,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -454,7 +454,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -462,7 +462,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -478,7 +478,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/lowest_bid_table_driven.1.json b/contracts/round/test_snapshots/test/lowest_bid_table_driven.1.json index 936a13d..b16767a 100644 --- a/contracts/round/test_snapshots/test/lowest_bid_table_driven.1.json +++ b/contracts/round/test_snapshots/test/lowest_bid_table_driven.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -693,7 +693,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -701,7 +701,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -709,7 +709,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -725,7 +725,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/lowest_bid_table_driven.2.json b/contracts/round/test_snapshots/test/lowest_bid_table_driven.2.json index 7119cb0..c2de166 100644 --- a/contracts/round/test_snapshots/test/lowest_bid_table_driven.2.json +++ b/contracts/round/test_snapshots/test/lowest_bid_table_driven.2.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -693,7 +693,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -701,7 +701,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -709,7 +709,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -725,7 +725,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/lowest_bid_table_driven.3.json b/contracts/round/test_snapshots/test/lowest_bid_table_driven.3.json index 75cf760..f994083 100644 --- a/contracts/round/test_snapshots/test/lowest_bid_table_driven.3.json +++ b/contracts/round/test_snapshots/test/lowest_bid_table_driven.3.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -693,7 +693,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -701,7 +701,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -709,7 +709,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -725,7 +725,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/lowest_bid_tie_is_deterministic_first_inserter_wins.1.json b/contracts/round/test_snapshots/test/lowest_bid_tie_is_deterministic_first_inserter_wins.1.json index 471068a..1b20697 100644 --- a/contracts/round/test_snapshots/test/lowest_bid_tie_is_deterministic_first_inserter_wins.1.json +++ b/contracts/round/test_snapshots/test/lowest_bid_tie_is_deterministic_first_inserter_wins.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -569,7 +569,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -577,7 +577,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -585,7 +585,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -601,7 +601,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/many_bidders_across_multiple_pages_settle_conserving_escrow.1.json b/contracts/round/test_snapshots/test/many_bidders_across_multiple_pages_settle_conserving_escrow.1.json index d66732f..65e8d76 100644 --- a/contracts/round/test_snapshots/test/many_bidders_across_multiple_pages_settle_conserving_escrow.1.json +++ b/contracts/round/test_snapshots/test/many_bidders_across_multiple_pages_settle_conserving_escrow.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -90,6 +134,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -119,6 +164,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -176,6 +224,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -205,6 +254,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -262,6 +314,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", @@ -291,6 +344,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -348,6 +404,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", @@ -377,6 +434,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -434,6 +494,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", @@ -463,6 +524,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -520,6 +584,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", @@ -549,6 +614,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -606,6 +674,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N", @@ -635,6 +704,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -1121,6 +1193,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/missing_reveal_bid_is_skipped_during_clear.1.json b/contracts/round/test_snapshots/test/missing_reveal_bid_is_skipped_during_clear.1.json index 50121ee..a7f893a 100644 --- a/contracts/round/test_snapshots/test/missing_reveal_bid_is_skipped_during_clear.1.json +++ b/contracts/round/test_snapshots/test/missing_reveal_bid_is_skipped_during_clear.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -568,7 +568,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -576,7 +576,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -584,7 +584,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -600,7 +600,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/no_valid_bids_after_reveal_window.1.json b/contracts/round/test_snapshots/test/no_valid_bids_after_reveal_window.1.json index 86a8048..c0b110f 100644 --- a/contracts/round/test_snapshots/test/no_valid_bids_after_reveal_window.1.json +++ b/contracts/round/test_snapshots/test/no_valid_bids_after_reveal_window.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -444,7 +444,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -452,7 +452,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -460,7 +460,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -476,7 +476,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/observer_reads_round_and_bid_state_after_lifecycle_completion.1.json b/contracts/round/test_snapshots/test/observer_reads_round_and_bid_state_after_lifecycle_completion.1.json index 886869e..791a16f 100644 --- a/contracts/round/test_snapshots/test/observer_reads_round_and_bid_state_after_lifecycle_completion.1.json +++ b/contracts/round/test_snapshots/test/observer_reads_round_and_bid_state_after_lifecycle_completion.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -450,7 +450,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -458,7 +458,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -466,7 +466,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -482,7 +482,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/open_reveal_extends_seal_through_reveal_window.1.json b/contracts/round/test_snapshots/test/open_reveal_extends_seal_through_reveal_window.1.json index 9edc7df..6781eb0 100644 --- a/contracts/round/test_snapshots/test/open_reveal_extends_seal_through_reveal_window.1.json +++ b/contracts/round/test_snapshots/test/open_reveal_extends_seal_through_reveal_window.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -446,7 +446,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -454,7 +454,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -462,7 +462,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -478,7 +478,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/open_reveal_on_settled_round_rejected.1.json b/contracts/round/test_snapshots/test/open_reveal_on_settled_round_rejected.1.json index 40ecc9b..4ad727b 100644 --- a/contracts/round/test_snapshots/test/open_reveal_on_settled_round_rejected.1.json +++ b/contracts/round/test_snapshots/test/open_reveal_on_settled_round_rejected.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -447,7 +447,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -455,7 +455,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -463,7 +463,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -479,7 +479,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/overwrite_to_larger_escrow_conserves_tokens.1.json b/contracts/round/test_snapshots/test/overwrite_to_larger_escrow_conserves_tokens.1.json index 16f227e..b7fa4c5 100644 --- a/contracts/round/test_snapshots/test/overwrite_to_larger_escrow_conserves_tokens.1.json +++ b/contracts/round/test_snapshots/test/overwrite_to_larger_escrow_conserves_tokens.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -509,7 +509,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -517,7 +517,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -525,7 +525,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -541,7 +541,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/partial_reveal_refunds_every_unrevealed_bidder_exactly_once.1.json b/contracts/round/test_snapshots/test/partial_reveal_refunds_every_unrevealed_bidder_exactly_once.1.json index f144a9c..a699785 100644 --- a/contracts/round/test_snapshots/test/partial_reveal_refunds_every_unrevealed_bidder_exactly_once.1.json +++ b/contracts/round/test_snapshots/test/partial_reveal_refunds_every_unrevealed_bidder_exactly_once.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -140,6 +184,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -169,6 +214,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -201,6 +249,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -230,6 +279,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -262,6 +314,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", @@ -291,6 +344,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -637,6 +693,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/repeated_overwrites_escrow_conservation.1.json b/contracts/round/test_snapshots/test/repeated_overwrites_escrow_conservation.1.json index 8616666..946828c 100644 --- a/contracts/round/test_snapshots/test/repeated_overwrites_escrow_conservation.1.json +++ b/contracts/round/test_snapshots/test/repeated_overwrites_escrow_conservation.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -646,7 +646,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -654,7 +654,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -662,7 +662,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -678,7 +678,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/reveal_hash_mismatch_invalidates_bid.1.json b/contracts/round/test_snapshots/test/reveal_hash_mismatch_invalidates_bid.1.json index 2d78b8e..fae268a 100644 --- a/contracts/round/test_snapshots/test/reveal_hash_mismatch_invalidates_bid.1.json +++ b/contracts/round/test_snapshots/test/reveal_hash_mismatch_invalidates_bid.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -569,7 +569,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -577,7 +577,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -585,7 +585,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -601,7 +601,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/reveal_on_settled_round_rejected.1.json b/contracts/round/test_snapshots/test/reveal_on_settled_round_rejected.1.json index 5659e30..8aad5dc 100644 --- a/contracts/round/test_snapshots/test/reveal_on_settled_round_rejected.1.json +++ b/contracts/round/test_snapshots/test/reveal_on_settled_round_rejected.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -570,7 +570,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -578,7 +578,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -586,7 +586,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -602,7 +602,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/reveal_rejects_a_bidder_index_that_drifted_from_the_escrowed_set.1.json b/contracts/round/test_snapshots/test/reveal_rejects_a_bidder_index_that_drifted_from_the_escrowed_set.1.json index f3f9e9c..0d5acf0 100644 --- a/contracts/round/test_snapshots/test/reveal_rejects_a_bidder_index_that_drifted_from_the_escrowed_set.1.json +++ b/contracts/round/test_snapshots/test/reveal_rejects_a_bidder_index_that_drifted_from_the_escrowed_set.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -140,6 +184,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -169,6 +214,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -201,6 +249,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", @@ -230,6 +279,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -262,6 +314,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -291,6 +344,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -629,6 +685,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/reveal_rejects_a_phantom_bidder_in_the_index.1.json b/contracts/round/test_snapshots/test/reveal_rejects_a_phantom_bidder_in_the_index.1.json index 8269b39..7e3b1da 100644 --- a/contracts/round/test_snapshots/test/reveal_rejects_a_phantom_bidder_in_the_index.1.json +++ b/contracts/round/test_snapshots/test/reveal_rejects_a_phantom_bidder_in_the_index.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -90,6 +134,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -119,6 +164,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -446,6 +494,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/reveal_wrong_nonce_rejected.1.json b/contracts/round/test_snapshots/test/reveal_wrong_nonce_rejected.1.json index ecf7e91..d5e4c69 100644 --- a/contracts/round/test_snapshots/test/reveal_wrong_nonce_rejected.1.json +++ b/contracts/round/test_snapshots/test/reveal_wrong_nonce_rejected.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -444,7 +444,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -452,7 +452,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -460,7 +460,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -476,7 +476,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/seeded_case_42_highest_bid_reproducible.1.json b/contracts/round/test_snapshots/test/seeded_case_42_highest_bid_reproducible.1.json index efdf20c..df43c5b 100644 --- a/contracts/round/test_snapshots/test/seeded_case_42_highest_bid_reproducible.1.json +++ b/contracts/round/test_snapshots/test/seeded_case_42_highest_bid_reproducible.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -694,7 +694,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -702,7 +702,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -710,7 +710,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -726,7 +726,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/seeded_case_7_lowest_bid_reproducible.1.json b/contracts/round/test_snapshots/test/seeded_case_7_lowest_bid_reproducible.1.json index ebf4f67..d3ef37c 100644 --- a/contracts/round/test_snapshots/test/seeded_case_7_lowest_bid_reproducible.1.json +++ b/contracts/round/test_snapshots/test/seeded_case_7_lowest_bid_reproducible.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -694,7 +694,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -702,7 +702,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -710,7 +710,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -726,7 +726,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/settle_exact_payouts_table.1.json b/contracts/round/test_snapshots/test/settle_exact_payouts_table.1.json index 6ad4ec7..3bf3d78 100644 --- a/contracts/round/test_snapshots/test/settle_exact_payouts_table.1.json +++ b/contracts/round/test_snapshots/test/settle_exact_payouts_table.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -574,7 +574,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -582,7 +582,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -590,7 +590,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -606,7 +606,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/settle_exact_payouts_table.2.json b/contracts/round/test_snapshots/test/settle_exact_payouts_table.2.json index 7626c6a..4d6f242 100644 --- a/contracts/round/test_snapshots/test/settle_exact_payouts_table.2.json +++ b/contracts/round/test_snapshots/test/settle_exact_payouts_table.2.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -574,7 +574,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -582,7 +582,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -590,7 +590,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -606,7 +606,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/settle_exact_payouts_table.3.json b/contracts/round/test_snapshots/test/settle_exact_payouts_table.3.json index de3b2ed..2f2f958 100644 --- a/contracts/round/test_snapshots/test/settle_exact_payouts_table.3.json +++ b/contracts/round/test_snapshots/test/settle_exact_payouts_table.3.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -699,7 +699,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -707,7 +707,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -715,7 +715,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -731,7 +731,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/settle_rejects_bid_already_marked_settled.1.json b/contracts/round/test_snapshots/test/settle_rejects_bid_already_marked_settled.1.json index b4e3a80..ef7f9c3 100644 --- a/contracts/round/test_snapshots/test/settle_rejects_bid_already_marked_settled.1.json +++ b/contracts/round/test_snapshots/test/settle_rejects_bid_already_marked_settled.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -115,6 +159,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -144,6 +189,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -176,6 +224,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -205,6 +254,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -509,6 +561,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/settle_rejects_double_pay_from_a_duplicated_bidder_index.1.json b/contracts/round/test_snapshots/test/settle_rejects_double_pay_from_a_duplicated_bidder_index.1.json index ce83137..6317a7c 100644 --- a/contracts/round/test_snapshots/test/settle_rejects_double_pay_from_a_duplicated_bidder_index.1.json +++ b/contracts/round/test_snapshots/test/settle_rejects_double_pay_from_a_duplicated_bidder_index.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -115,6 +159,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -144,6 +189,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -176,6 +224,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -205,6 +254,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -510,6 +562,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/settle_rejects_dropped_bidder_instead_of_stranding_escrow.1.json b/contracts/round/test_snapshots/test/settle_rejects_dropped_bidder_instead_of_stranding_escrow.1.json index ea5ced6..67d962f 100644 --- a/contracts/round/test_snapshots/test/settle_rejects_dropped_bidder_instead_of_stranding_escrow.1.json +++ b/contracts/round/test_snapshots/test/settle_rejects_dropped_bidder_instead_of_stranding_escrow.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -115,6 +159,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -144,6 +189,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -176,6 +224,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -205,6 +254,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -511,6 +563,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/settle_rejects_mint_when_the_ledger_claims_more_escrow_than_bids_hold.1.json b/contracts/round/test_snapshots/test/settle_rejects_mint_when_the_ledger_claims_more_escrow_than_bids_hold.1.json index 13e00ae..91e376f 100644 --- a/contracts/round/test_snapshots/test/settle_rejects_mint_when_the_ledger_claims_more_escrow_than_bids_hold.1.json +++ b/contracts/round/test_snapshots/test/settle_rejects_mint_when_the_ledger_claims_more_escrow_than_bids_hold.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -90,6 +134,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -119,6 +164,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -391,6 +439,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/settle_works_again_after_the_index_is_restored.1.json b/contracts/round/test_snapshots/test/settle_works_again_after_the_index_is_restored.1.json index 6f9c253..ae61177 100644 --- a/contracts/round/test_snapshots/test/settle_works_again_after_the_index_is_restored.1.json +++ b/contracts/round/test_snapshots/test/settle_works_again_after_the_index_is_restored.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -115,6 +159,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -144,6 +189,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -176,6 +224,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -205,6 +254,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -514,6 +566,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/settled_round_persistent_state_survives_seal_expiry.1.json b/contracts/round/test_snapshots/test/settled_round_persistent_state_survives_seal_expiry.1.json index 980f76d..c177db6 100644 --- a/contracts/round/test_snapshots/test/settled_round_persistent_state_survives_seal_expiry.1.json +++ b/contracts/round/test_snapshots/test/settled_round_persistent_state_survives_seal_expiry.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -451,7 +451,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -459,7 +459,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -467,7 +467,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -483,7 +483,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/token_conservation_full_lifecycle.1.json b/contracts/round/test_snapshots/test/token_conservation_full_lifecycle.1.json index 7153d8d..14aa9a4 100644 --- a/contracts/round/test_snapshots/test/token_conservation_full_lifecycle.1.json +++ b/contracts/round/test_snapshots/test/token_conservation_full_lifecycle.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -598,7 +598,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -606,7 +606,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -614,7 +614,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -630,7 +630,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/void_after_grace_refunds_all.1.json b/contracts/round/test_snapshots/test/void_after_grace_refunds_all.1.json index eef1b1c..1be7b61 100644 --- a/contracts/round/test_snapshots/test/void_after_grace_refunds_all.1.json +++ b/contracts/round/test_snapshots/test/void_after_grace_refunds_all.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -567,7 +567,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -575,7 +575,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -583,7 +583,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -599,7 +599,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/void_before_grace_rejected.1.json b/contracts/round/test_snapshots/test/void_before_grace_rejected.1.json index d00f26b..f52fa3d 100644 --- a/contracts/round/test_snapshots/test/void_before_grace_rejected.1.json +++ b/contracts/round/test_snapshots/test/void_before_grace_rejected.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -230,7 +230,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -238,7 +238,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -246,7 +246,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -262,7 +262,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/void_rejects_a_bidder_index_that_drifted_from_the_escrowed_set.1.json b/contracts/round/test_snapshots/test/void_rejects_a_bidder_index_that_drifted_from_the_escrowed_set.1.json index 00e6fe7..4774c5f 100644 --- a/contracts/round/test_snapshots/test/void_rejects_a_bidder_index_that_drifted_from_the_escrowed_set.1.json +++ b/contracts/round/test_snapshots/test/void_rejects_a_bidder_index_that_drifted_from_the_escrowed_set.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f722d7075626b6579" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -115,6 +159,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -144,6 +189,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 2000 } ] } @@ -176,6 +224,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -205,6 +254,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 2000 } ] } @@ -508,6 +560,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/contracts/round/test_snapshots/test/voided_round_refunds_survive_seal_expiry.1.json b/contracts/round/test_snapshots/test/voided_round_refunds_survive_seal_expiry.1.json index 19ff1e5..e0b1d15 100644 --- a/contracts/round/test_snapshots/test/voided_round_refunds_survive_seal_expiry.1.json +++ b/contracts/round/test_snapshots/test/voided_round_refunds_survive_seal_expiry.1.json @@ -65,7 +65,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -73,7 +73,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -81,7 +81,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -97,7 +97,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] @@ -448,7 +448,7 @@ "symbol": "asset_type" }, "val": { - "string": "sac" + "string": "native" } }, { @@ -456,7 +456,7 @@ "symbol": "code" }, "val": { - "string": "USDC" + "string": "XLM" } }, { @@ -464,7 +464,7 @@ "symbol": "contract_id" }, "val": { - "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" + "string": "" } }, { @@ -480,7 +480,7 @@ "symbol": "issuer" }, "val": { - "string": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" + "string": "" } } ] diff --git a/contracts/round/test_snapshots/test/zero_revealed_bids_void_refunds_every_bidder_exactly_once.1.json b/contracts/round/test_snapshots/test/zero_revealed_bids_void_refunds_every_bidder_exactly_once.1.json index 196626c..dd334ff 100644 --- a/contracts/round/test_snapshots/test/zero_revealed_bids_void_refunds_every_bidder_exactly_once.1.json +++ b/contracts/round/test_snapshots/test/zero_revealed_bids_void_refunds_every_bidder_exactly_once.1.json @@ -57,6 +57,50 @@ }, { "bytes": "61756469746f72" + }, + { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] } ] } @@ -140,6 +184,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", @@ -169,6 +214,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -201,6 +249,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -230,6 +279,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -262,6 +314,7 @@ } ] ], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", @@ -291,6 +344,9 @@ }, { "bytes": "69642d626c6f62" + }, + { + "u64": 29155653 } ] } @@ -636,6 +692,55 @@ "durability": "persistent", "val": { "map": [ + { + "key": { + "symbol": "asset_config" + }, + "val": { + "map": [ + { + "key": { + "symbol": "asset_type" + }, + "val": { + "string": "native" + } + }, + { + "key": { + "symbol": "code" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "contract_id" + }, + "val": { + "string": "" + } + }, + { + "key": { + "symbol": "decimals" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "string": "" + } + } + ] + } + }, { "key": { "symbol": "auditor_pubkey" diff --git a/packages/round-bindings/src/index.ts b/packages/round-bindings/src/index.ts index 700e888..a19af37 100644 --- a/packages/round-bindings/src/index.ts +++ b/packages/round-bindings/src/index.ts @@ -81,7 +81,11 @@ export const Errors = { 37: {message:"NoValidBids"}, 38: {message:"RoundFull"}, 39: {message:"InvalidLimit"}, - 40: {message:"EscrowNotConserved"} + 40: {message:"EscrowNotConserved"}, + 41: {message:"SealRoundTooEarly"}, + 42: {message:"SealRoundTooLate"}, + 43: {message:"InvalidSealRoundZero"}, + 44: {message:"InvalidCursor"} } @@ -175,14 +179,20 @@ next_cursor: Option; total: u32; } +/** + * Deterministic clearing rule. Default is a first-price sealed-bid auction + * (highest valid revealed bid wins). + */ +export type ClearingRule = {tag: "HighestBid", values: void} | {tag: "LowestBid", values: void}; + /** * Per-round escrow accounting (Persistent). One ledger, written by every path * that moves tokens, holding the three cumulative flows the conservation * predicate is proved against: - * + * * `committed == payout + refunds + locked` - * + * * `committed` is cumulative and never decreases: it counts every escrow ever * locked for the round, including escrow later returned by an * overwrite-before-close. `payout` and `refunds` count every token that has @@ -197,6 +207,10 @@ export interface EscrowLedger { */ committed: i128; /** + * Escrow still locked for this round. + */ +locked: i128; + /** * Cumulative tokens transferred to the round operator as the settled bid. */ payout: i128; @@ -205,18 +219,8 @@ payout: i128; * winner surplus, loser refunds, and void refunds). */ refunds: i128; - /** - * Escrow still locked for this round. - */ -locked: i128; } -/** - * Deterministic clearing rule. Default is a first-price sealed-bid auction - * (highest valid revealed bid wins). - */ -export type ClearingRule = {tag: "HighestBid", values: void} | {tag: "LowestBid", values: void}; - /** * Contract-global configuration, set once at deploy in Instance storage. @@ -308,6 +312,13 @@ export interface Client { * Settle a cleared round. The winner pays their bid from escrow to the * operator; the winner's surplus and every loser's escrow are refunded. * Cannot fail for lack of funds — everything was escrowed at commit. + * + * Escrow conservation is proved before and after the transfers: the round's + * ledger must satisfy `conserved` against the escrow its bidder index still + * holds, the payout plus planned refunds must drain exactly the locked + * balance, and nothing may stay locked once the round is terminal. A settle + * that would mint, drop, or double-pay escrow is rejected instead of + * executed, and any rejection reverts every transfer with it. */ settle: ({round_id}: {round_id: u64}, options?: MethodOptions) => Promise>> @@ -389,9 +400,9 @@ export class Client extends ContractClient { super( new ContractSpec([ "AAAAAAAAAM1MaXZlbmVzcyBzYWZldHkgdmFsdmU6IGlmIERyYW5kIHJvdW5kIFIgaXMgbmV2ZXIgcHJvZHVjZWQgKG5ldHdvcmsgc3RhbGwpCmFuZCB0aGUgZ3JhY2Ugd2luZG93IGFmdGVyIHRoZSByZXZlYWwgZGVhZGxpbmUgaGFzIHBhc3NlZCB3aXRob3V0IHRoZQpyb3VuZCBvcGVuaW5nLCBhbnlvbmUgY2FuIHZvaWQgaXQgYW5kIGFsbCBlc2Nyb3cgaXMgcmVmdW5kZWQuAAAAAAAABHZvaWQAAAABAAAAAAAAAAhyb3VuZF9pZAAAAAYAAAABAAAD6QAAA+0AAAAAAAAAAw==", "AAAAAAAAAJREZXRlcm1pbmlzdGljYWxseSBjb21wdXRlIHRoZSB3aW5uZXIgYWZ0ZXIgdGhlIHJldmVhbCBkZWFkbGluZS4gSWYgbm8KdmFsaWQgYmlkIHdhcyByZXZlYWxlZCwgdGhlIHJvdW5kIGlzIHZvaWRlZCBhbmQgYWxsIGVzY3JvdyBiZWNvbWVzCnJlZnVuZGFibGUuAAAABWNsZWFyAAAAAAAAAQAAAAAAAAAIcm91bmRfaWQAAAAGAAAAAQAAA+kAAAPoAAAAEwAAAAM=", - "AAAAAAAAAXVTdWJtaXQgKG9yIG92ZXJ3cml0ZSwgYmVmb3JlIHRoZSBkZWFkbGluZSkgYSBzZWFsZWQgYmlkIGFuZCBsb2NrIGVzY3Jvdy4KCi0gYGNvbW1pdG1lbnRgIEggYmluZHMgdGhlIGJpZDsgY2hlY2tlZCBhdCByZXZlYWwuCi0gYGNpcGhlcnRleHRgIEMgaXMgdGhlIHRpbWVsb2NrIHNlYWw7IGd1YXJhbnRlZXMgZm9yY2VkIHJldmVhbC4KLSBgZXNjcm93YCBpcyBhIHB1YmxpYyBVU0RDIGJ1ZGdldCBhbmQgYW4gdXBwZXIgYm91bmQgb24gdGhlIHNlYWxlZCBiaWQ7CmxvY2tlZCBub3cgc28gdGhlIHdpbm5lciBjYW4gYWx3YXlzIHBheS4KLSBgYXVkaXRvcl9ibG9iYCBpcyB0aGUgYmlkZGVyIGlkZW50aXR5IGVuY3J5cHRlZCB0byB0aGUgYXVkaXRvciBrZXkuAAAAAAAABmNvbW1pdAAAAAAABgAAAAAAAAAIcm91bmRfaWQAAAAGAAAAAAAAAAZiaWRkZXIAAAAAABMAAAAAAAAACmNvbW1pdG1lbnQAAAAAA+4AAAAgAAAAAAAAAApjaXBoZXJ0ZXh0AAAAAAAOAAAAAAAAAAZlc2Nyb3cAAAAAAAsAAAAAAAAADGF1ZGl0b3JfYmxvYgAAAA4AAAABAAAD6QAAA+0AAAAAAAAAAw==", + "AAAAAAAAAj1TdWJtaXQgKG9yIG92ZXJ3cml0ZSwgYmVmb3JlIHRoZSBkZWFkbGluZSkgYSBzZWFsZWQgYmlkIGFuZCBsb2NrIGVzY3Jvdy4KCi0gYGNvbW1pdG1lbnRgIEggYmluZHMgdGhlIGJpZDsgY2hlY2tlZCBhdCByZXZlYWwuCi0gYGNpcGhlcnRleHRgIEMgaXMgdGhlIHRpbWVsb2NrIHNlYWw7IGd1YXJhbnRlZXMgZm9yY2VkIHJldmVhbC4KLSBgZXNjcm93YCBpcyBhIHB1YmxpYyBVU0RDIGJ1ZGdldCBhbmQgYW4gdXBwZXIgYm91bmQgb24gdGhlIHNlYWxlZCBiaWQ7CmxvY2tlZCBub3cgc28gdGhlIHdpbm5lciBjYW4gYWx3YXlzIHBheS4KLSBgYXVkaXRvcl9ibG9iYCBpcyB0aGUgYmlkZGVyIGlkZW50aXR5IGVuY3J5cHRlZCB0byB0aGUgYXVkaXRvciBrZXkuCi0gYHNlYWxfcm91bmRgIG11c3QgZXF1YWwgdGhlIHJvdW5kJ3Mgc3RvcmVkIGByZXZlYWxfcm91bmRgOiB0aGUgc2VhbCBpcwpvbmx5IG1lYW5pbmdmdWwgZm9yIHRoZSBEcmFuZCByb3VuZCB0aGlzIGF1Y3Rpb24gY29tbWl0dGVkIHRvIG9wZW4uCk1pc21hdGNoZWQgc2VhbHMgYXJlIHJlamVjdGVkIGJlZm9yZSBhbnkgZXNjcm93IGlzIGxvY2tlZC4AAAAAAAAGY29tbWl0AAAAAAAHAAAAAAAAAAhyb3VuZF9pZAAAAAYAAAAAAAAABmJpZGRlcgAAAAAAEwAAAAAAAAAKY29tbWl0bWVudAAAAAAD7gAAACAAAAAAAAAACmNpcGhlcnRleHQAAAAAAA4AAAAAAAAABmVzY3JvdwAAAAAACwAAAAAAAAAMYXVkaXRvcl9ibG9iAAAADgAAAAAAAAAKc2VhbF9yb3VuZAAAAAAABgAAAAEAAAPpAAAD7QAAAAAAAAAD", "AAAAAAAAAMlSZXZlYWwgYSBiaWQuIFBlcm1pc3Npb25sZXNzOiBvbmNlIFIncyBzaWduYXR1cmUgaXMgcHVibGljLCBhbnlvbmUgY2FuCmRlY3J5cHQgYW55IGNpcGhlcnRleHQgYW5kIHN1Ym1pdCB0aGUgcmV2ZWFsIOKAlCBzbyBubyBiaWRkZXIgY2FuIGFib3J0LgpUaGUgY29udHJhY3QgY2hlY2tzIGBzaGEyNTYoYmUxNih2YWx1ZSkg4oCWIG5vbmNlKSA9PSBIYC4AAAAAAAAGcmV2ZWFsAAAAAAAEAAAAAAAAAAhyb3VuZF9pZAAAAAYAAAAAAAAABmJpZGRlcgAAAAAAEwAAAAAAAAAFdmFsdWUAAAAAAAALAAAAAAAAAAVub25jZQAAAAAAA+4AAAAgAAAAAQAAA+kAAAPtAAAAAAAAAAM=", - "AAAAAAAAAM9TZXR0bGUgYSBjbGVhcmVkIHJvdW5kLiBUaGUgd2lubmVyIHBheXMgdGhlaXIgYmlkIGZyb20gZXNjcm93IHRvIHRoZQpvcGVyYXRvcjsgdGhlIHdpbm5lcidzIHN1cnBsdXMgYW5kIGV2ZXJ5IGxvc2VyJ3MgZXNjcm93IGFyZSByZWZ1bmRlZC4KQ2Fubm90IGZhaWwgZm9yIGxhY2sgb2YgZnVuZHMg4oCUIGV2ZXJ5dGhpbmcgd2FzIGVzY3Jvd2VkIGF0IGNvbW1pdC4AAAAABnNldHRsZQAAAAAAAQAAAAAAAAAIcm91bmRfaWQAAAAGAAAAAQAAA+kAAAPtAAAAAAAAAAM=", + "AAAAAAAAAnJTZXR0bGUgYSBjbGVhcmVkIHJvdW5kLiBUaGUgd2lubmVyIHBheXMgdGhlaXIgYmlkIGZyb20gZXNjcm93IHRvIHRoZQpvcGVyYXRvcjsgdGhlIHdpbm5lcidzIHN1cnBsdXMgYW5kIGV2ZXJ5IGxvc2VyJ3MgZXNjcm93IGFyZSByZWZ1bmRlZC4KQ2Fubm90IGZhaWwgZm9yIGxhY2sgb2YgZnVuZHMg4oCUIGV2ZXJ5dGhpbmcgd2FzIGVzY3Jvd2VkIGF0IGNvbW1pdC4KCkVzY3JvdyBjb25zZXJ2YXRpb24gaXMgcHJvdmVkIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHRyYW5zZmVyczogdGhlIHJvdW5kJ3MKbGVkZ2VyIG11c3Qgc2F0aXNmeSBgY29uc2VydmVkYCBhZ2FpbnN0IHRoZSBlc2Nyb3cgaXRzIGJpZGRlciBpbmRleCBzdGlsbApob2xkcywgdGhlIHBheW91dCBwbHVzIHBsYW5uZWQgcmVmdW5kcyBtdXN0IGRyYWluIGV4YWN0bHkgdGhlIGxvY2tlZApiYWxhbmNlLCBhbmQgbm90aGluZyBtYXkgc3RheSBsb2NrZWQgb25jZSB0aGUgcm91bmQgaXMgdGVybWluYWwuIEEgc2V0dGxlCnRoYXQgd291bGQgbWludCwgZHJvcCwgb3IgZG91YmxlLXBheSBlc2Nyb3cgaXMgcmVqZWN0ZWQgaW5zdGVhZCBvZgpleGVjdXRlZCwgYW5kIGFueSByZWplY3Rpb24gcmV2ZXJ0cyBldmVyeSB0cmFuc2ZlciB3aXRoIGl0LgAAAAAABnNldHRsZQAAAAAAAQAAAAAAAAAIcm91bmRfaWQAAAAGAAAAAQAAA+kAAAPtAAAAAAAAAAM=", "AAAAAAAAANRPYnNlcnZlciB2aWV3OiB0aGUgc2VhbGVkIGNpcGhlcnRleHQgKyBhdWRpdG9yIGJsb2Igd2hpbGUgc3RpbGwgaW4KVGVtcG9yYXJ5IHN0b3JhZ2UuIFJldHVybnMgYE5vbmVgIG9uY2UgdGhlIHNlYWwgVFRMIGhhcyBleHBpcmVkIChieSBkZXNpZ24KYWZ0ZXIgdGhlIHJldmVhbCB3aW5kb3cpLiBQZXJzaXN0ZW50IGJpZCBzdGF0ZSByZW1haW5zIGZvciBzZXR0bGVtZW50LgAAAAhnZXRfc2VhbAAAAAIAAAAAAAAACHJvdW5kX2lkAAAABgAAAAAAAAAGYmlkZGVyAAAAAAATAAAAAQAAA+gAAAfQAAAABFNlYWw=", "AAAAAAAAAAAAAAAJZ2V0X3JvdW5kAAAAAAAAAQAAAAAAAAAIcm91bmRfaWQAAAAGAAAAAQAAA+kAAAfQAAAABVJvdW5kAAAAAAAAAw==", "AAAAAAAAAAAAAAAKZ2V0X2NvbmZpZwAAAAAAAAAAAAEAAAPpAAAH0AAAAAxHbG9iYWxDb25maWcAAAAD", @@ -402,13 +413,14 @@ export class Client extends ContractClient { "AAAAAAAAAIVPbmUtdGltZSBkZXBsb3kgY29uZmlndXJhdGlvbi4gQWxsIERyYW5kIHBhcmFtZXRlcnMgYXJlIHN1cHBsaWVkIGJ5IHRoZQpkZXBsb3llciBmcm9tIHZhbHVlcyB2YWxpZGF0ZWQgYWdhaW5zdCBhIGxpdmUgcXVpY2tuZXQgcm91bmQuAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAAGAAAAAAAAAAxkcmFuZF9wdWJrZXkAAAPuAAAAwAAAAAAAAAAQZzJfbmVnX2dlbmVyYXRvcgAAA+4AAADAAAAAAAAAAANkc3QAAAAADgAAAAAAAAANZHJhbmRfZ2VuZXNpcwAAAAAAAAYAAAAAAAAADGRyYW5kX3BlcmlvZAAAAAYAAAAAAAAABHVzZGMAAAATAAAAAA==", "AAAAAAAAANtQYWdpbmF0ZWQgYmlkZGVyIGluZGV4LiBQYXNzIE5vbmUgdG8gc3RhcnQsIHRoZW4gdGhlIG9wYXF1ZSBuZXh0X2N1cnNvci4KVGhlIHNuYXBzaG90IGNvdW50IGlzIGZpeGVkIG9uIHRoZSBmaXJzdCBwYWdlOyBhcHBlbmRlZCBiaWRkZXJzIHJlcXVpcmUKYSBuZXcgZW51bWVyYXRpb24uIExpbWl0IG11c3QgYmUgMeKAkzEwMC4gaGFzX21vcmUgaXMgZmFsc2UgYXQgZXhoYXVzdGlvbi4AAAAAEGdldF9iaWRkZXJzX3BhZ2UAAAADAAAAAAAAAAhyb3VuZF9pZAAAAAYAAAAAAAAABmN1cnNvcgAAAAAD6AAAAA4AAAAAAAAABWxpbWl0AAAAAAAABAAAAAEAAAPpAAAH0AAAAAtCaWRkZXJzUGFnZQAAAAAD", "AAAAAQAAAI5QZXItYmlkIGVwaGVtZXJhbCBzZWFsZWQgcGF5bG9hZCAoVGVtcG9yYXJ5KS4gQXV0by1leHBpcmVzIGFmdGVyIHRoZSByZXZlYWwKd2luZG93OyB0aGUgYXV0by1leHBpcnkgaXMgdGhlIGRlc2lnbiwgbm90IGEgd29ya2Fyb3VuZCAoUFJEIMKnOCkuAAAAAAAAAAAABFNlYWwAAAACAAAARmVuYyhiaWRkZXJfaWRlbnRpdHksIGF1ZGl0b3JfcHVia2V5KSDigJQgcmVhZGFibGUgb25seSBieSB0aGUgYXVkaXRvci4AAAAAAAxhdWRpdG9yX2Jsb2IAAAAOAAAAOkMgPSB0bG9ja19lbmNyeXB0KGJlMTYodmFsdWUpIOKAliBub25jZSwgZHJhbmRfcHVia2V5LCBSKS4AAAAAAApjaXBoZXJ0ZXh0AAAAAAAO", - "AAAABAAAAIRDb250cmFjdCBlcnJvciBjb2Rlcy4gRXZlcnkgZmFpbHVyZSBzdGF0ZSBmcm9tIHRoZSBQUkQgaGFzIGEgZGVmaW5lZCBjb2RlIOKAlAp0aGVyZSBpcyBubyB1bmRlZmluZWQgYmVoYXZpb3IgYW5kIG5vIHNpbGVudCBmYWxsYmFjay4AAAAAAAAABUVycm9yAAAAAAAAHAAAAAAAAAAOTm90SW5pdGlhbGl6ZWQAAAAAAAEAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAAAgAAAAAAAAANUm91bmROb3RGb3VuZAAAAAAAAAMAAAAAAAAAC0JpZE5vdEZvdW5kAAAAAAQAAAAAAAAADENvbW1pdENsb3NlZAAAAAoAAAAAAAAAD0NvbW1pdE5vdENsb3NlZAAAAAALAAAAAAAAABlDb21taXREZWFkbGluZUFmdGVyUmV2ZWFsAAAAAAAADAAAAAAAAAANUmV2ZWFsTm90T3BlbgAAAAAAAA0AAAAAAAAAEVJldmVhbEFscmVhZHlPcGVuAAAAAAAADgAAAAAAAAASUmV2ZWFsV2luZG93Q2xvc2VkAAAAAAAPAAAAAAAAAA9SZXZlYWxTdGlsbE9wZW4AAAAAEAAAAAAAAAAKTm90Q2xlYXJlZAAAAAAAEQAAAAAAAAAOQWxyZWFkeUNsZWFyZWQAAAAAABIAAAAAAAAADkFscmVhZHlTZXR0bGVkAAAAAAATAAAAAAAAAAtSb3VuZFZvaWRlZAAAAAAUAAAAAAAAAAtOb3RWb2lkYWJsZQAAAAAVAAAAAAAAAAtXcm9uZ1N0YXR1cwAAAAAWAAAAAAAAABVJbnZhbGlkRHJhbmRTaWduYXR1cmUAAAAAAAAeAAAAAAAAAAxIYXNoTWlzbWF0Y2gAAAAfAAAAAAAAAA9BbHJlYWR5UmV2ZWFsZWQAAAAAIAAAAAAAAAAPUGF5bG9hZFRvb0xhcmdlAAAAACEAAAAAAAAADUludmFsaWRBbW91bnQAAAAAAAAiAAAAAAAAABBCaWRFeGNlZWRzRXNjcm93AAAAIwAAAAAAAAAORGVhZGxpbmVJblBhc3QAAAAAACQAAAAAAAAAC05vVmFsaWRCaWRzAAAAACUAAAAAAAAACVJvdW5kRnVsbAAAAAAAACYAAAAAAAAADEludmFsaWRMaW1pdAAAACcAAAAAAAAADUludmFsaWRDdXJzb3IAAAAAAAAo", + "AAAABAAAAIRDb250cmFjdCBlcnJvciBjb2Rlcy4gRXZlcnkgZmFpbHVyZSBzdGF0ZSBmcm9tIHRoZSBQUkQgaGFzIGEgZGVmaW5lZCBjb2RlIOKAlAp0aGVyZSBpcyBubyB1bmRlZmluZWQgYmVoYXZpb3IgYW5kIG5vIHNpbGVudCBmYWxsYmFjay4AAAAAAAAABUVycm9yAAAAAAAAIAAAAAAAAAAOTm90SW5pdGlhbGl6ZWQAAAAAAAEAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAAAgAAAAAAAAANUm91bmROb3RGb3VuZAAAAAAAAAMAAAAAAAAAC0JpZE5vdEZvdW5kAAAAAAQAAAAAAAAADENvbW1pdENsb3NlZAAAAAoAAAAAAAAAD0NvbW1pdE5vdENsb3NlZAAAAAALAAAAAAAAABlDb21taXREZWFkbGluZUFmdGVyUmV2ZWFsAAAAAAAADAAAAAAAAAANUmV2ZWFsTm90T3BlbgAAAAAAAA0AAAAAAAAAEVJldmVhbEFscmVhZHlPcGVuAAAAAAAADgAAAAAAAAASUmV2ZWFsV2luZG93Q2xvc2VkAAAAAAAPAAAAAAAAAA9SZXZlYWxTdGlsbE9wZW4AAAAAEAAAAAAAAAAKTm90Q2xlYXJlZAAAAAAAEQAAAAAAAAAOQWxyZWFkeUNsZWFyZWQAAAAAABIAAAAAAAAADkFscmVhZHlTZXR0bGVkAAAAAAATAAAAAAAAAAtSb3VuZFZvaWRlZAAAAAAUAAAAAAAAAAtOb3RWb2lkYWJsZQAAAAAVAAAAAAAAAAtXcm9uZ1N0YXR1cwAAAAAWAAAAAAAAABVJbnZhbGlkRHJhbmRTaWduYXR1cmUAAAAAAAAeAAAAAAAAAAxIYXNoTWlzbWF0Y2gAAAAfAAAAAAAAAA9BbHJlYWR5UmV2ZWFsZWQAAAAAIAAAAAAAAAAPUGF5bG9hZFRvb0xhcmdlAAAAACEAAAAAAAAADUludmFsaWRBbW91bnQAAAAAAAAiAAAAAAAAABBCaWRFeGNlZWRzRXNjcm93AAAAIwAAAAAAAAAORGVhZGxpbmVJblBhc3QAAAAAACQAAAAAAAAAC05vVmFsaWRCaWRzAAAAACUAAAAAAAAACVJvdW5kRnVsbAAAAAAAACYAAAAAAAAADEludmFsaWRMaW1pdAAAACcAAAAAAAAAEkVzY3Jvd05vdENvbnNlcnZlZAAAAAAAKAAAAAAAAAARU2VhbFJvdW5kVG9vRWFybHkAAAAAAAApAAAAAAAAABBTZWFsUm91bmRUb29MYXRlAAAAKgAAAAAAAAAUSW52YWxpZFNlYWxSb3VuZFplcm8AAAArAAAAAAAAAA1JbnZhbGlkQ3Vyc29yAAAAAAAALA==", "AAAAAQAAAE1QZXItcm91bmQgcmVjb3JkIChQZXJzaXN0ZW50KS4gU3Vydml2ZXMgdW50aWwgdGhlIHJvdW5kIGlzIGV4cGxpY2l0bHkgY2xvc2VkLgAAAAAAAAAAAAAFUm91bmQAAAAAAAAMAAAAbUV4cGVjdGVkIGFzc2V0IGNvbmZpZyBmb3IgdGhpcyByb3VuZC4gVXNlZCBieSB0aGUgU0RLIHRvIHZhbGlkYXRlCnRoYXQgYmlkZGVycyBhcmUgbG9ja2luZyB0aGUgY29ycmVjdCBhc3NldC4AAAAAAAAMYXNzZXRfY29uZmlnAAAH0AAAABBSb3VuZEFzc2V0Q29uZmlnAAAASVB1YmxpYyBrZXkgYmlkZGVyLWlkZW50aXR5IGJsb2JzIGFyZSBlbmNyeXB0ZWQgdG8gKHNlbGVjdGl2ZSBkaXNjbG9zdXJlKS4AAAAAAAAOYXVkaXRvcl9wdWJrZXkAAAAAAA4AAAAAAAAAB2JpZGRlcnMAAAAD6gAAABMAAAAAAAAADWNsZWFyaW5nX3J1bGUAAAAAAAfQAAAADENsZWFyaW5nUnVsZQAAAC5Vbml4IHNlY29uZHMuIE11c3QgYmUgc3RyaWN0bHkgYmVmb3JlIHRpbWUoUikuAAAAAAAPY29tbWl0X2RlYWRsaW5lAAAAAAYAAACET3BhcXVlIHJlZmVyZW5jZSB0byB0aGUgaXRlbSAvIGFsbG9jYXRpb24gYmVpbmcgZGVjaWRlZCAoaGFzaCBvZiBhbgpvZmYtY2hhaW4gZGVzY3JpcHRpb24pLiBUaGUgY29udHJhY3QgaXMgYWdub3N0aWMgdG8gaXRzIG1lYW5pbmcuAAAACGl0ZW1fcmVmAAAD7gAAACAAAAAAAAAACG9wZXJhdG9yAAAAEwAAAD9Vbml4IHNlY29uZHMuIFJldmVhbCB3aW5kb3cgY2xvc2VzIGhlcmU7IG11c3QgYmUgYWZ0ZXIgdGltZShSKS4AAAAAD3JldmVhbF9kZWFkbGluZQAAAAAGAAAAQERyYW5kIHJvdW5kIG51bWJlciBSIHdob3NlIHRocmVzaG9sZCBzaWduYXR1cmUgdW5zZWFscyB0aGUgYmlkcy4AAAAMcmV2ZWFsX3JvdW5kAAAABgAAAAAAAAAGc3RhdHVzAAAAAAfQAAAABlN0YXR1cwAAAAAAAAAAAAZ3aW5uZXIAAAAAA+gAAAATAAAAAAAAAAt3aW5uaW5nX2JpZAAAAAAL", "AAAAAgAAADZSb3VuZCBsaWZlY3ljbGUuIE1pcnJvcnMgdGhlIHN0YXRlIG1hY2hpbmUgaW4gUFJEIMKnNi4AAAAAAAAAAAAGU3RhdHVzAAAAAAAFAAAAAAAAAAAAAAAET3BlbgAAAAAAAAAAAAAACVJldmVhbGluZwAAAAAAAAAAAAAAAAAAB0NsZWFyZWQAAAAAAAAAAAAAAAAHU2V0dGxlZAAAAAAAAAAAAAAAAAZWb2lkZWQAAA==", - "AAAAAgAAAAAAAAAAAAAAB0RhdGFLZXkAAAAABQAAAAAAAAAAAAAABkNvbmZpZwAAAAAAAAAAAAAAAAAMUm91bmRDb3VudGVyAAAAAQAAAAAAAAAFUm91bmQAAAAAAAABAAAABgAAAAEAAAAAAAAABVN0YXRlAAAAAAAAAgAAAAYAAAATAAAAAQAAAAAAAAAEU2VhbAAAAAIAAAAGAAAAEw==", + "AAAAAgAAAAAAAAAAAAAAB0RhdGFLZXkAAAAABgAAAAAAAAAAAAAABkNvbmZpZwAAAAAAAAAAAAAAAAAMUm91bmRDb3VudGVyAAAAAQAAAAAAAAAFUm91bmQAAAAAAAABAAAABgAAAAEAAAAAAAAABVN0YXRlAAAAAAAAAgAAAAYAAAATAAAAAQAAAAAAAAAEU2VhbAAAAAIAAAAGAAAAEwAAAAEAAAAAAAAABkVzY3JvdwAAAAAAAQAAAAY=", "AAAAAQAAAJBQZXItYmlkIGR1cmFibGUgc3RhdGUgKFBlcnNpc3RlbnQpLiBIb2xkcyBldmVyeXRoaW5nIHJlcXVpcmVkIHRvIGNsZWFyIGFuZApzZXR0bGUgLyByZWZ1bmQgc2FmZWx5LCBldmVuIGlmIHRoZSBlcGhlbWVyYWwgY2lwaGVydGV4dCBoYXMgZXhwaXJlZC4AAAAAAAAACEJpZFN0YXRlAAAABgAAADtIID0gc2hhMjU2KGJlMTYodmFsdWUpIOKAliBub25jZSkg4oCUIGJpbmRzIHRoZSBzZWFsZWQgYmlkLgAAAAAKY29tbWl0bWVudAAAAAAD7gAAACAAAABDUHVibGljIFVTREMgYnVkZ2V0IGxvY2tlZCBhdCBjb21taXQ7IHVwcGVyIGJvdW5kIG9uIHRoZSBzZWFsZWQgYmlkLgAAAAAGZXNjcm93AAAAAAALAAAArVRoZSAzMi1ieXRlIG5vbmNlIHVzZWQgaW4gdGhlIGNvbW1pdG1lbnQuIFBlcnNpc3RlZCBhdCByZXZlYWwgdGltZSBzbwp0aGF0IG9mZmxpbmUgcmVjZWlwdCB2ZXJpZmllcnMgY2FuIHJlY29tcHV0ZSBzaGEyNTYoYmUxNih2YWx1ZSnigJZub25jZSkKd2l0aG91dCB0cnVzdGluZyB0aGUgZXhwb3J0ZXIuAAAAAAAADnJldmVhbGVkX25vbmNlAAAAAAPoAAAD7gAAACAAAAAAAAAADnJldmVhbGVkX3ZhbHVlAAAAAAPoAAAACwAAAAAAAAAHc2V0dGxlZAAAAAABAAAAAAAAAAV2YWxpZAAAAAAAAAE=", "AAAAAQAAADpBIHBhZ2Ugb2YgYmlkZGVycyBmb3IgYSByb3VuZCwgd2l0aCBjb250aW51YXRpb24gbWV0YWRhdGEuAAAAAAAAAAAAC0JpZGRlcnNQYWdlAAAAAAQAAAAZUGFnZSBvZiBiaWRkZXIgYWRkcmVzc2VzLgAAAAAAAARkYXRhAAAD6gAAABMAAAAAAAAACGhhc19tb3JlAAAAAQAAAC5PcGFxdWUgY29udGludWF0aW9uIHRva2VuOyBOb25lIGF0IGV4aGF1c3Rpb24uAAAAAAALbmV4dF9jdXJzb3IAAAAD6AAAAA4AAAAuTnVtYmVyIG9mIGJpZGRlcnMgaW4gdGhlIGVudW1lcmF0aW9uIHNuYXBzaG90LgAAAAAABXRvdGFsAAAAAAAABA==", "AAAAAgAAAGtEZXRlcm1pbmlzdGljIGNsZWFyaW5nIHJ1bGUuIERlZmF1bHQgaXMgYSBmaXJzdC1wcmljZSBzZWFsZWQtYmlkIGF1Y3Rpb24KKGhpZ2hlc3QgdmFsaWQgcmV2ZWFsZWQgYmlkIHdpbnMpLgAAAAAAAAAADENsZWFyaW5nUnVsZQAAAAIAAAAAAAAAAAAAAApIaWdoZXN0QmlkAAAAAAAAAAAAAAAAAAlMb3dlc3RCaWQAAAA=", + "AAAAAQAAAqNQZXItcm91bmQgZXNjcm93IGFjY291bnRpbmcgKFBlcnNpc3RlbnQpLiBPbmUgbGVkZ2VyLCB3cml0dGVuIGJ5IGV2ZXJ5IHBhdGgKdGhhdCBtb3ZlcyB0b2tlbnMsIGhvbGRpbmcgdGhlIHRocmVlIGN1bXVsYXRpdmUgZmxvd3MgdGhlIGNvbnNlcnZhdGlvbgpwcmVkaWNhdGUgaXMgcHJvdmVkIGFnYWluc3Q6CgpgY29tbWl0dGVkID09IHBheW91dCArIHJlZnVuZHMgKyBsb2NrZWRgCgpgY29tbWl0dGVkYCBpcyBjdW11bGF0aXZlIGFuZCBuZXZlciBkZWNyZWFzZXM6IGl0IGNvdW50cyBldmVyeSBlc2Nyb3cgZXZlcgpsb2NrZWQgZm9yIHRoZSByb3VuZCwgaW5jbHVkaW5nIGVzY3JvdyBsYXRlciByZXR1cm5lZCBieSBhbgpvdmVyd3JpdGUtYmVmb3JlLWNsb3NlLiBgcGF5b3V0YCBhbmQgYHJlZnVuZHNgIGNvdW50IGV2ZXJ5IHRva2VuIHRoYXQgaGFzCmxlZnQgdGhlIGNvbnRyYWN0IGZvciB0aGlzIHJvdW5kLiBgbG9ja2VkYCBpcyB0aGUgYmFsYW5jZSBzdGlsbCBoZWxkIG9uCmJlaGFsZiBvZiB0aGUgcm91bmQncyBiaWRzLCBhbmQgaXMgbWFpbnRhaW5lZCBhcyBhbiBpbmRlcGVuZGVudCBhY2N1bXVsYXRvcgpyYXRoZXIgdGhhbiBkZXJpdmVkLCBzbyBhbiBhcml0aG1ldGljIHNsaXAgaW4gYW55IHRyYW5zZmVyIHBhdGggaXMgY2F1Z2h0Cmluc3RlYWQgb2YgY2FuY2VsbGVkIG91dC4AAAAAAAAAAAxFc2Nyb3dMZWRnZXIAAAAEAAAAP0N1bXVsYXRpdmUgZXNjcm93IHJlY2VpdmVkIGZvciB0aGlzIHJvdW5kICjOoyBvZiBldmVyeSBjb21taXQpLgAAAAAJY29tbWl0dGVkAAAAAAAACwAAACNFc2Nyb3cgc3RpbGwgbG9ja2VkIGZvciB0aGlzIHJvdW5kLgAAAAAGbG9ja2VkAAAAAAALAAAAR0N1bXVsYXRpdmUgdG9rZW5zIHRyYW5zZmVycmVkIHRvIHRoZSByb3VuZCBvcGVyYXRvciBhcyB0aGUgc2V0dGxlZCBiaWQuAAAAAAZwYXlvdXQAAAAAAAsAAABzQ3VtdWxhdGl2ZSB0b2tlbnMgdHJhbnNmZXJyZWQgYmFjayB0byBiaWRkZXJzIChvdmVyd3JpdGUgcmVmdW5kcywKd2lubmVyIHN1cnBsdXMsIGxvc2VyIHJlZnVuZHMsIGFuZCB2b2lkIHJlZnVuZHMpLgAAAAAHcmVmdW5kcwAAAAAL", "AAAAAQAAAaRDb250cmFjdC1nbG9iYWwgY29uZmlndXJhdGlvbiwgc2V0IG9uY2UgYXQgZGVwbG95IGluIEluc3RhbmNlIHN0b3JhZ2UuCgpBbGwgRHJhbmQgcGFyYW1ldGVycyBhcmUgc3VwcGxpZWQgYXQgZGVwbG95IHRpbWUgKHZhbGlkYXRlZCBhZ2FpbnN0IGEgbGl2ZQpxdWlja25ldCByb3VuZCBiZWZvcmUgZGVwbG95KSBzbyB0aGUgc291cmNlIGNhcnJpZXMgbm8gZ3Vlc3NlZCBjb25zdGFudHMuCmBkcmFuZF9wdWJrZXlgIGFuZCBgZzJfbmVnX2dlbmVyYXRvcmAgYXJlIHVuY29tcHJlc3NlZCBCTFMxMi0zODEgRzIgcG9pbnRzCigxOTIgYnl0ZXMgZWFjaCkgaW4gU29yb2JhbiBob3N0IHNlcmlhbGl6YXRpb24uIGBkc3RgIGlzIHRoZSBSRkMgOTM4MApkb21haW4gc2VwYXJhdGlvbiB0YWcgZm9yIHRoZSBjb25maWd1cmVkIERyYW5kIHNjaGVtZS4AAAAAAAAADEdsb2JhbENvbmZpZwAAAAYAAAAAAAAADWRyYW5kX2dlbmVzaXMAAAAAAAAGAAAAAAAAAAxkcmFuZF9wZXJpb2QAAAAGAAAAAAAAAAxkcmFuZF9wdWJrZXkAAAPuAAAAwAAAAAAAAAADZHN0AAAAAA4AAAAAAAAAEGcyX25lZ19nZW5lcmF0b3IAAAPuAAAAwAAAAAAAAAAEdXNkYwAAABM=", "AAAAAQAAACJBc3NldCBjb25maWd1cmF0aW9uIGZvciB0aGUgcm91bmQuAAAAAAAAAAAAEFJvdW5kQXNzZXRDb25maWcAAAAFAAAAI0Fzc2V0IHR5cGU6ICJuYXRpdmUiIChYTE0pIG9yICJzYWMiAAAAAAphc3NldF90eXBlAAAAAAAQAAAAHVNBQyBhc3NldCBjb2RlIChlLmcuLCAiVVNEQyIpAAAAAAAABGNvZGUAAAAQAAAAJlNBQyBjb250cmFjdCBJRCAoZW1wdHkgZm9yIG5hdGl2ZSBYTE0pAAAAAAALY29udHJhY3RfaWQAAAAAEAAAABJTQUMgYXNzZXQgZGVjaW1hbHMAAAAAAAhkZWNpbWFscwAAAAQAAAAnU0FDIGFzc2V0IGlzc3VlciAoZW1wdHkgZm9yIG5hdGl2ZSBYTE0pAAAAAAZpc3N1ZXIAAAAAABA=" ]), options diff --git a/packages/sdk/src/errors.test.ts b/packages/sdk/src/errors.test.ts index 7ac7b2e..f01d300 100644 --- a/packages/sdk/src/errors.test.ts +++ b/packages/sdk/src/errors.test.ts @@ -455,6 +455,11 @@ describe("isRoundContractErrorRetryable classification", () => { "NoValidBids", "RoundFull", "InvalidLimit", + "EscrowNotConserved", + "SealRoundTooEarly", + "SealRoundTooLate", + "InvalidSealRoundZero", + "InvalidCursor", ]; for (const name of permanentErrors) { diff --git a/packages/sdk/src/errors.ts b/packages/sdk/src/errors.ts index 114b0b5..d99770e 100644 --- a/packages/sdk/src/errors.ts +++ b/packages/sdk/src/errors.ts @@ -3,75 +3,155 @@ import type { EscrowConservationPhase, EscrowConservationReport, } from "./conservation.js"; -import { Errors as RoundBindingsErrors } from "@sub-rosa/round-bindings"; + +export type RoundContractErrorCode = + | "NotInitialized" + | "AlreadyInitialized" + | "RoundNotFound" + | "BidNotFound" + | "CommitClosed" + | "CommitNotClosed" + | "CommitDeadlineAfterReveal" + | "RevealNotOpen" + | "RevealAlreadyOpen" + | "RevealWindowClosed" + | "RevealStillOpen" + | "NotCleared" + | "AlreadyCleared" + | "AlreadySettled" + | "RoundVoided" + | "NotVoidable" + | "WrongStatus" + | "InvalidDrandSignature" + | "HashMismatch" + | "AlreadyRevealed" + | "PayloadTooLarge" + | "InvalidAmount" + | "BidExceedsEscrow" + | "DeadlineInPast" + | "NoValidBids" + | "RoundFull" + | "InvalidLimit" + | "EscrowNotConserved" + | "SealRoundTooEarly" + | "SealRoundTooLate" + | "InvalidSealRoundZero" + | "InvalidCursor"; export interface RoundContractErrorSpec { - code: number; - name: string; - retryable: boolean; + readonly code: number; + readonly name: RoundContractErrorCode; + readonly retryable: boolean; } -const RETRYABLE_ERROR_NAMES = new Set([ - "CommitNotClosed", - "RevealNotOpen", - "RevealStillOpen", - "NotCleared", - "NotVoidable", -]); - -function buildRoundContractErrors(): RoundContractErrorSpec[] { - return Object.entries(RoundBindingsErrors) - .map(([codeStr, info]) => ({ - code: Number(codeStr), - name: info.message, - retryable: RETRYABLE_ERROR_NAMES.has(info.message), - })) - .sort((a, b) => a.code - b.code); +export interface ContractErrorEntry { + readonly code: number; + readonly name: string; } -export const ROUND_CONTRACT_ERRORS = buildRoundContractErrors(); - -export const ROUND_CONTRACT_ERRORS_BY_NAME: Record = Object.fromEntries( - ROUND_CONTRACT_ERRORS.map((e) => [e.name, e]), +/** + * Complete, single-source mapping of Soroban round contract errors to stable SDK codes and retryable flags. + * Derived from contracts/round/src/error_paths.rs, contracts/round/src/types.rs, and ERRORS.md. + */ +export const ROUND_CONTRACT_ERRORS: Readonly> = Object.freeze({ + 1: { code: 1, name: "NotInitialized", retryable: false }, + 2: { code: 2, name: "AlreadyInitialized", retryable: false }, + 3: { code: 3, name: "RoundNotFound", retryable: false }, + 4: { code: 4, name: "BidNotFound", retryable: false }, + 10: { code: 10, name: "CommitClosed", retryable: false }, + 11: { code: 11, name: "CommitNotClosed", retryable: true }, + 12: { code: 12, name: "CommitDeadlineAfterReveal", retryable: false }, + 13: { code: 13, name: "RevealNotOpen", retryable: true }, + 14: { code: 14, name: "RevealAlreadyOpen", retryable: false }, + 15: { code: 15, name: "RevealWindowClosed", retryable: false }, + 16: { code: 16, name: "RevealStillOpen", retryable: true }, + 17: { code: 17, name: "NotCleared", retryable: true }, + 18: { code: 18, name: "AlreadyCleared", retryable: false }, + 19: { code: 19, name: "AlreadySettled", retryable: false }, + 20: { code: 20, name: "RoundVoided", retryable: false }, + 21: { code: 21, name: "NotVoidable", retryable: true }, + 22: { code: 22, name: "WrongStatus", retryable: false }, + 30: { code: 30, name: "InvalidDrandSignature", retryable: false }, + 31: { code: 31, name: "HashMismatch", retryable: false }, + 32: { code: 32, name: "AlreadyRevealed", retryable: false }, + 33: { code: 33, name: "PayloadTooLarge", retryable: false }, + 34: { code: 34, name: "InvalidAmount", retryable: false }, + 35: { code: 35, name: "BidExceedsEscrow", retryable: false }, + 36: { code: 36, name: "DeadlineInPast", retryable: false }, + 37: { code: 37, name: "NoValidBids", retryable: false }, + 38: { code: 38, name: "RoundFull", retryable: false }, + 39: { code: 39, name: "InvalidLimit", retryable: false }, + 40: { code: 40, name: "EscrowNotConserved", retryable: false }, + 41: { code: 41, name: "SealRoundTooEarly", retryable: false }, + 42: { code: 42, name: "SealRoundTooLate", retryable: false }, + 43: { code: 43, name: "InvalidSealRoundZero", retryable: false }, + 44: { code: 44, name: "InvalidCursor", retryable: false }, +}); + +export const ROUND_CONTRACT_ERRORS_BY_NAME: Readonly> = Object.freeze( + Object.fromEntries( + Object.values(ROUND_CONTRACT_ERRORS).map((spec) => [spec.name, spec]), + ), ); -export function getRoundContractError(key: string | number): RoundContractErrorSpec | undefined { - if (typeof key === "number") { - return ROUND_CONTRACT_ERRORS.find((e) => e.code === key); +/** + * Look up a contract error specification by numeric code or variant name. + */ +export function getRoundContractError( + codeOrName: number | string | undefined | null, +): RoundContractErrorSpec | undefined { + if (codeOrName === undefined || codeOrName === null) return undefined; + if (typeof codeOrName === "number") { + return ROUND_CONTRACT_ERRORS[codeOrName]; + } + const numeric = Number(codeOrName); + if (!Number.isNaN(numeric) && Object.prototype.hasOwnProperty.call(ROUND_CONTRACT_ERRORS, numeric)) { + return ROUND_CONTRACT_ERRORS[numeric]; } - return ROUND_CONTRACT_ERRORS_BY_NAME[key]; + return ROUND_CONTRACT_ERRORS_BY_NAME[codeOrName]; } -export function isRoundContractErrorRetryable(key: string | number | undefined | null): boolean { - if (key === undefined || key === null) { - return false; - } - const spec = getRoundContractError(key); - return spec?.retryable ?? false; +/** + * Determine whether a contract error (by numeric code or variant name) is retryable. + * Unknown / unmapped errors always evaluate to false (non-retryable). + */ +export function isRoundContractErrorRetryable( + codeOrName: number | string | undefined | null, +): boolean { + const spec = getRoundContractError(codeOrName); + return spec !== undefined ? spec.retryable : false; } +/** + * Compare an external list of contract error items (e.g. from error_paths.rs, types.rs, or ERRORS.md) + * against the SDK mapping. Returns a list of drift failure messages, or an empty array when in sync. + */ export function diffContractErrorMapping( - contractErrors: { code: number; name: string }[], + contractErrors: readonly ContractErrorEntry[], ): string[] { + const sdkByCode = new Map(Object.values(ROUND_CONTRACT_ERRORS).map((e) => [e.code, e])); + const inputByCode = new Map(contractErrors.map((e) => [e.code, e])); + const failures: string[] = []; - const sdkByCode = new Map(ROUND_CONTRACT_ERRORS.map((e) => [e.code, e])); - const sdkByName = ROUND_CONTRACT_ERRORS_BY_NAME; - - for (const { code, name } of contractErrors) { - const sdk = sdkByCode.get(code); - if (!sdk) { - failures.push(`code ${code} (${name}) not mapped in SDK`); - continue; - } - if (sdk.name !== name) { - failures.push(`code ${code}: SDK has ${sdk.name}, contract has ${name}`); + + for (const item of contractErrors) { + const mapped = sdkByCode.get(item.code); + if (!mapped) { + failures.push( + `Contract error ${item.name} (#${item.code}) is not mapped in SDK ROUND_CONTRACT_ERRORS`, + ); + } else if (mapped.name !== item.name) { + failures.push( + `Contract error code #${item.code} maps to '${mapped.name}' in SDK but '${item.name}' in contract source`, + ); } } - for (const sdk of ROUND_CONTRACT_ERRORS) { - const found = contractErrors.some((e) => e.code === sdk.code); - if (!found) { - failures.push(`SDK error ${sdk.name} (#${sdk.code}) missing from contract errors list`); + for (const mapped of Object.values(ROUND_CONTRACT_ERRORS)) { + if (!inputByCode.has(mapped.code)) { + failures.push( + `SDK maps error ${mapped.name} (#${mapped.code}) which is missing from contract errors list`, + ); } } diff --git a/packages/tlock/src/window.ts b/packages/tlock/src/window.ts index 5c9ed0c..6f45794 100644 --- a/packages/tlock/src/window.ts +++ b/packages/tlock/src/window.ts @@ -13,8 +13,8 @@ /** * Stable reasons a seal round can fall outside the commit window. Mirrors the - * contract's `Error` variants: SealRoundTooEarly (40), SealRoundTooLate (41), - * InvalidSealRoundZero (42). + * contract's `Error` variants: SealRoundTooEarly (41), SealRoundTooLate (42), + * InvalidSealRoundZero (43). */ export type SealRoundErrorReason = | "seal-round-too-early" diff --git a/scripts/check-round-errors.test.mjs b/scripts/check-round-errors.test.mjs index e6365a7..4a680c6 100644 --- a/scripts/check-round-errors.test.mjs +++ b/scripts/check-round-errors.test.mjs @@ -6,8 +6,6 @@ import { fileURLToPath } from "node:url"; import { describe, it } from "node:test"; import assert from "node:assert/strict"; -import { fileURLToPath } from "node:url"; - import { diffVariants, parseErrorsMd, @@ -48,7 +46,7 @@ describe("parseTypesRs", () => { "utf-8", ); const variants = parseTypesRs(content); - assert.equal(variants.length, 28); + assert.equal(variants.length, 32); assert.deepEqual( variants.find((v) => v.name === "CommitClosed"), { name: "CommitClosed", code: 10 }, @@ -63,7 +61,7 @@ describe("parseErrorsMd", () => { "utf-8", ); const variants = parseErrorsMd(content); - assert.equal(variants.length, 28); + assert.equal(variants.length, 32); assert.deepEqual( variants.find((v) => v.name === "InvalidLimit"), { name: "InvalidLimit", code: 39 }, @@ -78,7 +76,7 @@ describe("parseSdkErrors", () => { "utf-8", ); const variants = parseSdkErrors(content); - assert.equal(variants.length, 27); + assert.equal(variants.length, 32); assert.deepEqual( variants.find((v) => v.name === "InvalidLimit"), { name: "InvalidLimit", code: 39 }, @@ -90,9 +88,9 @@ describe("check-round-errors script", () => { it("passes against the real repo sources", () => { const result = runScript(); assert.match(result, /PASS\s+types\.rs, ERRORS\.md, and SDK list the same error codes\./); - assert.match(result, /types\.rs : 27 variants/); - assert.match(result, /ERRORS\.md: 27 rows/); - assert.match(result, /SDK errors: 27 variants/); + assert.match(result, /types\.rs : 32 variants/); + assert.match(result, /ERRORS\.md: 32 rows/); + assert.match(result, /SDK errors: 32 variants/); }); it("fails when ERRORS.md is missing a variant", () => {