-
- {t('wallet.send.memoLabel')}
-
-
-
- {submitting ? t('wallet.send.sending') : t('wallet.send.send')}
-
+
+ {submitting ? t('wallet.send.sending') : t('wallet.send.send')}
+
+
{submitError && (
diff --git a/frontend/src/context/ToastContext.tsx b/frontend/src/context/ToastContext.tsx
index 3e0dc597..ce870fc1 100644
--- a/frontend/src/context/ToastContext.tsx
+++ b/frontend/src/context/ToastContext.tsx
@@ -1,8 +1,6 @@
-import { createContext, useCallback, useEffect, useMemo, useState } from 'react';
+import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
import type { ReactNode } from 'react';
import { ToastContainer } from '../components/common/Toast';
-import { createContext, useContext, useState, useCallback, type ReactNode } from 'react';
-import { useTranslation } from 'react-i18next';
export type ToastType = 'success' | 'error' | 'warning' | 'info';
@@ -11,7 +9,6 @@ export interface Toast {
message: string;
type: ToastType;
duration: number;
- duration?: number;
}
interface ToastContextValue {
@@ -28,7 +25,6 @@ const defaultDurations: Record = {
};
export const ToastContext = createContext(undefined);
-const ToastContext = createContext(null);
export function ToastProvider({ children }: { children: ReactNode }) {
const [toasts, setToasts] = useState([]);
@@ -39,7 +35,10 @@ export function ToastProvider({ children }: { children: ReactNode }) {
const showToast = useCallback(
(message: string, type: ToastType = 'info', duration = defaultDurations[type]) => {
- const id = typeof crypto !== 'undefined' && 'randomUUID' in crypto ? crypto.randomUUID() : Math.random().toString(36).slice(2);
+ const id =
+ typeof crypto !== 'undefined' && 'randomUUID' in crypto
+ ? crypto.randomUUID()
+ : Math.random().toString(36).slice(2);
setToasts((prev) => [...prev, { id, message, type, duration }]);
@@ -52,35 +51,29 @@ export function ToastProvider({ children }: { children: ReactNode }) {
useEffect(() => {
const handleExternalToast = (event: Event) => {
- const customEvent = event as CustomEvent<{ message?: string; type?: ToastType; duration?: number }>;
+ const customEvent = event as CustomEvent<{
+ message?: string;
+ type?: ToastType;
+ duration?: number;
+ }>;
const message = customEvent.detail?.message;
if (!message) return;
- showToast(message, customEvent.detail?.type ?? 'info', customEvent.detail?.duration ?? defaultDurations[customEvent.detail?.type ?? 'info']);
+ const type = customEvent.detail?.type ?? 'info';
+ showToast(message, type, customEvent.detail?.duration ?? defaultDurations[type]);
};
window.addEventListener('app-toast', handleExternalToast as EventListener);
return () => window.removeEventListener('app-toast', handleExternalToast as EventListener);
}, [showToast]);
- const value = useMemo(() => ({ toasts, showToast, dismissToast }), [toasts, showToast, dismissToast]);
+ const value = useMemo(
+ () => ({ toasts, showToast, dismissToast }),
+ [toasts, showToast, dismissToast],
+ );
return (
- setToasts(prev => prev.filter(t => t.id !== id));
- }, []);
-
- const showToast = useCallback((message: string, type: ToastType = 'info', duration = 5000) => {
- const id = Math.random().toString(36).slice(2);
- setToasts(prev => [...prev, { id, message, type, duration }]);
-
- if (duration > 0) {
- setTimeout(() => dismissToast(id), duration);
- }
- }, [dismissToast]);
-
- return (
-
{children}
@@ -92,19 +85,3 @@ export function useToast() {
if (!context) throw new Error('useToast must be used within ToastProvider');
return context;
}
-
-function ToastContainer({ toasts, onDismiss }: { toasts: Toast[]; onDismiss: (id: string) => void }) {
- const { t } = useTranslation();
-
- if (toasts.length === 0) return null;
- return (
-
- {toasts.map(toast => (
-
- {toast.message}
- onDismiss(toast.id)} aria-label={t('a11y.dismiss')}>×
-
- ))}
-
- );
-}
diff --git a/frontend/src/hooks/useCommandPalette.test.tsx b/frontend/src/hooks/useCommandPalette.test.tsx
new file mode 100644
index 00000000..7c72345a
--- /dev/null
+++ b/frontend/src/hooks/useCommandPalette.test.tsx
@@ -0,0 +1,346 @@
+import React from 'react';
+import { renderHook, act } from '@testing-library/react';
+import { MemoryRouter } from 'react-router-dom';
+import { describe, it, expect, vi, beforeEach } from 'vitest';
+import type { AgentRecord } from '../types/api';
+import type { CommandPaletteResult } from '../components/common/CommandPalette';
+
+const mockNavigate = vi.fn();
+vi.mock('react-router-dom', async () => {
+ const actual = await vi.importActual('react-router-dom');
+ return { ...actual, useNavigate: () => mockNavigate };
+});
+
+const mockAgents: AgentRecord[] = [
+ {
+ id: 'agent-research',
+ name: 'Research Agent',
+ capabilities: ['research', 'summarize'],
+ price: 0.5,
+ } as AgentRecord,
+ {
+ id: 'agent-risk',
+ name: 'Risk Analyzer',
+ capabilities: ['risk', 'compliance'],
+ price: 1.25,
+ } as AgentRecord,
+];
+
+vi.mock('./useAgentRegistry', () => ({
+ useAgentRegistry: () => ({ agents: mockAgents, loading: false, error: null, refetch: vi.fn() }),
+}));
+
+const mockApiGet = vi.fn();
+vi.mock('../services/api', () => ({
+ apiClient: { get: (...args: unknown[]) => mockApiGet(...args) },
+}));
+
+const mockSetMode = vi.fn();
+vi.mock('./useTheme', () => ({
+ default: () => ({ mode: 'dark', setMode: mockSetMode, effectiveTheme: 'dark' }),
+}));
+
+const mockShowToast = vi.fn();
+let mockPublicKey: string | null = null;
+vi.mock('../context/ToastContext', () => ({
+ useToast: () => ({ toasts: [], showToast: mockShowToast, dismissToast: vi.fn() }),
+}));
+vi.mock('../context/WalletContext', () => ({
+ useWallet: () => ({ publicKey: mockPublicKey, connected: Boolean(mockPublicKey) }),
+}));
+
+// Imported after the mocks so the hook picks them up.
+const { useCommandPalette } = await import('./useCommandPalette');
+
+const wrapper = ({ children }: { children: React.ReactNode }) => (
+ {children}
+);
+
+const renderPalette = () => renderHook(() => useCommandPalette(), { wrapper });
+
+/** Run a search and return the results, awaiting the hook's async work. */
+async function runSearch(
+ result: { current: ReturnType },
+ query: string,
+): Promise {
+ let results: CommandPaletteResult[] = [];
+ await act(async () => {
+ results = await result.current.search(query);
+ });
+ return results;
+}
+
+const titles = (results: CommandPaletteResult[]) => results.map((r) => r.title);
+
+beforeEach(() => {
+ vi.clearAllMocks();
+ localStorage.clear();
+ mockPublicKey = null;
+ mockApiGet.mockResolvedValue([]);
+});
+
+// ─── Opening and closing ────────────────────────────────────────────────────
+
+describe('useCommandPalette open state', () => {
+ it('starts closed', () => {
+ const { result } = renderPalette();
+ expect(result.current.isOpen).toBe(false);
+ });
+
+ it('opens on Ctrl+K and closes on a second press', () => {
+ const { result } = renderPalette();
+
+ act(() => {
+ document.dispatchEvent(new KeyboardEvent('keydown', { key: 'k', ctrlKey: true }));
+ });
+ expect(result.current.isOpen).toBe(true);
+
+ act(() => {
+ document.dispatchEvent(new KeyboardEvent('keydown', { key: 'k', ctrlKey: true }));
+ });
+ expect(result.current.isOpen).toBe(false);
+ });
+
+ it('opens on Cmd+K for macOS', () => {
+ const { result } = renderPalette();
+ act(() => {
+ document.dispatchEvent(new KeyboardEvent('keydown', { key: 'k', metaKey: true }));
+ });
+ expect(result.current.isOpen).toBe(true);
+ });
+
+ it('opens on Ctrl+K when the shift key makes the event report "K"', () => {
+ const { result } = renderPalette();
+ act(() => {
+ document.dispatchEvent(new KeyboardEvent('keydown', { key: 'K', ctrlKey: true }));
+ });
+ expect(result.current.isOpen).toBe(true);
+ });
+
+ it('closes on Escape while open', () => {
+ const { result } = renderPalette();
+ act(() => {
+ result.current.togglePalette();
+ });
+ act(() => {
+ document.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));
+ });
+ expect(result.current.isOpen).toBe(false);
+ });
+});
+
+// ─── Fuzzy search across sources ────────────────────────────────────────────
+
+describe('useCommandPalette search', () => {
+ it('returns nothing for an empty query', async () => {
+ const { result } = renderPalette();
+ expect(await runSearch(result, ' ')).toEqual([]);
+ });
+
+ it('matches a page by an exact name', async () => {
+ const { result } = renderPalette();
+ const results = await runSearch(result, 'wallet');
+ expect(titles(results)).toContain('Wallet');
+ });
+
+ it('matches a page by a non-contiguous subset of its name', async () => {
+ const { result } = renderPalette();
+ const results = await runSearch(result, 'dshb');
+ expect(titles(results)).toContain('Dashboard');
+ });
+
+ it('matches an agent by a subset of its name', async () => {
+ const { result } = renderPalette();
+ const results = await runSearch(result, 'rsrch');
+ expect(titles(results)).toContain('Research Agent');
+ });
+
+ it('matches an agent by its capabilities, not just its name', async () => {
+ const { result } = renderPalette();
+ const results = await runSearch(result, 'compliance');
+ expect(titles(results)).toContain('Risk Analyzer');
+ });
+
+ it('returns no results when nothing matches', async () => {
+ const { result } = renderPalette();
+ expect(await runSearch(result, 'qqqzzzxxx')).toEqual([]);
+ });
+
+ it('orders results by score, best first', async () => {
+ const { result } = renderPalette();
+ const results = await runSearch(result, 'wallet');
+ // An exact page/action hit must outrank an incidental subsequence hit.
+ expect(results[0].title.toLowerCase()).toContain('wallet');
+ });
+
+ it('carries highlight indices when the title itself matched', async () => {
+ const { result } = renderPalette();
+ const results = await runSearch(result, 'dshb');
+ const dashboard = results.find((r) => r.title === 'Dashboard');
+ expect(dashboard?.titleMatches).toHaveLength(4);
+ });
+});
+
+// ─── Actions ────────────────────────────────────────────────────────────────
+
+describe('useCommandPalette actions', () => {
+ it('offers the "run new task" action and navigates when it runs', async () => {
+ const { result } = renderPalette();
+ const results = await runSearch(result, 'run new task');
+ const action = results.find((r) => r.id === 'action-run-new-task');
+
+ expect(action?.category).toBe('action');
+ act(() => action!.action());
+ expect(mockNavigate).toHaveBeenCalledWith('/tasks/new');
+ });
+
+ it('offers "jump to agent" and "open wallet"', async () => {
+ const { result } = renderPalette();
+ const jump = (await runSearch(result, 'jump to agent')).find(
+ (r) => r.id === 'action-jump-to-agent',
+ );
+ const wallet = (await runSearch(result, 'open wallet')).find(
+ (r) => r.id === 'action-open-wallet',
+ );
+
+ act(() => jump!.action());
+ expect(mockNavigate).toHaveBeenCalledWith('/agents');
+
+ act(() => wallet!.action());
+ expect(mockNavigate).toHaveBeenCalledWith('/wallet');
+ });
+
+ it('cycles the theme from the "toggle theme" action', async () => {
+ const { result } = renderPalette();
+ const toggle = (await runSearch(result, 'toggle theme')).find(
+ (r) => r.id === 'action-toggle-theme',
+ );
+
+ act(() => toggle!.action());
+ // The hook is mocked at mode 'dark', which cycles to 'system'.
+ expect(mockSetMode).toHaveBeenCalledWith('system');
+ });
+
+ it('hides "copy address" when no wallet is connected', async () => {
+ const { result } = renderPalette();
+ const results = await runSearch(result, 'copy wallet address');
+ expect(results.find((r) => r.id === 'action-copy-address')).toBeUndefined();
+ });
+
+ it('copies the public key when a wallet is connected', async () => {
+ mockPublicKey = 'GABCDEFGHIJKLMNOPQRSTUVWXYZ012345678901234567890123456789';
+ const writeText = vi.fn().mockResolvedValue(undefined);
+ Object.assign(navigator, { clipboard: { writeText } });
+
+ const { result } = renderPalette();
+ const results = await runSearch(result, 'copy wallet address');
+ const copy = results.find((r) => r.id === 'action-copy-address');
+ expect(copy).toBeDefined();
+
+ await act(async () => {
+ copy!.action();
+ });
+ expect(writeText).toHaveBeenCalledWith(mockPublicKey);
+ });
+});
+
+// ─── Tasks ──────────────────────────────────────────────────────────────────
+
+describe('useCommandPalette task results', () => {
+ it('does not hit the tasks API without a connected wallet', async () => {
+ const { result } = renderPalette();
+ await runSearch(result, 'task');
+ expect(mockApiGet).not.toHaveBeenCalled();
+ });
+
+ it('matches a task by a fragment of its prompt', async () => {
+ mockPublicKey = 'GWALLET';
+ mockApiGet.mockResolvedValue([
+ { id: 'task-abcdef123456', prompt: 'Summarise the quarterly filings', status: 'completed' },
+ ]);
+
+ const { result } = renderPalette();
+ const results = await runSearch(result, 'quarterly');
+ expect(results.find((r) => r.id === 'task-task-abcdef123456')).toBeDefined();
+ });
+
+ it('still returns local results when the tasks API fails', async () => {
+ mockPublicKey = 'GWALLET';
+ mockApiGet.mockRejectedValue(new Error('offline'));
+
+ const { result } = renderPalette();
+ const results = await runSearch(result, 'wallet');
+ expect(results.length).toBeGreaterThan(0);
+ });
+});
+
+// ─── Recent searches ────────────────────────────────────────────────────────
+
+describe('useCommandPalette recent searches', () => {
+ it('records a query that produced results', async () => {
+ const { result } = renderPalette();
+ await runSearch(result, 'wallet');
+ expect(result.current.recentSearches).toContain('wallet');
+ });
+
+ it('does not record a query that found nothing', async () => {
+ const { result } = renderPalette();
+ await runSearch(result, 'qqqzzzxxx');
+ expect(result.current.recentSearches).toEqual([]);
+ });
+
+ it('persists history to localStorage and reloads it', async () => {
+ const { result, unmount } = renderPalette();
+ await runSearch(result, 'wallet');
+ unmount();
+
+ const { result: reloaded } = renderPalette();
+ expect(reloaded.current.recentSearches).toContain('wallet');
+ });
+
+ it('keeps at most five entries, most recent first', async () => {
+ const { result } = renderPalette();
+ for (const term of ['wallet', 'agents', 'dashboard', 'task', 'theme', 'research']) {
+ await runSearch(result, term);
+ }
+ expect(result.current.recentSearches).toHaveLength(5);
+ expect(result.current.recentSearches[0]).toBe('research');
+ expect(result.current.recentSearches).not.toContain('wallet');
+ });
+
+ it('does not duplicate a repeated query, it moves it to the front', async () => {
+ const { result } = renderPalette();
+ await runSearch(result, 'wallet');
+ await runSearch(result, 'agents');
+ await runSearch(result, 'wallet');
+
+ expect(result.current.recentSearches.filter((s) => s === 'wallet')).toHaveLength(1);
+ expect(result.current.recentSearches[0]).toBe('wallet');
+ });
+
+ it('matches recent history as a search source', async () => {
+ const { result } = renderPalette();
+ await runSearch(result, 'wallet');
+
+ const results = await runSearch(result, 'wllt');
+ const recent = results.find((r) => r.category === 'recent');
+ expect(recent).toBeDefined();
+ // The stored term as typed, not the page whose label happens to match.
+ expect(recent!.title).toBe('wallet');
+ });
+
+ it('survives a corrupt localStorage entry', () => {
+ localStorage.setItem('command_palette_recent_searches', '{not json');
+ const { result } = renderPalette();
+ expect(result.current.recentSearches).toEqual([]);
+ });
+
+ it('bumps a stored query to the front via runRecentSearch', async () => {
+ const { result } = renderPalette();
+ await runSearch(result, 'wallet');
+ await runSearch(result, 'agents');
+
+ act(() => result.current.runRecentSearch('wallet'));
+ expect(result.current.recentSearches[0]).toBe('wallet');
+ });
+});
diff --git a/frontend/src/hooks/useCommandPalette.ts b/frontend/src/hooks/useCommandPalette.ts
index d8540221..84a0087f 100644
--- a/frontend/src/hooks/useCommandPalette.ts
+++ b/frontend/src/hooks/useCommandPalette.ts
@@ -1,15 +1,68 @@
-import { useState, useEffect, useCallback } from 'react';
+import { useState, useEffect, useCallback, useMemo } from 'react';
import { useNavigate } from 'react-router-dom';
+import { useTranslation } from 'react-i18next';
import type { CommandPaletteResult } from '../components/common/CommandPalette';
import { useAgentRegistry } from './useAgentRegistry';
+import { useWallet } from '../context/WalletContext';
+import { useToast } from '../context/ToastContext';
+import useTheme from './useTheme';
+import type { ThemeMode } from '../context/ThemeContext';
import { apiClient } from '../services/api';
+import { fuzzyMatchFields } from '../utils/fuzzy';
+import { NAV_ITEMS } from '../components/layout/navigation';
const RECENT_SEARCHES_KEY = 'command_palette_recent_searches';
const MAX_RECENT = 5;
+/** Cap on task records pulled per search — the palette is a jump list, not a table. */
+const TASK_FETCH_LIMIT = 20;
+
+/** Field weights: a hit on the title outranks the same hit in a subtitle. */
+const TITLE_WEIGHT = 1;
+const SUBTITLE_WEIGHT = 0.6;
+const METADATA_WEIGHT = 0.4;
+
+/**
+ * Category weights, applied after field weighting.
+ *
+ * Actions are what a command palette is *for*, so an equally good textual match
+ * on "Open Wallet" should beat one on some agent that happens to be named
+ * similarly. Recent searches rank last: they are a convenience, not an answer.
+ */
+const CATEGORY_WEIGHT: Record = {
+ action: 1.25,
+ page: 1.15,
+ agent: 1,
+ task: 1,
+ recent: 0.7,
+};
+
+/** Anything scoring below this is noise — a couple of scattered letters. */
+const MIN_SCORE = 1;
+
+interface RankedResult extends CommandPaletteResult {
+ score: number;
+}
+
+interface TaskRecord {
+ id?: string;
+ taskId?: string;
+ prompt?: string;
+ status?: string;
+}
+
+const THEME_CYCLE: Record = {
+ light: 'dark',
+ dark: 'system',
+ system: 'light',
+};
export function useCommandPalette() {
const navigate = useNavigate();
+ const { t } = useTranslation();
const { agents } = useAgentRegistry();
+ const { publicKey } = useWallet();
+ const { showToast } = useToast();
+ const { mode, setMode } = useTheme();
const [isOpen, setIsOpen] = useState(false);
const [recentSearches, setRecentSearches] = useState([]);
@@ -17,9 +70,13 @@ export function useCommandPalette() {
try {
const stored = localStorage.getItem(RECENT_SEARCHES_KEY);
if (stored) {
- setRecentSearches(JSON.parse(stored));
+ const parsed: unknown = JSON.parse(stored);
+ if (Array.isArray(parsed)) {
+ setRecentSearches(parsed.filter((item): item is string => typeof item === 'string'));
+ }
}
} catch {
+ // A corrupt or unreadable entry just means no history.
}
}, []);
@@ -31,6 +88,7 @@ export function useCommandPalette() {
try {
localStorage.setItem(RECENT_SEARCHES_KEY, JSON.stringify(updated));
} catch {
+ // History is a nicety; failing to persist must not break search.
}
return updated;
});
@@ -44,80 +102,212 @@ export function useCommandPalette() {
setIsOpen(false);
}, []);
+ const copyWalletAddress = useCallback(async () => {
+ if (!publicKey) return;
+ try {
+ await navigator.clipboard.writeText(publicKey);
+ showToast(t('palette.action.copyAddressDone'), 'success');
+ } catch {
+ showToast(t('palette.action.copyAddressFailed'), 'error');
+ }
+ }, [publicKey, showToast, t]);
+
+ /**
+ * Commands that *do* something, as opposed to navigating somewhere.
+ *
+ * Kept separate from pages so they can be weighted differently and so a
+ * command with no page of its own (copy address, toggle theme) still has a
+ * home in the palette.
+ */
+ const actions = useMemo(() => {
+ const entries: { id: string; title: string; subtitle: string; run: () => void }[] = [
+ {
+ id: 'run-new-task',
+ title: t('palette.action.newTask'),
+ subtitle: t('palette.action.newTaskHint'),
+ run: () => navigate('/tasks/new'),
+ },
+ {
+ id: 'jump-to-agent',
+ title: t('palette.action.jumpToAgent'),
+ subtitle: t('palette.action.jumpToAgentHint'),
+ run: () => navigate('/agents'),
+ },
+ {
+ id: 'open-wallet',
+ title: t('palette.action.openWallet'),
+ subtitle: t('palette.action.openWalletHint'),
+ run: () => navigate('/wallet'),
+ },
+ {
+ id: 'toggle-theme',
+ title: t('palette.action.toggleTheme'),
+ subtitle: t('palette.action.toggleThemeHint', { mode }),
+ run: () => setMode(THEME_CYCLE[mode]),
+ },
+ ];
+
+ // Offering "copy address" with no wallet connected would be a dead entry.
+ if (publicKey) {
+ entries.push({
+ id: 'copy-address',
+ title: t('palette.action.copyAddress'),
+ subtitle: `${publicKey.slice(0, 4)}…${publicKey.slice(-4)}`,
+ run: () => {
+ void copyWalletAddress();
+ },
+ });
+ }
+
+ return entries;
+ }, [t, navigate, mode, setMode, publicKey, copyWalletAddress]);
+
const search = useCallback(
async (query: string): Promise => {
- if (!query.trim()) return [];
-
- const results: CommandPaletteResult[] = [];
- const q = query.toLowerCase();
-
- const pages = [
- { path: '/dashboard', title: 'Dashboard', subtitle: 'Overview and network stats' },
- { path: '/tasks/new', title: 'New Task', subtitle: 'Create and submit a new task' },
- { path: '/agents', title: 'Agents', subtitle: 'Browse registered agents' },
- { path: '/wallet', title: 'Wallet', subtitle: 'Manage your Stellar wallet' },
- ];
-
- pages.forEach((page) => {
- if (page.title.toLowerCase().includes(q) || page.subtitle.toLowerCase().includes(q)) {
- results.push({
- id: 'page-' + page.path,
- title: page.title,
- subtitle: page.subtitle,
+ const trimmed = query.trim();
+ if (!trimmed) return [];
+
+ const ranked: RankedResult[] = [];
+
+ const push = (
+ result: Omit,
+ fields: { text: string | undefined; weight: number }[],
+ ) => {
+ const match = fuzzyMatchFields(trimmed, fields);
+ if (!match) return;
+
+ const score = match.score * (CATEGORY_WEIGHT[result.category] ?? 1);
+ if (score < MIN_SCORE) return;
+
+ ranked.push({
+ ...result,
+ score,
+ // Highlight only when the title itself is what matched; highlighting
+ // title characters because the *subtitle* matched would be a lie.
+ titleMatches: match.fieldIndex === 0 ? match.indices : undefined,
+ });
+ };
+
+ actions.forEach((action) => {
+ push(
+ {
+ id: `action-${action.id}`,
+ title: action.title,
+ subtitle: action.subtitle,
+ category: 'action',
+ action: action.run,
+ },
+ [
+ { text: action.title, weight: TITLE_WEIGHT },
+ { text: action.subtitle, weight: SUBTITLE_WEIGHT },
+ ],
+ );
+ });
+
+ // Pages come from the shared nav config, so the palette can never drift
+ // out of sync with the sidebar.
+ NAV_ITEMS.forEach((item) => {
+ const title = t(item.labelKey);
+ push(
+ {
+ id: `page-${item.path}`,
+ title,
+ subtitle: item.path,
category: 'page',
- action: () => navigate(page.path),
- });
- }
+ action: () => navigate(item.path),
+ },
+ [
+ { text: title, weight: TITLE_WEIGHT },
+ { text: item.path, weight: SUBTITLE_WEIGHT },
+ ],
+ );
});
agents.forEach((agent) => {
- const nameMatch = agent.name.toLowerCase().includes(q);
- const capMatch = agent.capabilities.some((cap: string) => cap.toLowerCase().includes(q));
- if (nameMatch || capMatch) {
- results.push({
- id: 'agent-' + agent.id,
+ const capabilities = agent.capabilities.join(', ');
+ push(
+ {
+ id: `agent-${agent.id}`,
title: agent.name,
subtitle: agent.capabilities.slice(0, 3).join(', '),
category: 'agent',
- metadata: agent.price.toFixed(2) + ' XLM',
- action: () => navigate('/agents?q=' + encodeURIComponent(agent.name)),
- });
- }
+ metadata: `${agent.price.toFixed(2)} XLM`,
+ action: () => navigate(`/agents?q=${encodeURIComponent(agent.name)}`),
+ },
+ [
+ { text: agent.name, weight: TITLE_WEIGHT },
+ { text: capabilities, weight: SUBTITLE_WEIGHT },
+ ],
+ );
});
- try {
- const walletPubKey = localStorage.getItem('wallet_pubkey');
- if (walletPubKey) {
- const tasks = await apiClient.get('/api/wallets/' + walletPubKey + '/tasks?limit=5');
+ // Recent searches are searchable too, so re-running an earlier query
+ // needs only a few of its characters.
+ recentSearches.forEach((term) => {
+ push(
+ {
+ id: `recent-${term}`,
+ title: term,
+ category: 'recent',
+ action: () => navigate(`/agents?q=${encodeURIComponent(term)}`),
+ },
+ [{ text: term, weight: TITLE_WEIGHT }],
+ );
+ });
+
+ if (publicKey) {
+ try {
+ const tasks = await apiClient.get(
+ `/api/wallets/${publicKey}/tasks?limit=${TASK_FETCH_LIMIT}`,
+ );
tasks.forEach((task) => {
const taskId = task.id || task.taskId;
- if (taskId?.toLowerCase().includes(q) || task.prompt?.toLowerCase().includes(q)) {
- results.push({
- id: 'task-' + taskId,
- title: taskId?.slice(0, 12) || 'Task',
- subtitle: task.prompt?.slice(0, 60) || 'No prompt',
+ if (!taskId) return;
+ const title = taskId.slice(0, 12);
+ push(
+ {
+ id: `task-${taskId}`,
+ title,
+ subtitle: task.prompt?.slice(0, 60) || t('palette.task.noPrompt'),
category: 'task',
- metadata: task.status || 'unknown',
- action: () => navigate('/tasks/' + taskId),
- });
- }
+ metadata: task.status || t('common.notAvailable'),
+ action: () => navigate(`/tasks/${taskId}`),
+ },
+ [
+ { text: title, weight: TITLE_WEIGHT },
+ { text: task.prompt, weight: SUBTITLE_WEIGHT },
+ { text: task.status, weight: METADATA_WEIGHT },
+ ],
+ );
});
+ } catch {
+ // The palette stays useful for local results when the API is down.
}
- } catch {
}
- if (results.length > 0) {
- addRecentSearch(query);
+ ranked.sort((a, b) => b.score - a.score);
+
+ if (ranked.length > 0) {
+ addRecentSearch(trimmed);
}
- return results;
+ // `score` is ranking scaffolding, not part of the render contract.
+ return ranked.map(({ score: _score, ...result }) => result);
+ },
+ [actions, agents, recentSearches, publicKey, navigate, addRecentSearch, t],
+ );
+
+ /** Re-running a stored query bumps it back to the top of the history. */
+ const runRecentSearch = useCallback(
+ (query: string) => {
+ addRecentSearch(query);
},
- [agents, navigate, addRecentSearch]
+ [addRecentSearch],
);
useEffect(() => {
const handleKeyDown = (e: KeyboardEvent) => {
- if ((e.metaKey || e.ctrlKey) && e.key === 'k') {
+ if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k') {
e.preventDefault();
togglePalette();
}
@@ -139,5 +329,6 @@ export function useCommandPalette() {
search,
recentSearches,
addRecentSearch,
+ runRecentSearch,
};
}
diff --git a/frontend/src/i18n/locales/en.json b/frontend/src/i18n/locales/en.json
index d7b1d858..1df1e9d6 100644
--- a/frontend/src/i18n/locales/en.json
+++ b/frontend/src/i18n/locales/en.json
@@ -302,5 +302,37 @@
"a11y.previousImage": "Previous Image (Left Arrow)",
"a11y.nextImage": "Next Image (Right Arrow)",
"a11y.dismiss": "Dismiss",
- "a11y.viewOnStellarExplorer": "View on Stellar Explorer"
+ "a11y.viewOnStellarExplorer": "View on Stellar Explorer",
+
+ "nav.group.overview": "Overview",
+ "nav.group.work": "Work",
+ "nav.group.account": "Account",
+ "a11y.skipToContent": "Skip to content",
+ "a11y.dismissNotification": "Dismiss notification",
+
+ "palette.label": "Command palette",
+ "palette.placeholder": "Search agents, tasks, or pages...",
+ "palette.loading": "Loading...",
+ "palette.noResults": "No results found",
+ "palette.noResultsHint": "Try adjusting your search",
+ "palette.category.actions": "Actions",
+ "palette.category.pages": "Pages",
+ "palette.category.agents": "Agents",
+ "palette.category.tasks": "Tasks",
+ "palette.category.recent": "Recent Searches",
+ "palette.hint.navigate": "to navigate",
+ "palette.hint.select": "to select",
+ "palette.hint.close": "to close",
+ "palette.action.newTask": "Run new task",
+ "palette.action.newTaskHint": "Create and submit a new task",
+ "palette.action.jumpToAgent": "Jump to agent",
+ "palette.action.jumpToAgentHint": "Browse the agent registry",
+ "palette.action.openWallet": "Open wallet",
+ "palette.action.openWalletHint": "Manage your Stellar wallet",
+ "palette.action.copyAddress": "Copy wallet address",
+ "palette.action.copyAddressDone": "Wallet address copied",
+ "palette.action.copyAddressFailed": "Could not copy the wallet address",
+ "palette.action.toggleTheme": "Toggle theme",
+ "palette.action.toggleThemeHint": "Currently {{mode}}",
+ "palette.task.noPrompt": "No prompt"
}
diff --git a/frontend/src/i18n/locales/zh.json b/frontend/src/i18n/locales/zh.json
index a54c0ce0..eee663d3 100644
--- a/frontend/src/i18n/locales/zh.json
+++ b/frontend/src/i18n/locales/zh.json
@@ -302,5 +302,37 @@
"a11y.previousImage": "上一张图片(左方向键)",
"a11y.nextImage": "下一张图片(右方向键)",
"a11y.dismiss": "关闭",
- "a11y.viewOnStellarExplorer": "在 Stellar Explorer 中查看"
+ "a11y.viewOnStellarExplorer": "在 Stellar Explorer 中查看",
+
+ "nav.group.overview": "概览",
+ "nav.group.work": "工作",
+ "nav.group.account": "账户",
+ "a11y.skipToContent": "跳到主要内容",
+ "a11y.dismissNotification": "关闭通知",
+
+ "palette.label": "命令面板",
+ "palette.placeholder": "搜索智能体、任务或页面…",
+ "palette.loading": "加载中…",
+ "palette.noResults": "未找到结果",
+ "palette.noResultsHint": "请尝试调整搜索内容",
+ "palette.category.actions": "操作",
+ "palette.category.pages": "页面",
+ "palette.category.agents": "智能体",
+ "palette.category.tasks": "任务",
+ "palette.category.recent": "最近搜索",
+ "palette.hint.navigate": "导航",
+ "palette.hint.select": "选择",
+ "palette.hint.close": "关闭",
+ "palette.action.newTask": "运行新任务",
+ "palette.action.newTaskHint": "创建并提交新任务",
+ "palette.action.jumpToAgent": "跳转到智能体",
+ "palette.action.jumpToAgentHint": "浏览智能体注册表",
+ "palette.action.openWallet": "打开钱包",
+ "palette.action.openWalletHint": "管理您的 Stellar 钱包",
+ "palette.action.copyAddress": "复制钱包地址",
+ "palette.action.copyAddressDone": "已复制钱包地址",
+ "palette.action.copyAddressFailed": "无法复制钱包地址",
+ "palette.action.toggleTheme": "切换主题",
+ "palette.action.toggleThemeHint": "当前:{{mode}}",
+ "palette.task.noPrompt": "无提示词"
}
diff --git a/frontend/src/pages/dashboard.tsx b/frontend/src/pages/dashboard.tsx
index 0642046c..8306374f 100644
--- a/frontend/src/pages/dashboard.tsx
+++ b/frontend/src/pages/dashboard.tsx
@@ -9,7 +9,6 @@ import { DashboardLayout } from '../components/dashboard/DashboardLayout';
import { KpiCard } from '../components/dashboard/KpiCard';
import { NetworkHealthBadge } from '../components/dashboard/NetworkHealthBadge';
import { RecentTasksTable } from '../components/dashboard/RecentTasksTable';
-import { useToast } from '../hooks/useToast';
import { Skeleton, SkeletonAvatar, SkeletonCard, SkeletonTable } from '../components/common/Skeleton';
import styles from './dashboard.module.css';
import type { TimePoint } from '../types/api';
diff --git a/frontend/src/utils/fuzzy.test.ts b/frontend/src/utils/fuzzy.test.ts
new file mode 100644
index 00000000..f8cbfedb
--- /dev/null
+++ b/frontend/src/utils/fuzzy.test.ts
@@ -0,0 +1,137 @@
+import { describe, it, expect } from 'vitest';
+import { fuzzyMatch, fuzzyMatchFields } from './fuzzy';
+
+/** Score a match, or `-Infinity` when the query does not match at all. */
+const score = (query: string, target: string) => fuzzyMatch(query, target)?.score ?? -Infinity;
+
+describe('fuzzyMatch — what matches', () => {
+ it('matches an exact string', () => {
+ expect(fuzzyMatch('wallet', 'Wallet')).not.toBeNull();
+ });
+
+ it('matches a prefix', () => {
+ expect(fuzzyMatch('dash', 'Dashboard')).not.toBeNull();
+ });
+
+ it('matches a non-contiguous subsequence — the point of fuzzy search', () => {
+ expect(fuzzyMatch('dsh', 'Dashboard')).not.toBeNull();
+ expect(fuzzyMatch('tnw', 'Task: New')).not.toBeNull();
+ expect(fuzzyMatch('cpad', 'Copy wallet address')).not.toBeNull();
+ });
+
+ it('is case-insensitive in both directions', () => {
+ expect(fuzzyMatch('WALLET', 'wallet')).not.toBeNull();
+ expect(fuzzyMatch('wallet', 'WALLET')).not.toBeNull();
+ });
+
+ it('ignores surrounding whitespace in the query', () => {
+ expect(fuzzyMatch(' dash ', 'Dashboard')).not.toBeNull();
+ });
+
+ it('rejects characters that are absent', () => {
+ expect(fuzzyMatch('xyz', 'Dashboard')).toBeNull();
+ });
+
+ it('rejects characters that are present but out of order', () => {
+ // Every letter of "hsad" is in "Dashboard", but not in that sequence.
+ expect(fuzzyMatch('hsad', 'Dashboard')).toBeNull();
+ });
+
+ it('rejects a query longer than the target', () => {
+ expect(fuzzyMatch('dashboards-and-more', 'Dash')).toBeNull();
+ });
+
+ it('treats an empty query as a zero-score match, not a rejection', () => {
+ expect(fuzzyMatch('', 'Dashboard')).toEqual({ score: 0, indices: [] });
+ });
+
+ it('handles an empty target without throwing', () => {
+ expect(fuzzyMatch('a', '')).toBeNull();
+ });
+});
+
+describe('fuzzyMatch — ranking', () => {
+ it('ranks an exact match above a prefix match', () => {
+ expect(score('wallet', 'Wallet')).toBeGreaterThan(score('wallet', 'Wallet settings'));
+ });
+
+ it('ranks a prefix above a match starting mid-string', () => {
+ expect(score('task', 'Task history')).toBeGreaterThan(score('task', 'Run new task'));
+ });
+
+ it('ranks consecutive characters above scattered ones', () => {
+ expect(score('new', 'New task')).toBeGreaterThan(score('new', 'Network stats view'));
+ });
+
+ it('rewards matching the start of a word', () => {
+ // `nt` as two word-initials beats `nt` buried inside one word.
+ expect(score('nt', 'New task')).toBeGreaterThan(score('nt', 'Nightly'));
+ });
+
+ it('rewards camelCase humps as word starts', () => {
+ expect(score('rt', 'RecentTasks')).toBeGreaterThan(score('rt', 'Rooted'));
+ });
+
+ it('penalises a long unmatched prefix', () => {
+ expect(score('x', 'xylophone')).toBeGreaterThan(score('x', 'aaaaaaaaaax'));
+ });
+
+ it('caps the leading penalty so a deep match is still findable', () => {
+ expect(fuzzyMatch('x', 'a'.repeat(200) + 'x')).not.toBeNull();
+ });
+});
+
+describe('fuzzyMatch — highlight indices', () => {
+ it('reports the index of every matched character, ascending', () => {
+ const match = fuzzyMatch('dsh', 'Dashboard');
+ expect(match).not.toBeNull();
+ expect(match!.indices).toHaveLength(3);
+ expect([...match!.indices].sort((a, b) => a - b)).toEqual(match!.indices);
+ });
+
+ it('reports indices that actually spell the query in the target', () => {
+ const target = 'Copy wallet address';
+ const match = fuzzyMatch('cpad', target)!;
+ const spelled = match.indices.map((i) => target[i].toLowerCase()).join('');
+ expect(spelled).toBe('cpad');
+ });
+
+ it('anchors a prefix match at index 0', () => {
+ expect(fuzzyMatch('dash', 'Dashboard')!.indices).toEqual([0, 1, 2, 3]);
+ });
+});
+
+describe('fuzzyMatchFields', () => {
+ const fields = (title: string, subtitle: string) => [
+ { text: title, weight: 1 },
+ { text: subtitle, weight: 0.5 },
+ ];
+
+ it('returns null when no field matches', () => {
+ expect(fuzzyMatchFields('zzz', fields('Wallet', 'Manage funds'))).toBeNull();
+ });
+
+ it('reports which field produced the winning score', () => {
+ const match = fuzzyMatchFields('wallet', fields('Wallet', 'Manage funds'));
+ expect(match?.fieldIndex).toBe(0);
+ });
+
+ it('falls back to a lower-weighted field when only that one matches', () => {
+ const match = fuzzyMatchFields('funds', fields('Wallet', 'Manage funds'));
+ expect(match?.fieldIndex).toBe(1);
+ });
+
+ it('prefers the higher-weighted field when both match equally well', () => {
+ const match = fuzzyMatchFields('abc', fields('abc', 'abc'));
+ expect(match?.fieldIndex).toBe(0);
+ });
+
+ it('skips empty and missing fields rather than throwing', () => {
+ const match = fuzzyMatchFields('abc', [
+ { text: undefined, weight: 1 },
+ { text: '', weight: 1 },
+ { text: 'abc', weight: 1 },
+ ]);
+ expect(match?.fieldIndex).toBe(2);
+ });
+});
diff --git a/frontend/src/utils/fuzzy.ts b/frontend/src/utils/fuzzy.ts
new file mode 100644
index 00000000..2cbdd82e
--- /dev/null
+++ b/frontend/src/utils/fuzzy.ts
@@ -0,0 +1,199 @@
+/**
+ * Subsequence fuzzy matching with positional scoring.
+ *
+ * Used by the command palette so that typing any subset of a label's
+ * characters finds it: `dsh` → "Dashboard", `tnw` → "Task: New", `wlt` →
+ * "Wallet". A plain `includes()` check cannot do that, and a plain subsequence
+ * check finds everything without saying which hit is *better* — which is the
+ * part that decides what the user sees first.
+ *
+ * Scoring rewards the things that make a match feel intentional:
+ * characters matched consecutively, characters that start a word, and matches
+ * that begin near the start of the string. It penalises gaps and a long
+ * unmatched prefix.
+ */
+
+/** Points for matching a character at all. */
+const BASE_MATCH = 4
+/** Extra for a character immediately after the previous match. */
+const CONSECUTIVE_BONUS = 10
+/** Extra for a character that begins a word (`new task`, `NewTask`, `new-task`). */
+const WORD_START_BONUS = 9
+/** Flat cost of skipping over characters between two matches. */
+const GAP_PENALTY = 3
+/** Cost per character skipped before the first match, capped by `MAX_LEADING_PENALTY`. */
+const LEADING_PENALTY = 1
+const MAX_LEADING_PENALTY = 12
+/** Awarded when the target is exactly the query. */
+const EXACT_BONUS = 40
+/** Awarded when the match covers an unbroken run from index 0. */
+const PREFIX_BONUS = 20
+
+const WORD_SEPARATORS = new Set([' ', '-', '_', '/', '.', ':', ',', '(', '['])
+
+export interface FuzzyMatch {
+ /** Higher is better. Only meaningful relative to other scores for the same query. */
+ score: number
+ /** Indices into the original `target` that the query matched, ascending. */
+ indices: number[]
+}
+
+/** Whether `target[index]` begins a word, including a camelCase hump. */
+function isWordStart(target: string, index: number): boolean {
+ if (index === 0) return true
+ const prev = target[index - 1]
+ if (WORD_SEPARATORS.has(prev)) return true
+ // camelCase / PascalCase boundary: lower-then-upper.
+ return prev === prev.toLowerCase() && target[index] !== target[index].toLowerCase()
+}
+
+/**
+ * Match `query` against `target`, returning the best-scoring alignment, or
+ * `null` when `query` is not a subsequence of `target`.
+ *
+ * An empty query matches everything with score 0 — callers decide whether an
+ * empty query should list all candidates or none.
+ *
+ * Runs in O(query × target); both are short strings in every call site here.
+ */
+export function fuzzyMatch(query: string, target: string): FuzzyMatch | null {
+ const q = query.trim().toLowerCase()
+ const rawTarget = target ?? ''
+ const t = rawTarget.toLowerCase()
+
+ if (q.length === 0) return { score: 0, indices: [] }
+ if (q.length > t.length) return null
+
+ const n = q.length
+ const m = t.length
+
+ // scores[i][j] = best score for aligning query[0..i] with query[i] landing on
+ // target[j]. `parent` remembers which target index query[i-1] used, so the
+ // winning alignment can be walked back for highlight indices.
+ const scores: number[][] = []
+ const parent: number[][] = []
+ const NO_MATCH = Number.NEGATIVE_INFINITY
+
+ for (let i = 0; i < n; i++) {
+ scores.push(new Array(m).fill(NO_MATCH))
+ parent.push(new Array(m).fill(-1))
+ }
+
+ for (let i = 0; i < n; i++) {
+ // Best score from the previous query character, over target indices that
+ // are at least two behind `j`. Maintained as `j` advances so the inner
+ // scan stays linear rather than quadratic.
+ let bestGapped = NO_MATCH
+ let bestGappedIndex = -1
+
+ for (let j = 0; j < m; j++) {
+ if (i > 0 && j >= 2) {
+ const candidate = scores[i - 1][j - 2]
+ if (candidate > bestGapped) {
+ bestGapped = candidate
+ bestGappedIndex = j - 2
+ }
+ }
+
+ if (q[i] !== t[j]) continue
+
+ const charScore = BASE_MATCH + (isWordStart(rawTarget, j) ? WORD_START_BONUS : 0)
+
+ if (i === 0) {
+ scores[0][j] = charScore - Math.min(j * LEADING_PENALTY, MAX_LEADING_PENALTY)
+ parent[0][j] = -1
+ continue
+ }
+
+ // Either query[i-1] matched at j-1 (consecutive), or further back (gap).
+ const consecutive = scores[i - 1][j - 1]
+ let best = NO_MATCH
+ let bestFrom = -1
+
+ if (consecutive > NO_MATCH) {
+ best = consecutive + charScore + CONSECUTIVE_BONUS
+ bestFrom = j - 1
+ }
+ if (bestGapped > NO_MATCH) {
+ const gapped = bestGapped + charScore - GAP_PENALTY
+ if (gapped > best) {
+ best = gapped
+ bestFrom = bestGappedIndex
+ }
+ }
+
+ scores[i][j] = best
+ parent[i][j] = bestFrom
+ }
+ }
+
+ // Best endpoint for the final query character.
+ let bestScore = NO_MATCH
+ let bestEnd = -1
+ for (let j = 0; j < m; j++) {
+ if (scores[n - 1][j] > bestScore) {
+ bestScore = scores[n - 1][j]
+ bestEnd = j
+ }
+ }
+
+ if (bestEnd === -1 || bestScore === NO_MATCH) return null
+
+ const indices: number[] = []
+ let i = n - 1
+ let j = bestEnd
+ while (i >= 0 && j >= 0) {
+ indices.push(j)
+ j = parent[i][j]
+ i--
+ }
+ indices.reverse()
+
+ let score = bestScore
+ if (t === q) {
+ score += EXACT_BONUS
+ } else if (indices[0] === 0 && indices[indices.length - 1] === n - 1) {
+ // Unbroken run anchored at the start — a true prefix match.
+ score += PREFIX_BONUS
+ }
+
+ return { score, indices }
+}
+
+/**
+ * Best score across several fields of one candidate.
+ *
+ * Fields are weighted so a hit on a title outranks the same hit buried in a
+ * subtitle. Returns `null` when no field matches, so callers can filter and
+ * rank in one pass.
+ */
+export interface WeightedField {
+ text: string | undefined | null
+ /** Multiplier applied to this field's score. Titles should weigh most. */
+ weight: number
+}
+
+export interface FuzzyFieldMatch extends FuzzyMatch {
+ /** Index into the `fields` array that produced the winning score. */
+ fieldIndex: number
+}
+
+export function fuzzyMatchFields(
+ query: string,
+ fields: WeightedField[],
+): FuzzyFieldMatch | null {
+ let best: FuzzyFieldMatch | null = null
+
+ fields.forEach((field, fieldIndex) => {
+ if (!field.text) return
+ const match = fuzzyMatch(query, field.text)
+ if (!match) return
+
+ const weighted = { ...match, score: match.score * field.weight, fieldIndex }
+ if (!best || weighted.score > best.score) {
+ best = weighted
+ }
+ })
+
+ return best
+}
diff --git a/smart-contracts/Cargo.lock b/smart-contracts/Cargo.lock
index 6f581a53..8f3f2f53 100644
--- a/smart-contracts/Cargo.lock
+++ b/smart-contracts/Cargo.lock
@@ -9,13 +9,6 @@ dependencies = [
"soroban-sdk",
]
-[[package]]
-name = "agent-marketplace"
-version = "0.1.0"
-dependencies = [
- "soroban-sdk",
-]
-
[[package]]
name = "agent-registry"
version = "0.1.0"
@@ -25,6 +18,7 @@ dependencies = [
"rand_core",
"soroban-sdk",
"tokio",
+ "upgrade-manager",
]
[[package]]
@@ -488,13 +482,6 @@ dependencies = [
"subtle",
]
-[[package]]
-name = "dispute-resolution"
-version = "0.1.0"
-dependencies = [
- "soroban-sdk",
-]
-
[[package]]
name = "downcast-rs"
version = "1.2.1"
@@ -1536,13 +1523,6 @@ dependencies = [
"unicode-ident",
]
-[[package]]
-name = "task-store"
-version = "0.1.0"
-dependencies = [
- "soroban-sdk",
-]
-
[[package]]
name = "thiserror"
version = "1.0.69"
@@ -1682,6 +1662,13 @@ version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
+[[package]]
+name = "upgrade-manager"
+version = "0.1.0"
+dependencies = [
+ "soroban-sdk",
+]
+
[[package]]
name = "version_check"
version = "0.9.5"
diff --git a/smart-contracts/contracts/agent_bidding/README.md b/smart-contracts/contracts/agent_bidding/README.md
index 5c2106cb..05b0121c 100644
--- a/smart-contracts/contracts/agent_bidding/README.md
+++ b/smart-contracts/contracts/agent_bidding/README.md
@@ -5,63 +5,105 @@ On-chain sealed-bid auction for AI agent tasks on the [ai-net](https://github.co
## Overview
The Agent Bidding contract implements a **commit-reveal auction** where agents
-compete for tasks by submitting sealed bids. After the bidding period closes,
-bidders reveal their plaintext prices and terms. The contract verifies each
-commitment hash, then selects a winner using a **weighted composite score**
-(60% price, 40% reputation). The task creator then awards the contract, which
-creates an on-chain escrow entry and refunds every bidder's anti-spam bond.
+compete for tasks by submitting sealed bids. After the bidding period closes, a
+bounded **reveal window** opens in which bidders disclose their plaintext prices
+and terms. The contract verifies each commitment hash, then selects a winner
+using a **weighted composite score** (60% price, 40% reputation). The creator or
+the winner then awards the contract, which creates an on-chain escrow entry,
+returns the anti-spam bond of every bidder who revealed, and forfeits the bond
+of every bidder who did not.
+
+The commit-reveal flow is hardened against front-running, bid replay, and
+unbounded positions. **Read
+[`docs/agent-bidding-security.md`](../../docs/agent-bidding-security.md) before
+integrating** — it documents the attack surface, each mitigation, and the
+residual risks the contract does *not* cover (self-declared reputation, public
+reveals, Sybil bidding, and the fact that bonds and escrow are modelled as state
+rather than custodied here).
## Auction Lifecycle
+```text
+create_auction deadline reveal_deadline
+ │ │ │
+ ├────── bidding window ────┤ │
+ │ submit_bid │ │
+ │ ├───── reveal window ──────┤
+ │ │ reveal_bid │
+ │ │ ├──► reveal_bids
+ │ [Bidding] │ [Bidding] │ [Reveal]
+ │ │ │ ↓
+ │ │ │ award_contract
+ │ │ │ [Awarded]
+ │ │ │
+ │ │ └──► abort_auction
+ │ │ (no reveals)
+ │ │ [Cancelled]
```
-create_auction → submit_bid (sealed) → reveal_bid (each bidder)
- ↓ ↓
- [Bidding] ──────────────────────────→ [Reveal]
- ↓
- reveal_bids (winner computed)
- ↓
- award_contract (escrow + refunds)
- ↓
- [Awarded]
-```
+
+`reveal_bids` may also run **before** `reveal_deadline`, but only once every
+sealed bid has been revealed — at that point there is nothing left to race.
## Functions
| Function | Auth | Description |
|---|---|---|
-| `create_auction` | creator | Initialise auction with duration, reserve price, bond |
+| `create_auction` | creator | Initialise auction from an `AuctionConfig` (durations, reserve, price cap, bond) |
| `submit_bid` | bidder | Submit sealed commitment + bond + reputation |
-| `reveal_bid` | bidder | Reveal plaintext (price, terms, salt) after deadline |
-| `reveal_bids` | anyone | Finalise reveals and compute weighted-score winner |
-| `award_contract` | anyone | Create escrow, refund all bonds, mark awarded |
+| `reveal_bid` | bidder | Reveal plaintext (price, terms, salt) inside the reveal window |
+| `reveal_bids` | any authenticated caller | Finalise reveals and compute the weighted-score winner |
+| `award_contract` | creator **or** winner | Create escrow, settle bonds, mark awarded |
+| `abort_auction` | any authenticated caller | Cancel a dead auction (no reveals) and release all bonds |
+| `commitment_of` | — | Compute the commitment for a bid (see below) |
| `get_auction` | — | Read auction record |
| `get_bid` | — | Read a specific bid |
| `get_escrow` | — | Read escrow entry |
| `get_winner` | — | Read winning address |
| `get_bidder_count` | — | Count bidders for a task |
+| `get_bidders` | — | Read one page of the bidder list (`limit` clamped to 50) |
## Scoring Algorithm
All revealed bids are normalised:
-```
+```text
price_score = 1000 × (max_price − price) ÷ max(max_price − min_price, 1)
rep_score = 1000 × (rep − min_rep) ÷ max(max_rep − min_rep, 1)
score = (60 × price_score + 40 × rep_score) ÷ 100
```
+(`max_price`/`min_price` are the observed extremes among revealed bids, not the
+auction's configured cap.)
+
**Tie-break:** highest score wins → if tied, lower price wins → if still
tied, earliest submission wins.
+> `reputation` is **self-declared** by the bidder and only range-checked. Until
+> it is sourced from an attested oracle, treat the composite as price-driven
+> with an advisory reputation tiebreak.
+
## Commitment Hash
-Bidders must compute the commitment **off-chain** before calling `submit_bid`:
+Bidders compute the commitment **off-chain and locally** before calling
+`submit_bid`:
```text
-commitment = SHA-256(bidder_xdr || i128_price_xdr || terms_xdr || salt_xdr)
+commitment = SHA-256(
+ domain_xdr || contract_id_xdr || task_id_xdr ||
+ bidder_xdr || price_xdr || terms_xdr || salt_xdr
+)
```
-Each field is serialised in Stellar XDR wire format and concatenated.
+where `domain` is `COMMITMENT_DOMAIN` (`"ai-net:agent_bidding:v2:bid"`). Each
+field is serialised in Stellar XDR wire format and concatenated. Binding the
+contract id, task id, and bidder is what stops a commitment from being replayed
+onto another auction, another deployment, or by another bidder.
+
+The `commitment_of` view is the same code path `reveal_bid` verifies against, so
+tooling should mirror it rather than re-deriving the layout. Compute it
+**locally** — invoking it against a public RPC endpoint hands the plaintext
+price to whoever runs that node, defeating the seal.
+
A mismatched commitment during `reveal_bid` results in `InvalidCommitment`.
## Events
@@ -75,6 +117,7 @@ All events share the first topic `bidding`:
| `BidRevealedEvent` | `bid_rvld` | `reveal_bid` |
| `BidsRevealedEvent` | `bids_rvld` | `reveal_bids` |
| `ContractAwardedEvent` | `cntrct_aw` | `award_contract` |
+| `AuctionAbortedEvent` | `aborted` | `abort_auction` |
## Running Tests
@@ -94,7 +137,13 @@ cargo build -p agent-bidding --target wasm32v1-none --release
| Name | Value | Note |
|---|---|---|
| `DEFAULT_BIDDING_DURATION_SECS` | 3 600 | 1 hour |
+| `DEFAULT_REVEAL_DURATION_SECS` | 3 600 | 1 hour |
+| `MIN_PHASE_DURATION_SECS` | 60 | Shortest bidding/reveal window |
+| `MAX_PHASE_DURATION_SECS` | 2 592 000 | 30 days — bounds how long bonds can be locked |
+| `MAX_BID_PRICE` | 10¹⁷ stroops | Global price ceiling; keeps scoring clear of `i128` overflow |
+| `MAX_BIDDERS` | 100 | Bounds the loops in `reveal_bids` / `award_contract` |
+| `MAX_TERMS_LEN` | 512 | Max bytes of revealed `terms` |
| `MAX_REPUTATION` | 100 | Percentage scale |
| `SCORE_SCALE` | 1 000 | Normalisation factor |
| `PRICE_WEIGHT` | 60 | 60% |
-| `REPUTATION_WEIGHT` | 40 | 40% |
\ No newline at end of file
+| `REPUTATION_WEIGHT` | 40 | 40% |
diff --git a/smart-contracts/contracts/agent_bidding/src/errors.rs b/smart-contracts/contracts/agent_bidding/src/errors.rs
index 6297fedc..98ce8200 100644
--- a/smart-contracts/contracts/agent_bidding/src/errors.rs
+++ b/smart-contracts/contracts/agent_bidding/src/errors.rs
@@ -5,7 +5,7 @@
//! callers can branch on the numeric code without coupling to a specific SDK
//! build.
//!
-//! The code range used here (`1..=17`) is local to this contract. Codes are
+//! The code range used here (`1..=26`) is local to this contract. Codes are
//! chosen to read naturally in logs while remaining stable across releases:
//! **never renumber an existing variant** once the contract is deployed.
@@ -40,7 +40,7 @@ pub enum Error {
NotEnoughBids = 11,
/// Reputation score is out of the accepted `[0, 100]` range.
InvalidReputation = 12,
- /// The bid price must be positive and at least the reserve price.
+ /// The bid price must be positive and within `[reserve_price, max_price]`.
InvalidPrice = 13,
/// The locked bond does not match the auction's required bond.
InvalidBond = 14,
@@ -50,4 +50,28 @@ pub enum Error {
WinnerNotDetermined = 16,
/// The escrow for this auction has already been created.
EscrowAlreadyCreated = 17,
+
+ // ── Added by the front-running / commit-reveal hardening pass (#350) ────
+ /// The reveal window has closed; this bid can no longer be revealed.
+ RevealPeriodEnded = 18,
+ /// The reveal window is still open, so the winner cannot be finalised yet.
+ RevealPeriodActive = 19,
+ /// The auction already holds [`MAX_BIDDERS`] sealed bids.
+ ///
+ /// [`MAX_BIDDERS`]: crate::MAX_BIDDERS
+ AuctionFull = 20,
+ /// A phase duration is outside `[MIN_PHASE_DURATION_SECS, MAX_PHASE_DURATION_SECS]`.
+ InvalidDuration = 21,
+ /// The revealed `terms` string exceeds [`MAX_TERMS_LEN`] bytes.
+ ///
+ /// [`MAX_TERMS_LEN`]: crate::MAX_TERMS_LEN
+ TermsTooLong = 22,
+ /// The auction's price bounds are inconsistent (e.g. `max_price < reserve_price`).
+ InvalidPriceRange = 23,
+ /// The auction has reached a terminal phase and accepts no further calls.
+ AuctionClosed = 24,
+ /// `abort_auction` was called on an auction that still has a valid reveal.
+ AuctionNotAbortable = 25,
+ /// An arithmetic operation overflowed while scoring bids.
+ ArithmeticOverflow = 26,
}
diff --git a/smart-contracts/contracts/agent_bidding/src/lib.rs b/smart-contracts/contracts/agent_bidding/src/lib.rs
index 5ec4d1e0..96fc476a 100644
--- a/smart-contracts/contracts/agent_bidding/src/lib.rs
+++ b/smart-contracts/contracts/agent_bidding/src/lib.rs
@@ -4,29 +4,52 @@
//!
//! On-chain sealed-bid auction for AI agent tasks. Agents compete for work by
//! submitting **sealed bids** (commitments) during a configurable bidding
-//! period. After the period closes, bidders reveal their plaintext prices and
-//! terms. The contract verifies each commitment and selects a winner via a
-//! weighted-score algorithm (60 % price, 40 % reputation). The creator then
-//! awards the contract, which creates an escrow for the winning price and
-//! refunds the bonds of every losing bidder.
+//! period. After the period closes, a bounded **reveal window** opens in which
+//! bidders disclose their plaintext prices and terms. The contract verifies
+//! each commitment and selects a winner via a weighted-score algorithm (60 %
+//! price, 40 % reputation). The creator or winner then awards the contract,
+//! which creates an escrow for the winning price, returns the bonds of every
+//! bidder who revealed, and forfeits the bonds of those who did not.
//!
//! ## Flow
//!
-//! 1. **`create_auction`** — creator initialises the auction with duration,
-//! reserve price, and required bond. Phase = `Bidding`.
+//! 1. **`create_auction`** — creator initialises the auction with a bidding
+//! duration, a reveal duration, reserve price, price cap, and required
+//! bond. Phase = `Bidding`.
//! 2. **`submit_bid`** — agents submit sealed commitments during the bidding
//! window. Each bid locks the required bond and records a self-declared
-//! reputation score.
-//! 3. **`reveal_bid`** — after the deadline, each bidder reveals their
-//! plaintext `(price, terms, salt)`. The contract verifies the SHA-256
-//! commitment.
-//! 4. **`reveal_bids`** — anyone calls this after the deadline to finalise the
-//! reveal phase. The contract normalises price and reputation across all
-//! revealed bids, computes composite scores, and selects the winner.
-//! Phase → `Reveal`.
-//! 5. **`award_contract`** — the creator (or anyone, after winner is
-//! determined) creates the escrow entry for the winning price and marks
-//! every bidder's bond as refunded. Phase → `Awarded`.
+//! reputation score. At most [`MAX_BIDDERS`] bids are accepted.
+//! 3. **`reveal_bid`** — between `deadline` and `reveal_deadline`, each bidder
+//! reveals their plaintext `(price, terms, salt)`. The contract recomputes
+//! the domain-separated SHA-256 commitment and compares it.
+//! 4. **`reveal_bids`** — finalises the reveal phase. Callable only once the
+//! reveal window has closed **or** every sealed bid has been revealed. The
+//! contract normalises price and reputation across all revealed bids,
+//! computes composite scores, and selects the winner. Phase → `Reveal`.
+//! 5. **`award_contract`** — the creator or the winner creates the escrow
+//! entry for the winning price, refunds the bonds of bidders who revealed,
+//! and forfeits the rest. Phase → `Awarded`.
+//! 6. **`abort_auction`** — rescue path for an auction that closed its reveal
+//! window with zero reveals. Releases every bond. Phase → `Cancelled`.
+//!
+//! ## Security model
+//!
+//! The commit-reveal flow is hardened against front-running, bid replay, and
+//! unbounded positions. The full threat model, including what the contract
+//! does *not* defend against, lives in
+//! [`docs/agent-bidding-security.md`](../../docs/agent-bidding-security.md).
+//! The three load-bearing invariants:
+//!
+//! * **Bounded reveal window.** `reveal_bids` cannot run while the window is
+//! open and bids are still outstanding, so nobody can finalise the auction
+//! the instant bidding closes and win with the only revealed bid.
+//! * **Domain-separated commitments.** Every commitment is bound to the
+//! contract id, task id, and bidder, so a commitment observed on one auction
+//! cannot be replayed onto another auction, another deployment, or another
+//! bidder.
+//! * **Non-reveal is not free.** A bidder who commits and stays silent
+//! forfeits their bond, which prices the "last look" option that an
+//! unpunished withdrawal would otherwise hand out for nothing.
//!
//! ## Scoring Algorithm
//!
@@ -38,6 +61,9 @@
//! score = (60 * price_score + 40 * rep_score) / 100
//! ```
//!
+//! (`max_price`/`min_price` here are the observed extremes among revealed
+//! bids, not the auction's configured cap.)
+//!
//! Tie-break: highest score wins. If scores are equal, the lowest-price bid
//! wins. If prices are also equal, the earliest submission by order in the
//! bidders list wins.
@@ -45,20 +71,27 @@
//! ## Commitment Hash
//!
//! ```text
-//! commitment = SHA-256(bidder_xdr || i128_price_xdr || terms_xdr || salt_xdr)
+//! commitment = SHA-256(
+//! domain_xdr || contract_id_xdr || task_id_xdr ||
+//! bidder_xdr || price_xdr || terms_xdr || salt_xdr
+//! )
//! ```
//!
-//! Each field is serialised to its Stellar XDR wire format. Off-chain tooling
-//! must produce commitments using this exact encoding.
+//! where `domain` is [`COMMITMENT_DOMAIN`]. Each field is serialised to its
+//! Stellar XDR wire format. Off-chain tooling must produce commitments using
+//! this exact encoding — or simply call the [`AgentBiddingContract::commitment_of`]
+//! view, which is the same code path the contract verifies against.
mod errors;
mod types;
pub use errors::Error;
pub use types::{
- Auction, AuctionConfig, AuctionCreatedEvent, AuctionPhase, BidRevealedEvent, BidSubmittedEvent,
- BidsRevealedEvent, ContractAwardedEvent, DataKey, Escrow, SealedBid,
- DEFAULT_BIDDING_DURATION_SECS, MAX_REPUTATION, PRICE_WEIGHT, REPUTATION_WEIGHT, SCORE_SCALE,
+ Auction, AuctionAbortedEvent, AuctionConfig, AuctionCreatedEvent, AuctionPhase,
+ BidRevealedEvent, BidSubmittedEvent, BidsRevealedEvent, ContractAwardedEvent, DataKey, Escrow,
+ SealedBid, COMMITMENT_DOMAIN, DEFAULT_BIDDING_DURATION_SECS, DEFAULT_REVEAL_DURATION_SECS,
+ MAX_BIDDERS, MAX_BID_PRICE, MAX_PHASE_DURATION_SECS, MAX_REPUTATION, MAX_TERMS_LEN,
+ MIN_PHASE_DURATION_SECS, PRICE_WEIGHT, REPUTATION_WEIGHT, SCORE_SCALE,
};
use soroban_sdk::{
@@ -73,6 +106,9 @@ const TTL_THRESHOLD: u32 = 100_000;
/// Target TTL after extension (~31 days at 5s ledgers).
const TTL_EXTEND_TO: u32 = 535_680;
+/// Maximum page size accepted by [`AgentBiddingContract::get_bidders`].
+const MAX_PAGE_SIZE: u32 = 50;
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
/// Extend TTL for a single persistent key, but only when it exists.
@@ -91,18 +127,59 @@ fn extend_ttl_batch(env: &Env, keys: &Vec) {
}
}
+/// Load an auction or fail with [`Error::NotFound`].
+fn load_auction(env: &Env, task_id: &Symbol) -> Result {
+ env.storage()
+ .persistent()
+ .get(&DataKey::Auction(task_id.clone()))
+ .ok_or(Error::NotFound)
+}
+
+/// Persist an auction and bump its rent.
+fn save_auction(env: &Env, auction: &Auction) {
+ let key = DataKey::Auction(auction.task_id.clone());
+ env.storage().persistent().set(&key, auction);
+ extend_ttl_for_key(env, &key);
+}
+
+/// Reject calls against an auction that has reached a terminal phase.
+fn require_live(auction: &Auction) -> Result<(), Error> {
+ match auction.phase {
+ AuctionPhase::Awarded | AuctionPhase::Cancelled => Err(Error::AuctionClosed),
+ _ => Ok(()),
+ }
+}
+
+/// Normalise a caller-supplied phase duration, applying `default` when `0`.
+///
+/// Rejects anything outside `[MIN_PHASE_DURATION_SECS, MAX_PHASE_DURATION_SECS]`
+/// so a creator can neither make a window too short for honest bidders to hit
+/// nor lock bonds for an unbounded stretch of time.
+fn normalise_duration(secs: u64, default: u64) -> Result {
+ let value = if secs == 0 { default } else { secs };
+ if !(MIN_PHASE_DURATION_SECS..=MAX_PHASE_DURATION_SECS).contains(&value) {
+ return Err(Error::InvalidDuration);
+ }
+ Ok(value)
+}
+
/// Recompute the commitment hash from plaintext fields.
///
-/// The preimage layout matches the off-chain construction:
-/// `bidder_xdr || price_xdr || terms_xdr || salt_xdr`.
+/// The pre-image is domain-separated by a version tag, the deployed contract
+/// id, and the task id, so a commitment is only ever valid for the exact
+/// `(deployment, auction, bidder)` triple it was built for.
fn compute_commitment(
env: &Env,
+ task_id: &Symbol,
bidder: &Address,
price: i128,
terms: &String,
salt: &BytesN<32>,
) -> BytesN<32> {
let mut preimage = Bytes::new(env);
+ preimage.append(&String::from_str(env, COMMITMENT_DOMAIN).to_xdr(env));
+ preimage.append(&env.current_contract_address().to_xdr(env));
+ preimage.append(&task_id.clone().to_xdr(env));
preimage.append(&bidder.to_xdr(env));
preimage.append(&price.to_xdr(env));
preimage.append(&terms.clone().to_xdr(env));
@@ -110,6 +187,19 @@ fn compute_commitment(
env.crypto().sha256(&preimage).into()
}
+/// `SCORE_SCALE * numerator / denominator`, saturating nothing and checking
+/// every step. Returns [`Error::ArithmeticOverflow`] rather than panicking so
+/// a pathological bid set cannot wedge the auction.
+fn scaled_ratio(numerator: i128, denominator: i128) -> Result {
+ if denominator == 0 {
+ return Ok(SCORE_SCALE);
+ }
+ SCORE_SCALE
+ .checked_mul(numerator)
+ .and_then(|scaled| scaled.checked_div(denominator))
+ .ok_or(Error::ArithmeticOverflow)
+}
+
// ─── Contract ────────────────────────────────────────────────────────────────
#[contract]
@@ -121,16 +211,17 @@ impl AgentBiddingContract {
/// Initialise a new auction for `task_id`.
///
- /// The `creator` must authorise the call. If `duration_secs` is `0`,
- /// [`DEFAULT_BIDDING_DURATION_SECS`] (1 hour) is used. The task must not
- /// already have an auction. Emits `(bidding, created)`.
+ /// The `creator` must authorise the call. Zero values in `config` fall back
+ /// to defaults: [`DEFAULT_BIDDING_DURATION_SECS`] for `duration_secs`,
+ /// [`DEFAULT_REVEAL_DURATION_SECS`] for `reveal_duration_secs`, and
+ /// [`MAX_BID_PRICE`] for `max_price`. The task must not already have an
+ /// auction. The stored config is the normalised one, so readers never see
+ /// a placeholder zero. Emits `(bidding, created)`.
pub fn create_auction(
env: Env,
creator: Address,
task_id: Symbol,
- duration_secs: u64,
- reserve_price: i128,
- bond: i128,
+ config: AuctionConfig,
) -> Result<(), Error> {
creator.require_auth();
@@ -139,32 +230,50 @@ impl AgentBiddingContract {
return Err(Error::AlreadyExists);
}
- if bond <= 0 {
+ if config.bond <= 0 {
return Err(Error::InvalidBond);
}
- if reserve_price <= 0 {
+ if config.reserve_price <= 0 || config.reserve_price > MAX_BID_PRICE {
return Err(Error::InvalidPrice);
}
- let dur = if duration_secs == 0 {
- DEFAULT_BIDDING_DURATION_SECS
+ // `0` means "no explicit cap", which still means the global ceiling —
+ // an uncapped i128 price would overflow the scoring arithmetic.
+ let max_price = if config.max_price == 0 {
+ MAX_BID_PRICE
} else {
- duration_secs
+ config.max_price
};
+ if max_price < config.reserve_price || max_price > MAX_BID_PRICE {
+ return Err(Error::InvalidPriceRange);
+ }
+
+ let duration_secs =
+ normalise_duration(config.duration_secs, DEFAULT_BIDDING_DURATION_SECS)?;
+ let reveal_duration_secs =
+ normalise_duration(config.reveal_duration_secs, DEFAULT_REVEAL_DURATION_SECS)?;
let now = env.ledger().timestamp();
- let deadline = now.saturating_add(dur);
+ let deadline = now.saturating_add(duration_secs);
+ let reveal_deadline = deadline.saturating_add(reveal_duration_secs);
+
+ let normalised = AuctionConfig {
+ duration_secs,
+ reveal_duration_secs,
+ reserve_price: config.reserve_price,
+ max_price,
+ bond: config.bond,
+ };
let auction = Auction {
task_id: task_id.clone(),
creator: creator.clone(),
- config: AuctionConfig {
- duration_secs: dur,
- reserve_price,
- bond,
- },
+ config: normalised,
created_at: now,
deadline,
+ reveal_deadline,
+ bid_count: 0,
+ revealed_count: 0,
phase: AuctionPhase::Bidding,
escrow_created: false,
};
@@ -183,10 +292,13 @@ impl AgentBiddingContract {
AuctionCreatedEvent {
task_id,
creator,
- duration_secs: dur,
+ duration_secs,
+ reveal_duration_secs,
deadline,
- reserve_price,
- bond,
+ reveal_deadline,
+ reserve_price: config.reserve_price,
+ max_price,
+ bond: config.bond,
},
);
@@ -198,11 +310,17 @@ impl AgentBiddingContract {
/// Submit a sealed bid during the bidding period.
///
/// * `bidder` — must authorise this call.
- /// * `commitment` — SHA-256 of `(bidder, price, terms, salt)` encoded in XDR.
+ /// * `commitment` — see [`AgentBiddingContract::commitment_of`].
/// * `bond` — must equal the auction's required bond.
/// * `reputation` — self-declared score in `[0, 100]`.
///
- /// Emits `(bidding, bid_submitted)`.
+ /// One bid per bidder per auction; a second attempt is
+ /// [`Error::BidAlreadyExists`], which is what makes a commitment binding
+ /// (a bidder cannot keep re-committing until they like the field). The
+ /// auction accepts at most [`MAX_BIDDERS`] bids so that the loops in
+ /// `reveal_bids` and `award_contract` stay bounded.
+ ///
+ /// Emits `(bidding, bid_sbmtd)`.
pub fn submit_bid(
env: Env,
task_id: Symbol,
@@ -213,12 +331,8 @@ impl AgentBiddingContract {
) -> Result<(), Error> {
bidder.require_auth();
- let auct_key = DataKey::Auction(task_id.clone());
- let auction: Auction = env
- .storage()
- .persistent()
- .get(&auct_key)
- .ok_or(Error::NotFound)?;
+ let mut auction = load_auction(&env, &task_id)?;
+ require_live(&auction)?;
if auction.phase != AuctionPhase::Bidding {
return Err(Error::NotInBiddingPhase);
@@ -235,6 +349,9 @@ impl AgentBiddingContract {
if reputation > MAX_REPUTATION {
return Err(Error::InvalidReputation);
}
+ if auction.bid_count >= MAX_BIDDERS {
+ return Err(Error::AuctionFull);
+ }
// Zero-commitment is treated as invalid (non-binding).
if commitment.to_array() == [0u8; 32] {
@@ -248,11 +365,12 @@ impl AgentBiddingContract {
let sealed = SealedBid {
bidder: bidder.clone(),
- commitment: commitment.clone(),
+ commitment,
bond,
reputation,
revealed: false,
refunded: false,
+ forfeited: false,
price_stroops: 0,
terms: String::from_str(&env, ""),
score: 0,
@@ -271,6 +389,9 @@ impl AgentBiddingContract {
env.storage().persistent().set(&bidders_key, &bidders);
extend_ttl_for_key(&env, &bidders_key);
+ auction.bid_count += 1;
+ save_auction(&env, &auction);
+
env.events().publish(
(symbol_short!("bidding"), symbol_short!("bid_sbmtd")),
BidSubmittedEvent {
@@ -286,15 +407,18 @@ impl AgentBiddingContract {
// ── Reveal Individual Bid ─────────────────────────────────────────────
- /// Reveal a previously sealed bid after the bidding period has ended.
+ /// Reveal a previously sealed bid inside the reveal window.
///
/// The caller provides the plaintext `(price_stroops, terms, salt)`. The
/// contract recomputes the commitment hash and compares it to the stored
/// commitment. A mismatch returns [`Error::InvalidCommitment`].
///
- /// * `price_stroops` — must be positive and at least the reserve price.
- /// * `terms` — arbitrary bid terms (may be empty).
- /// * `salt` — 32-byte blinding factor used to hide the bid preimage.
+ /// * Timing — only while `deadline <= now < reveal_deadline`. Too early is
+ /// [`Error::BiddingPeriodActive`]; too late is
+ /// [`Error::RevealPeriodEnded`] and the bond is forfeited at award time.
+ /// * `price_stroops` — must lie within `[reserve_price, max_price]`.
+ /// * `terms` — arbitrary bid terms, at most [`MAX_TERMS_LEN`] bytes.
+ /// * `salt` — 32-byte blinding factor used to hide the bid pre-image.
///
/// Emits `(bidding, bid_rvld)`.
pub fn reveal_bid(
@@ -307,12 +431,8 @@ impl AgentBiddingContract {
) -> Result<(), Error> {
bidder.require_auth();
- let auct_key = DataKey::Auction(task_id.clone());
- let auction: Auction = env
- .storage()
- .persistent()
- .get(&auct_key)
- .ok_or(Error::NotFound)?;
+ let mut auction = load_auction(&env, &task_id)?;
+ require_live(&auction)?;
if auction.phase != AuctionPhase::Bidding {
return Err(Error::NotInBiddingPhase);
@@ -322,6 +442,9 @@ impl AgentBiddingContract {
if now < auction.deadline {
return Err(Error::BiddingPeriodActive);
}
+ if now >= auction.reveal_deadline {
+ return Err(Error::RevealPeriodEnded);
+ }
let bid_key = DataKey::Bid(task_id.clone(), bidder.clone());
let mut sealed: SealedBid = env
@@ -334,22 +457,32 @@ impl AgentBiddingContract {
return Err(Error::BidAlreadyRevealed);
}
- // Verify commitment.
- let recomputed = compute_commitment(&env, &bidder, price_stroops, &terms, &salt);
+ if terms.len() > MAX_TERMS_LEN {
+ return Err(Error::TermsTooLong);
+ }
+
+ // Verify commitment before anything else is trusted. The pre-image is
+ // bound to this contract and this task, so a commitment lifted from
+ // another auction hashes to a different digest and lands here.
+ let recomputed = compute_commitment(&env, &task_id, &bidder, price_stroops, &terms, &salt);
if recomputed != sealed.commitment {
return Err(Error::InvalidCommitment);
}
- if price_stroops <= 0 || price_stroops < auction.config.reserve_price {
+ if price_stroops < auction.config.reserve_price || price_stroops > auction.config.max_price
+ {
return Err(Error::InvalidPrice);
}
sealed.revealed = true;
sealed.price_stroops = price_stroops;
- sealed.terms = terms.clone();
+ sealed.terms = terms;
env.storage().persistent().set(&bid_key, &sealed);
extend_ttl_for_key(&env, &bid_key);
+ auction.revealed_count += 1;
+ save_auction(&env, &auction);
+
env.events().publish(
(symbol_short!("bidding"), symbol_short!("bid_rvld")),
BidRevealedEvent {
@@ -366,20 +499,28 @@ impl AgentBiddingContract {
/// Finalise the reveal phase and select the winning bidder.
///
- /// Can be called by anyone after the bidding deadline. Iterates over all
- /// revealed bids, normalises price and reputation across them, computes
- /// the weighted composite score for each, and stores the winning bidder's
- /// address. Non-revealed bids do **not** enter the scoring and cannot win.
+ /// Permissionless but authenticated: any `caller` may finalise, because the
+ /// outcome is a pure function of on-chain state, but the call still carries
+ /// a signature so it is attributable.
///
- /// Requires at least one revealed bid. Phase transitions to `Reveal`.
- /// Emits `(bidding, bids_rvld)`.
- pub fn reveal_bids(env: Env, task_id: Symbol) -> Result<(), Error> {
- let auct_key = DataKey::Auction(task_id.clone());
- let mut auction: Auction = env
- .storage()
- .persistent()
- .get(&auct_key)
- .ok_or(Error::NotFound)?;
+ /// **Timing is the anti-front-running control.** The call is refused with
+ /// [`Error::RevealPeriodActive`] while the reveal window is still open and
+ /// at least one sealed bid remains unrevealed. Without that gate, an
+ /// attacker could reveal their own bid and finalise in the same ledger the
+ /// bidding closed, winning uncontested against bidders who had not yet had
+ /// a chance to reveal. Once every bid is revealed there is nothing left to
+ /// race, so the auction may be finalised early.
+ ///
+ /// Non-revealed bids do **not** enter the scoring and cannot win. Requires
+ /// at least one revealed bid; an auction with none is resolved through
+ /// [`AgentBiddingContract::abort_auction`] instead.
+ ///
+ /// Phase transitions to `Reveal`. Emits `(bidding, bids_rvld)`.
+ pub fn reveal_bids(env: Env, caller: Address, task_id: Symbol) -> Result<(), Error> {
+ caller.require_auth();
+
+ let mut auction = load_auction(&env, &task_id)?;
+ require_live(&auction)?;
if auction.phase != AuctionPhase::Bidding {
return Err(Error::NotInBiddingPhase);
@@ -389,6 +530,9 @@ impl AgentBiddingContract {
if now < auction.deadline {
return Err(Error::BiddingPeriodActive);
}
+ if now < auction.reveal_deadline && auction.revealed_count < auction.bid_count {
+ return Err(Error::RevealPeriodActive);
+ }
// Collect all revealed bids.
let bidders_key = DataKey::Bidders(task_id.clone());
@@ -405,8 +549,7 @@ impl AgentBiddingContract {
let mut min_rep: u32 = u32::MAX;
let mut max_rep: u32 = 0;
- for i in 0..bidders.len() {
- let bidder = bidders.get(i).unwrap();
+ for bidder in bidders.iter() {
let bid_key = DataKey::Bid(task_id.clone(), bidder);
if let Some(bid) = env.storage().persistent().get::<_, SealedBid>(&bid_key) {
if bid.revealed {
@@ -431,35 +574,43 @@ impl AgentBiddingContract {
return Err(Error::NotEnoughBids);
}
- // Phase 2: compute scores.
- let price_range = max_price - min_price;
+ // Phase 2: compute scores. Every price is bounded by `max_price <=
+ // MAX_BID_PRICE`, so these ranges cannot overflow, but the arithmetic
+ // is checked anyway rather than trusting that invariant to hold
+ // through future edits.
+ let price_range = max_price
+ .checked_sub(min_price)
+ .ok_or(Error::ArithmeticOverflow)?;
let rep_range = (max_rep - min_rep) as i128;
- // Collect scored bids index-mapped back to the bidders list.
let mut best_score: i128 = -1;
let mut best_price: i128 = i128::MAX;
let mut winner: Option = None;
- for i in 0..revealed.len() {
- let bid = revealed.get(i).unwrap();
-
- let price_score: i128 = if price_range == 0 {
- SCORE_SCALE
- } else {
- SCORE_SCALE * (max_price - bid.price_stroops) / price_range
- };
-
- let rep_score: i128 = if rep_range == 0 {
- SCORE_SCALE
- } else {
- SCORE_SCALE * (bid.reputation - min_rep) as i128 / rep_range
- };
-
- let score = (PRICE_WEIGHT * price_score + REPUTATION_WEIGHT * rep_score) / 100;
+ for bid in revealed.iter() {
+ let price_delta = max_price
+ .checked_sub(bid.price_stroops)
+ .ok_or(Error::ArithmeticOverflow)?;
+ let price_score = scaled_ratio(price_delta, price_range)?;
+ let rep_score = scaled_ratio((bid.reputation - min_rep) as i128, rep_range)?;
+
+ let score = PRICE_WEIGHT
+ .checked_mul(price_score)
+ .and_then(|weighted| {
+ REPUTATION_WEIGHT
+ .checked_mul(rep_score)
+ .and_then(|r| weighted.checked_add(r))
+ })
+ .and_then(|total| total.checked_div(100))
+ .ok_or(Error::ArithmeticOverflow)?;
// Update the stored bid with its score.
let bid_key = DataKey::Bid(task_id.clone(), bid.bidder.clone());
- let mut stored: SealedBid = env.storage().persistent().get(&bid_key).unwrap();
+ let mut stored: SealedBid = env
+ .storage()
+ .persistent()
+ .get(&bid_key)
+ .ok_or(Error::NotFound)?;
stored.score = score;
env.storage().persistent().set(&bid_key, &stored);
extend_ttl_for_key(&env, &bid_key);
@@ -487,8 +638,7 @@ impl AgentBiddingContract {
// Transition phase.
auction.phase = AuctionPhase::Reveal;
- env.storage().persistent().set(&auct_key, &auction);
- extend_ttl_for_key(&env, &auct_key);
+ save_auction(&env, &auction);
env.events().publish(
(symbol_short!("bidding"), symbol_short!("bids_rvld")),
@@ -508,20 +658,26 @@ impl AgentBiddingContract {
/// Award the contract to the winner determined by `reveal_bids`.
///
+ /// `caller` must authorise and must be either the auction creator or the
+ /// winning bidder — the two parties the escrow binds. Anyone else gets
+ /// [`Error::Unauthorized`].
+ ///
/// Creates an escrow entry locking the winning price for the winning
- /// agent. Every bidder's bond is marked as refunded (the bond is an
- /// anti-spam deposit returned to everyone once the auction concludes —
- /// it is separate from the escrow amount).
+ /// agent, then settles every bond: bidders who revealed get theirs back,
+ /// bidders who never revealed **forfeit** theirs. The bond is an anti-spam
+ /// deposit separate from the escrow amount; forfeiting it is what stops a
+ /// sealed bid from being a free option to walk away after seeing everyone
+ /// else's price.
///
/// Phase transitions to `Awarded`. Emits `(bidding, cntrct_aw)`.
- pub fn award_contract(env: Env, task_id: Symbol) -> Result<(), Error> {
- let auct_key = DataKey::Auction(task_id.clone());
- let mut auction: Auction = env
- .storage()
- .persistent()
- .get(&auct_key)
- .ok_or(Error::NotFound)?;
+ pub fn award_contract(env: Env, caller: Address, task_id: Symbol) -> Result<(), Error> {
+ caller.require_auth();
+ let mut auction = load_auction(&env, &task_id)?;
+
+ if auction.phase == AuctionPhase::Awarded {
+ return Err(Error::AlreadyAwarded);
+ }
if auction.phase != AuctionPhase::Reveal {
return Err(Error::NotInRevealPhase);
}
@@ -536,6 +692,10 @@ impl AgentBiddingContract {
.get(&winner_key)
.ok_or(Error::WinnerNotDetermined)?;
+ if caller != auction.creator && caller != winner {
+ return Err(Error::Unauthorized);
+ }
+
// Find the winning bid to get the price.
let bid_key = DataKey::Bid(task_id.clone(), winner.clone());
let winning_bid: SealedBid = env
@@ -559,7 +719,7 @@ impl AgentBiddingContract {
env.storage().persistent().set(&escrow_key, &escrow);
extend_ttl_for_key(&env, &escrow_key);
- // Refund every bidder's bond (winner included).
+ // Settle every bidder's bond: refund those who revealed, forfeit the rest.
let bidders_key = DataKey::Bidders(task_id.clone());
let bidders: Vec = env
.storage()
@@ -568,25 +728,30 @@ impl AgentBiddingContract {
.unwrap_or_else(|| Vec::new(&env));
let mut refunded_count: u32 = 0;
+ let mut forfeited_count: u32 = 0;
let mut ttl_keys: Vec = Vec::new(&env);
- for i in 0..bidders.len() {
- let b = bidders.get(i).unwrap();
+ for b in bidders.iter() {
let bk = DataKey::Bid(task_id.clone(), b);
if let Some(mut bid) = env.storage().persistent().get::<_, SealedBid>(&bk) {
- if !bid.refunded {
+ if bid.refunded || bid.forfeited {
+ continue;
+ }
+ if bid.revealed {
bid.refunded = true;
- env.storage().persistent().set(&bk, &bid);
- ttl_keys.push_back(bk);
refunded_count += 1;
+ } else {
+ bid.forfeited = true;
+ forfeited_count += 1;
}
+ env.storage().persistent().set(&bk, &bid);
+ ttl_keys.push_back(bk);
}
}
extend_ttl_batch(&env, &ttl_keys);
auction.phase = AuctionPhase::Awarded;
auction.escrow_created = true;
- env.storage().persistent().set(&auct_key, &auction);
- extend_ttl_for_key(&env, &auct_key);
+ save_auction(&env, &auction);
env.events().publish(
(symbol_short!("bidding"), symbol_short!("cntrct_aw")),
@@ -595,6 +760,80 @@ impl AgentBiddingContract {
winner,
escrow_amount,
refunded_bidders: refunded_count,
+ forfeited_bidders: forfeited_count,
+ },
+ );
+
+ Ok(())
+ }
+
+ // ── Abort a dead auction ───────────────────────────────────────────────
+
+ /// Cancel an auction whose reveal window closed without a single reveal,
+ /// releasing every bond.
+ ///
+ /// Without this path, an auction where nobody reveals — because the task
+ /// became irrelevant, or every bidder simply walked — would sit in
+ /// `Bidding` forever with `reveal_bids` permanently returning
+ /// [`Error::NotEnoughBids`], stranding all bonds. Bonds are refunded, not
+ /// forfeited: with no winner there is no counterparty the forfeiture would
+ /// compensate, so burning them would destroy value without deterring
+ /// anything.
+ ///
+ /// Permissionless but authenticated, so a vanished creator cannot strand
+ /// other people's bonds. Emits `(bidding, aborted)`.
+ pub fn abort_auction(env: Env, caller: Address, task_id: Symbol) -> Result<(), Error> {
+ caller.require_auth();
+
+ let mut auction = load_auction(&env, &task_id)?;
+ require_live(&auction)?;
+
+ if auction.phase != AuctionPhase::Bidding {
+ return Err(Error::NotInBiddingPhase);
+ }
+
+ let now = env.ledger().timestamp();
+ if now < auction.reveal_deadline {
+ return Err(Error::RevealPeriodActive);
+ }
+ if auction.revealed_count > 0 {
+ // A revealed bid exists, so the auction can and must be finalised
+ // through `reveal_bids` rather than thrown away.
+ return Err(Error::AuctionNotAbortable);
+ }
+
+ let bidders_key = DataKey::Bidders(task_id.clone());
+ let bidders: Vec = env
+ .storage()
+ .persistent()
+ .get(&bidders_key)
+ .unwrap_or_else(|| Vec::new(&env));
+
+ let mut refunded_count: u32 = 0;
+ let mut ttl_keys: Vec = Vec::new(&env);
+ for b in bidders.iter() {
+ let bk = DataKey::Bid(task_id.clone(), b);
+ if let Some(mut bid) = env.storage().persistent().get::<_, SealedBid>(&bk) {
+ if bid.refunded || bid.forfeited {
+ continue;
+ }
+ bid.refunded = true;
+ refunded_count += 1;
+ env.storage().persistent().set(&bk, &bid);
+ ttl_keys.push_back(bk);
+ }
+ }
+ extend_ttl_batch(&env, &ttl_keys);
+
+ auction.phase = AuctionPhase::Cancelled;
+ save_auction(&env, &auction);
+
+ env.events().publish(
+ (symbol_short!("bidding"), symbol_short!("aborted")),
+ AuctionAbortedEvent {
+ task_id,
+ caller,
+ refunded_bidders: refunded_count,
},
);
@@ -603,6 +842,24 @@ impl AgentBiddingContract {
// ── View Functions ─────────────────────────────────────────────────────
+ /// Compute the commitment an off-chain bidder must submit for this task.
+ ///
+ /// Exposed so tooling never has to re-implement the pre-image layout and
+ /// silently drift from what `reveal_bid` verifies. Callers should compute
+ /// this **locally** when preparing a bid — invoking it against a public RPC
+ /// hands the plaintext price to whoever runs that node, which defeats the
+ /// seal.
+ pub fn commitment_of(
+ env: Env,
+ task_id: Symbol,
+ bidder: Address,
+ price_stroops: i128,
+ terms: String,
+ salt: BytesN<32>,
+ ) -> BytesN<32> {
+ compute_commitment(&env, &task_id, &bidder, price_stroops, &terms, &salt)
+ }
+
/// Return the auction record for a task, if it exists.
pub fn get_auction(env: Env, task_id: Symbol) -> Option {
env.storage().persistent().get(&DataKey::Auction(task_id))
@@ -627,12 +884,34 @@ impl AgentBiddingContract {
/// Return the number of bidders who submitted bids for this task.
pub fn get_bidder_count(env: Env, task_id: Symbol) -> u32 {
+ env.storage()
+ .persistent()
+ .get::<_, Auction>(&DataKey::Auction(task_id))
+ .map(|auction| auction.bid_count)
+ .unwrap_or(0)
+ }
+
+ /// Return one page of the bidder list, in submission order.
+ ///
+ /// `limit` is clamped to [`MAX_PAGE_SIZE`] so a single call can never be
+ /// asked to materialise an unbounded vector.
+ pub fn get_bidders(env: Env, task_id: Symbol, start: u32, limit: u32) -> Vec {
let bidders: Vec = env
.storage()
.persistent()
.get(&DataKey::Bidders(task_id))
.unwrap_or_else(|| Vec::new(&env));
- bidders.len()
+
+ let mut page: Vec = Vec::new(&env);
+ if start >= bidders.len() {
+ return page;
+ }
+ let capped = limit.min(MAX_PAGE_SIZE);
+ let end = start.saturating_add(capped).min(bidders.len());
+ for i in start..end {
+ page.push_back(bidders.get(i).unwrap());
+ }
+ page
}
}
@@ -648,141 +927,249 @@ mod test {
Address, Symbol,
};
+ const RESERVE: i128 = 1_000_000; // 0.1 XLM in stroops
+ const BOND: i128 = 500_000; // 0.05 XLM
+ const BID_SECS: u64 = 3_600;
+ const REVEAL_SECS: u64 = 3_600;
+
/// Creates a fresh in-memory test environment with the contract registered.
- fn setup() -> (Env, AgentBiddingContractClient<'static>) {
+ fn setup() -> (Env, AgentBiddingContractClient<'static>, Address) {
let env = Env::default();
env.mock_all_auths();
let id = env.register(AgentBiddingContract, ());
let client = AgentBiddingContractClient::new(&env, &id);
- (env, client)
+ let anyone = Address::generate(&env);
+ (env, client, anyone)
+ }
+
+ /// Default auction config: 1 h bidding, 1 h reveal, no explicit price cap.
+ fn config(env: &Env, duration_secs: u64) -> AuctionConfig {
+ let _ = env;
+ AuctionConfig {
+ duration_secs,
+ reveal_duration_secs: REVEAL_SECS,
+ reserve_price: RESERVE,
+ max_price: 0, // → MAX_BID_PRICE
+ bond: BOND,
+ }
}
/// Helper: create a test auction with default config.
fn create_test_auction(
- _env: &Env,
+ env: &Env,
client: &AgentBiddingContractClient<'static>,
creator: &Address,
task_id: &Symbol,
duration_secs: u64,
) {
- client.create_auction(
- creator,
- task_id,
- &duration_secs,
- &1_000_000, // reserve price: 0.1 XLM in stroops
- &500_000, // bond: 0.05 XLM
- );
+ client.create_auction(creator, task_id, &config(env, duration_secs));
}
- /// Compute a commitment hash compatible with `compute_commitment` in the contract.
- fn test_commitment(
- env: &Env,
- bidder: &Address,
- price: i128,
- terms: &String,
- salt: &BytesN<32>,
- ) -> BytesN<32> {
- let mut preimage = Bytes::new(env);
- preimage.append(&bidder.to_xdr(env));
- preimage.append(&price.to_xdr(env));
- preimage.append(&terms.clone().to_xdr(env));
- preimage.append(&salt.to_xdr(env));
- env.crypto().sha256(&preimage).into()
+ /// Advance the ledger clock into the reveal window of `task_id`.
+ fn enter_reveal_window(env: &Env, client: &AgentBiddingContractClient<'static>, task: &Symbol) {
+ let auction = client.get_auction(task).unwrap();
+ env.ledger().set_timestamp(auction.deadline + 1);
+ }
+
+ /// Advance the ledger clock past the reveal deadline of `task_id`.
+ fn close_reveal_window(env: &Env, client: &AgentBiddingContractClient<'static>, task: &Symbol) {
+ let auction = client.get_auction(task).unwrap();
+ env.ledger().set_timestamp(auction.reveal_deadline + 1);
+ }
+
+ fn salt(env: &Env, byte: u8) -> BytesN<32> {
+ BytesN::<32>::from_array(env, &[byte; 32])
+ }
+
+ fn terms(env: &Env, text: &str) -> String {
+ String::from_str(env, text)
}
// ── create_auction ───────────────────────────────────────────────────────
#[test]
fn create_auction_stores_record() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "task_1");
client.create_auction(
- &creator, &task_id, &0, // 0 → default duration
- &1_000_000, &500_000,
+ &creator,
+ &task_id,
+ &AuctionConfig {
+ duration_secs: 0, // → default
+ reveal_duration_secs: 0,
+ reserve_price: RESERVE,
+ max_price: 0,
+ bond: BOND,
+ },
);
let auction = client.get_auction(&task_id).unwrap();
assert_eq!(auction.creator, creator);
assert_eq!(auction.phase, AuctionPhase::Bidding);
assert!(!auction.escrow_created);
+ assert_eq!(auction.bid_count, 0);
+ assert_eq!(auction.revealed_count, 0);
assert_eq!(auction.config.duration_secs, DEFAULT_BIDDING_DURATION_SECS);
+ assert_eq!(
+ auction.config.reveal_duration_secs,
+ DEFAULT_REVEAL_DURATION_SECS
+ );
+ // `0` normalises to the global ceiling, never left as a placeholder.
+ assert_eq!(auction.config.max_price, MAX_BID_PRICE);
assert_eq!(
auction.deadline,
auction.created_at + DEFAULT_BIDDING_DURATION_SECS
);
+ assert_eq!(
+ auction.reveal_deadline,
+ auction.deadline + DEFAULT_REVEAL_DURATION_SECS
+ );
}
#[test]
fn create_auction_duplicate_fails() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "dup");
- client.create_auction(&creator, &task_id, &0, &1_000_000, &500_000);
- let err = client.try_create_auction(&creator, &task_id, &0, &1_000_000, &500_000);
- assert!(err.is_err());
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+ let err = client.try_create_auction(&creator, &task_id, &config(&env, BID_SECS));
assert_eq!(err.err(), Some(Ok(Error::AlreadyExists)));
}
#[test]
fn create_auction_emits_event() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "events");
- client.create_auction(&creator, &task_id, &0, &1_000_000, &500_000);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
let all_events = env.events().all();
assert!(!all_events.is_empty(), "expected at least one event");
}
+ #[test]
+ fn create_auction_rejects_out_of_range_durations() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+
+ // Too short to be reachable by honest bidders.
+ let err = client.try_create_auction(
+ &creator,
+ &Symbol::new(&env, "short"),
+ &AuctionConfig {
+ duration_secs: MIN_PHASE_DURATION_SECS - 1,
+ reveal_duration_secs: REVEAL_SECS,
+ reserve_price: RESERVE,
+ max_price: 0,
+ bond: BOND,
+ },
+ );
+ assert_eq!(err.err(), Some(Ok(Error::InvalidDuration)));
+
+ // Long enough to lock bonds effectively forever.
+ let err = client.try_create_auction(
+ &creator,
+ &Symbol::new(&env, "long"),
+ &AuctionConfig {
+ duration_secs: BID_SECS,
+ reveal_duration_secs: MAX_PHASE_DURATION_SECS + 1,
+ reserve_price: RESERVE,
+ max_price: 0,
+ bond: BOND,
+ },
+ );
+ assert_eq!(err.err(), Some(Ok(Error::InvalidDuration)));
+ }
+
+ #[test]
+ fn create_auction_rejects_inverted_price_range() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+
+ let err = client.try_create_auction(
+ &creator,
+ &Symbol::new(&env, "inverted"),
+ &AuctionConfig {
+ duration_secs: BID_SECS,
+ reveal_duration_secs: REVEAL_SECS,
+ reserve_price: 5_000_000,
+ max_price: 1_000_000, // below the reserve
+ bond: BOND,
+ },
+ );
+ assert_eq!(err.err(), Some(Ok(Error::InvalidPriceRange)));
+ }
+
+ #[test]
+ fn create_auction_rejects_price_above_global_ceiling() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+
+ let err = client.try_create_auction(
+ &creator,
+ &Symbol::new(&env, "huge"),
+ &AuctionConfig {
+ duration_secs: BID_SECS,
+ reveal_duration_secs: REVEAL_SECS,
+ reserve_price: MAX_BID_PRICE + 1,
+ max_price: 0,
+ bond: BOND,
+ },
+ );
+ assert_eq!(err.err(), Some(Ok(Error::InvalidPrice)));
+ }
+
// ── submit_bid ───────────────────────────────────────────────────────────
#[test]
fn submit_bid_succeeds() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let bidder = Address::generate(&env);
let task_id = Symbol::new(&env, "bid_test");
- create_test_auction(&env, &client, &creator, &task_id, 3_600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- let salt = BytesN::<32>::from_array(&env, &[1u8; 32]);
+ let s = salt(&env, 1);
let price: i128 = 5_000_000;
- let terms = String::from_str(&env, "Deliver in 3 days");
- let commitment = test_commitment(&env, &bidder, price, &terms, &salt);
+ let t = terms(&env, "Deliver in 3 days");
+ let commitment = client.commitment_of(&task_id, &bidder, &price, &t, &s);
- client.submit_bid(&task_id, &bidder, &commitment, &500_000, &85);
+ client.submit_bid(&task_id, &bidder, &commitment, &BOND, &85);
let bid = client.get_bid(&task_id, &bidder).unwrap();
assert_eq!(bid.bidder, bidder);
assert_eq!(bid.commitment, commitment);
- assert_eq!(bid.bond, 500_000);
+ assert_eq!(bid.bond, BOND);
assert_eq!(bid.reputation, 85);
assert!(!bid.revealed);
+ assert!(!bid.forfeited);
assert_eq!(client.get_bidder_count(&task_id), 1);
+ assert_eq!(client.get_auction(&task_id).unwrap().bid_count, 1);
}
#[test]
fn submit_bid_emits_event() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let bidder = Address::generate(&env);
let task_id = Symbol::new(&env, "bid_event");
- create_test_auction(&env, &client, &creator, &task_id, 3_600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- let salt = BytesN::<32>::from_array(&env, &[2u8; 32]);
+ let s = salt(&env, 2);
let price: i128 = 3_000_000;
- let terms = String::from_str(&env, "Fast track");
- let commitment = test_commitment(&env, &bidder, price, &terms, &salt);
+ let t = terms(&env, "Fast track");
+ let commitment = client.commitment_of(&task_id, &bidder, &price, &t, &s);
// Clear events from create_auction by draining.
let _ = env.events().all();
- client.submit_bid(&task_id, &bidder, &commitment, &500_000, &90);
+ client.submit_bid(&task_id, &bidder, &commitment, &BOND, &90);
let events = env.events().all();
assert_eq!(events.len(), 1, "expected exactly one BidSubmitted event");
@@ -790,216 +1177,600 @@ mod test {
#[test]
fn submit_bid_after_deadline_fails() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let bidder = Address::generate(&env);
let task_id = Symbol::new(&env, "late");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+ enter_reveal_window(&env, &client, &task_id);
- // Advance ledger past the deadline.
- let auction = client.get_auction(&task_id).unwrap();
- env.ledger().set_timestamp(auction.deadline + 1);
-
- let salt = BytesN::<32>::from_array(&env, &[3u8; 32]);
- let price: i128 = 2_000_000;
- let terms = String::from_str(&env, "Late bid");
- let commitment = test_commitment(&env, &bidder, price, &terms, &salt);
+ let s = salt(&env, 3);
+ let t = terms(&env, "Late bid");
+ let commitment = client.commitment_of(&task_id, &bidder, &2_000_000, &t, &s);
- let err = client.try_submit_bid(&task_id, &bidder, &commitment, &500_000, &50);
+ let err = client.try_submit_bid(&task_id, &bidder, &commitment, &BOND, &50);
assert_eq!(err.err(), Some(Ok(Error::BiddingPeriodEnded)));
}
#[test]
fn submit_bid_invalid_reputation_fails() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let bidder = Address::generate(&env);
let task_id = Symbol::new(&env, "bad_rep");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- let salt = BytesN::<32>::from_array(&env, &[4u8; 32]);
- let price: i128 = 2_000_000;
- let terms = String::from_str(&env, "Bad rep");
- let commitment = test_commitment(&env, &bidder, price, &terms, &salt);
+ let s = salt(&env, 4);
+ let t = terms(&env, "Bad rep");
+ let commitment = client.commitment_of(&task_id, &bidder, &2_000_000, &t, &s);
- let err = client.try_submit_bid(&task_id, &bidder, &commitment, &500_000, &101);
+ let err = client.try_submit_bid(&task_id, &bidder, &commitment, &BOND, &101);
assert_eq!(err.err(), Some(Ok(Error::InvalidReputation)));
}
#[test]
fn submit_bid_wrong_bond_fails() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let bidder = Address::generate(&env);
let task_id = Symbol::new(&env, "bad_bond");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- let salt = BytesN::<32>::from_array(&env, &[5u8; 32]);
- let commitment =
- test_commitment(&env, &bidder, 1_000_000, &String::from_str(&env, ""), &salt);
+ let s = salt(&env, 5);
+ let t = terms(&env, "");
+ let commitment = client.commitment_of(&task_id, &bidder, &RESERVE, &t, &s);
let err = client.try_submit_bid(&task_id, &bidder, &commitment, &1, &50);
assert_eq!(err.err(), Some(Ok(Error::InvalidBond)));
}
+ /// A bidder gets exactly one commitment per auction — the double-commit
+ /// guard that makes a sealed bid binding rather than a draft.
#[test]
fn submit_bid_duplicate_fails() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let bidder = Address::generate(&env);
let task_id = Symbol::new(&env, "dup_bid");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- let salt = BytesN::<32>::from_array(&env, &[6u8; 32]);
- let price: i128 = 2_000_000;
- let terms = String::from_str(&env, "First");
- let commitment = test_commitment(&env, &bidder, price, &terms, &salt);
+ let s = salt(&env, 6);
+ let t = terms(&env, "First");
+ let commitment = client.commitment_of(&task_id, &bidder, &2_000_000, &t, &s);
- client.submit_bid(&task_id, &bidder, &commitment, &500_000, &80);
+ client.submit_bid(&task_id, &bidder, &commitment, &BOND, &80);
- let err = client.try_submit_bid(&task_id, &bidder, &commitment, &500_000, &80);
+ let err = client.try_submit_bid(&task_id, &bidder, &commitment, &BOND, &80);
assert_eq!(err.err(), Some(Ok(Error::BidAlreadyExists)));
}
+ /// Re-committing with a *different* commitment is refused too, so a bidder
+ /// cannot overwrite an unfavourable commitment late in the bidding window.
+ #[test]
+ fn submit_bid_second_different_commitment_fails() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_id = Symbol::new(&env, "recommit");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let first = client.commitment_of(
+ &task_id,
+ &bidder,
+ &9_000_000,
+ &terms(&env, "high"),
+ &salt(&env, 61),
+ );
+ let second = client.commitment_of(
+ &task_id,
+ &bidder,
+ &1_500_000,
+ &terms(&env, "low"),
+ &salt(&env, 62),
+ );
+ assert_ne!(first, second);
+
+ client.submit_bid(&task_id, &bidder, &first, &BOND, &80);
+ let err = client.try_submit_bid(&task_id, &bidder, &second, &BOND, &80);
+ assert_eq!(err.err(), Some(Ok(Error::BidAlreadyExists)));
+
+ // The original commitment is the one that stands.
+ assert_eq!(client.get_bid(&task_id, &bidder).unwrap().commitment, first);
+ }
+
+ #[test]
+ fn submit_bid_rejects_zero_commitment() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_id = Symbol::new(&env, "zero_c");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let zero = BytesN::<32>::from_array(&env, &[0u8; 32]);
+ let err = client.try_submit_bid(&task_id, &bidder, &zero, &BOND, &50);
+ assert_eq!(err.err(), Some(Ok(Error::InvalidCommitment)));
+ }
+
+ // ── Position-size caps ───────────────────────────────────────────────────
+
+ #[test]
+ fn submit_bid_rejects_beyond_max_bidders() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let task_id = Symbol::new(&env, "full");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ for i in 0..MAX_BIDDERS {
+ let bidder = Address::generate(&env);
+ let c = client.commitment_of(
+ &task_id,
+ &bidder,
+ &2_000_000,
+ &terms(&env, "x"),
+ &salt(&env, (i % 250) as u8 + 1),
+ );
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &50);
+ }
+
+ assert_eq!(client.get_bidder_count(&task_id), MAX_BIDDERS);
+
+ let overflow_bidder = Address::generate(&env);
+ let c = client.commitment_of(
+ &task_id,
+ &overflow_bidder,
+ &2_000_000,
+ &terms(&env, "x"),
+ &salt(&env, 251),
+ );
+ let err = client.try_submit_bid(&task_id, &overflow_bidder, &c, &BOND, &50);
+ assert_eq!(err.err(), Some(Ok(Error::AuctionFull)));
+ }
+
+ #[test]
+ fn reveal_bid_rejects_price_above_cap() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_id = Symbol::new(&env, "capped");
+
+ client.create_auction(
+ &creator,
+ &task_id,
+ &AuctionConfig {
+ duration_secs: BID_SECS,
+ reveal_duration_secs: REVEAL_SECS,
+ reserve_price: RESERVE,
+ max_price: 4_000_000,
+ bond: BOND,
+ },
+ );
+
+ // The commitment itself is well-formed; the *position size* is what
+ // gets rejected, and only at reveal time — that is the whole point of
+ // a sealed bid.
+ let over_cap: i128 = 9_000_000;
+ let s = salt(&env, 71);
+ let t = terms(&env, "oversized");
+ let c = client.commitment_of(&task_id, &bidder, &over_cap, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &50);
+
+ enter_reveal_window(&env, &client, &task_id);
+
+ let err = client.try_reveal_bid(&task_id, &bidder, &over_cap, &t, &s);
+ assert_eq!(err.err(), Some(Ok(Error::InvalidPrice)));
+ }
+
+ #[test]
+ fn reveal_bid_rejects_price_below_reserve() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_id = Symbol::new(&env, "under");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let under: i128 = RESERVE - 1;
+ let s = salt(&env, 72);
+ let t = terms(&env, "cheap");
+ let c = client.commitment_of(&task_id, &bidder, &under, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &50);
+
+ enter_reveal_window(&env, &client, &task_id);
+
+ let err = client.try_reveal_bid(&task_id, &bidder, &under, &t, &s);
+ assert_eq!(err.err(), Some(Ok(Error::InvalidPrice)));
+ }
+
+ #[test]
+ fn reveal_bid_rejects_oversized_terms() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_id = Symbol::new(&env, "big_terms");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ // 520 bytes > MAX_TERMS_LEN (512).
+ let long = "x".repeat((MAX_TERMS_LEN + 8) as usize);
+ let long_terms = String::from_str(&env, &long);
+ let s = salt(&env, 73);
+ let price: i128 = 2_000_000;
+ let c = client.commitment_of(&task_id, &bidder, &price, &long_terms, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &50);
+
+ enter_reveal_window(&env, &client, &task_id);
+
+ let err = client.try_reveal_bid(&task_id, &bidder, &price, &long_terms, &s);
+ assert_eq!(err.err(), Some(Ok(Error::TermsTooLong)));
+ }
+
// ── reveal_bid ───────────────────────────────────────────────────────────
#[test]
fn reveal_bid_verifies_commitment() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let bidder = Address::generate(&env);
let task_id = Symbol::new(&env, "reveal_ok");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- let salt = BytesN::<32>::from_array(&env, &[7u8; 32]);
+ let s = salt(&env, 7);
let price: i128 = 4_000_000;
- let terms = String::from_str(&env, "Best offer");
- let commitment = test_commitment(&env, &bidder, price, &terms, &salt);
-
- client.submit_bid(&task_id, &bidder, &commitment, &500_000, &70);
+ let t = terms(&env, "Best offer");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
- // Advance past deadline.
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &70);
+ enter_reveal_window(&env, &client, &task_id);
- client.reveal_bid(&task_id, &bidder, &price, &terms, &salt);
+ client.reveal_bid(&task_id, &bidder, &price, &t, &s);
let bid = client.get_bid(&task_id, &bidder).unwrap();
assert!(bid.revealed);
assert_eq!(bid.price_stroops, price);
- assert_eq!(bid.terms, terms);
+ assert_eq!(bid.terms, t);
+ assert_eq!(client.get_auction(&task_id).unwrap().revealed_count, 1);
}
#[test]
fn reveal_bid_wrong_commitment_fails() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let bidder = Address::generate(&env);
let task_id = Symbol::new(&env, "bad_rev");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
-
- let salt = BytesN::<32>::from_array(&env, &[8u8; 32]);
- let price: i128 = 4_000_000;
- let terms = String::from_str(&env, "Real");
- let commitment = test_commitment(&env, &bidder, price, &terms, &salt);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- client.submit_bid(&task_id, &bidder, &commitment, &500_000, &70);
+ let s = salt(&env, 8);
+ let t = terms(&env, "Original");
+ let c = client.commitment_of(&task_id, &bidder, &4_000_000, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &70);
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
+ enter_reveal_window(&env, &client, &task_id);
- // Try to reveal with a different price.
- let err = client.try_reveal_bid(&task_id, &bidder, &(price + 1), &terms, &salt);
+ // Reveal a different (cheaper) price than was committed.
+ let err = client.try_reveal_bid(&task_id, &bidder, &1_000_000, &t, &s);
assert_eq!(err.err(), Some(Ok(Error::InvalidCommitment)));
}
#[test]
fn reveal_bid_before_deadline_fails() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let bidder = Address::generate(&env);
let task_id = Symbol::new(&env, "early_rev");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- let salt = BytesN::<32>::from_array(&env, &[9u8; 32]);
- let price: i128 = 5_000_000;
- let terms = String::from_str(&env, "Early");
- let commitment = test_commitment(&env, &bidder, price, &terms, &salt);
-
- client.submit_bid(&task_id, &bidder, &commitment, &500_000, &60);
+ let s = salt(&env, 9);
+ let price: i128 = 3_000_000;
+ let t = terms(&env, "Early");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &60);
- // Do NOT advance ledger — still within deadline.
- let err = client.try_reveal_bid(&task_id, &bidder, &price, &terms, &salt);
+ let err = client.try_reveal_bid(&task_id, &bidder, &price, &t, &s);
assert_eq!(err.err(), Some(Ok(Error::BiddingPeriodActive)));
}
#[test]
fn reveal_bid_twice_fails() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let bidder = Address::generate(&env);
- let task_id = Symbol::new(&env, "twice_rev");
+ let task_id = Symbol::new(&env, "double_rev");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- let salt = BytesN::<32>::from_array(&env, &[10u8; 32]);
+ let s = salt(&env, 10);
let price: i128 = 3_000_000;
- let terms = String::from_str(&env, "Twice");
- let commitment = test_commitment(&env, &bidder, price, &terms, &salt);
+ let t = terms(&env, "Once");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &60);
- client.submit_bid(&task_id, &bidder, &commitment, &500_000, &80);
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &bidder, &price, &t, &s);
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
+ let err = client.try_reveal_bid(&task_id, &bidder, &price, &t, &s);
+ assert_eq!(err.err(), Some(Ok(Error::BidAlreadyRevealed)));
- client.reveal_bid(&task_id, &bidder, &price, &terms, &salt);
+ // The replayed reveal must not double-count toward the reveal tally,
+ // which the `reveal_bids` early-finalisation gate depends on.
+ assert_eq!(client.get_auction(&task_id).unwrap().revealed_count, 1);
+ }
- let err = client.try_reveal_bid(&task_id, &bidder, &price, &terms, &salt);
- assert_eq!(err.err(), Some(Ok(Error::BidAlreadyRevealed)));
+ // ── Late reveal ──────────────────────────────────────────────────────────
+
+ #[test]
+ fn reveal_bid_after_reveal_deadline_fails() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_id = Symbol::new(&env, "late_rev");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let s = salt(&env, 81);
+ let price: i128 = 3_000_000;
+ let t = terms(&env, "Too slow");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &60);
+
+ close_reveal_window(&env, &client, &task_id);
+
+ let err = client.try_reveal_bid(&task_id, &bidder, &price, &t, &s);
+ assert_eq!(err.err(), Some(Ok(Error::RevealPeriodEnded)));
+ assert!(!client.get_bid(&task_id, &bidder).unwrap().revealed);
+ }
+
+ #[test]
+ fn late_reveal_cannot_displace_an_already_selected_winner() {
+ let (env, client, anyone) = setup();
+ let creator = Address::generate(&env);
+ let task_id = Symbol::new(&env, "no_displace");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let punctual = Address::generate(&env);
+ let tardy = Address::generate(&env);
+
+ let s_p = salt(&env, 82);
+ let s_t = salt(&env, 83);
+ let t = terms(&env, "T");
+
+ // The tardy bidder has a strictly better bid — cheaper and higher
+ // reputation — so only the timing rule can keep them from winning.
+ let c_p = client.commitment_of(&task_id, &punctual, &8_000_000, &t, &s_p);
+ let c_t = client.commitment_of(&task_id, &tardy, &1_500_000, &t, &s_t);
+ client.submit_bid(&task_id, &punctual, &c_p, &BOND, &40);
+ client.submit_bid(&task_id, &tardy, &c_t, &BOND, &99);
+
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &punctual, &8_000_000, &t, &s_p);
+
+ close_reveal_window(&env, &client, &task_id);
+ client.reveal_bids(&anyone, &task_id);
+ assert_eq!(client.get_winner(&task_id).unwrap(), punctual);
+
+ // The tardy bidder now tries to reveal and re-run selection.
+ let err = client.try_reveal_bid(&task_id, &tardy, &1_500_000, &t, &s_t);
+ assert_eq!(err.err(), Some(Ok(Error::NotInBiddingPhase)));
+
+ let err = client.try_reveal_bids(&anyone, &task_id);
+ assert_eq!(err.err(), Some(Ok(Error::NotInBiddingPhase)));
+ assert_eq!(client.get_winner(&task_id).unwrap(), punctual);
}
- // ── reveal_bids (winner selection) ───────────────────────────────────────
+ // ── Replay guards ────────────────────────────────────────────────────────
+
+ /// A commitment is bound to its auction: lifting one from task A and
+ /// submitting it to task B leaves it unrevealable.
+ #[test]
+ fn commitment_cannot_be_replayed_across_auctions() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_a = Symbol::new(&env, "task_a");
+ let task_b = Symbol::new(&env, "task_b");
+
+ create_test_auction(&env, &client, &creator, &task_a, BID_SECS);
+ create_test_auction(&env, &client, &creator, &task_b, BID_SECS);
+
+ let s = salt(&env, 91);
+ let price: i128 = 3_000_000;
+ let t = terms(&env, "Same bid");
+
+ let c_a = client.commitment_of(&task_a, &bidder, &price, &t, &s);
+ let c_b = client.commitment_of(&task_b, &bidder, &price, &t, &s);
+ assert_ne!(
+ c_a, c_b,
+ "identical plaintext must commit differently per auction"
+ );
+
+ // Replay A's commitment onto auction B.
+ client.submit_bid(&task_b, &bidder, &c_a, &BOND, &50);
+
+ enter_reveal_window(&env, &client, &task_b);
+ let err = client.try_reveal_bid(&task_b, &bidder, &price, &t, &s);
+ assert_eq!(err.err(), Some(Ok(Error::InvalidCommitment)));
+ }
+
+ /// A commitment is bound to its bidder: copying a rival's commitment off
+ /// the ledger yields a bid the copier can never open.
+ #[test]
+ fn commitment_cannot_be_replayed_by_another_bidder() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let honest = Address::generate(&env);
+ let copycat = Address::generate(&env);
+ let task_id = Symbol::new(&env, "copycat");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let s = salt(&env, 92);
+ let price: i128 = 2_500_000;
+ let t = terms(&env, "Mine");
+ let c = client.commitment_of(&task_id, &honest, &price, &t, &s);
+
+ client.submit_bid(&task_id, &honest, &c, &BOND, &70);
+ // The copycat submits the exact bytes they observed on-chain.
+ client.submit_bid(&task_id, ©cat, &c, &BOND, &70);
+
+ enter_reveal_window(&env, &client, &task_id);
+
+ client.reveal_bid(&task_id, &honest, &price, &t, &s);
+
+ // Even knowing the full plaintext, the copycat's commitment does not
+ // verify, because their own address is part of the pre-image.
+ let err = client.try_reveal_bid(&task_id, ©cat, &price, &t, &s);
+ assert_eq!(err.err(), Some(Ok(Error::InvalidCommitment)));
+ }
+
+ /// A revealed bid cannot be re-revealed at a different price after the
+ /// winner has been computed.
+ #[test]
+ fn revealed_bid_cannot_be_reopened_at_a_new_price() {
+ let (env, client, anyone) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_id = Symbol::new(&env, "reopen");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let s = salt(&env, 93);
+ let price: i128 = 4_000_000;
+ let t = terms(&env, "Fixed");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &50);
+
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &bidder, &price, &t, &s);
+ client.reveal_bids(&anyone, &task_id);
+
+ let err = client.try_reveal_bid(&task_id, &bidder, &1_000_000, &t, &s);
+ assert_eq!(err.err(), Some(Ok(Error::NotInBiddingPhase)));
+ assert_eq!(
+ client.get_bid(&task_id, &bidder).unwrap().price_stroops,
+ price
+ );
+ }
+
+ // ── Front-running the finalisation ───────────────────────────────────────
+
+ /// The core front-running defence: an attacker who reveals the moment
+ /// bidding closes cannot immediately finalise and win uncontested.
+ #[test]
+ fn reveal_bids_cannot_be_front_run_while_reveals_are_outstanding() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let attacker = Address::generate(&env);
+ let victim = Address::generate(&env);
+ let task_id = Symbol::new(&env, "frontrun");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let s_a = salt(&env, 101);
+ let s_v = salt(&env, 102);
+ let t = terms(&env, "T");
+
+ // The attacker's bid is far worse; only racing the finalisation could
+ // ever make it win.
+ let c_a = client.commitment_of(&task_id, &attacker, &9_000_000, &t, &s_a);
+ let c_v = client.commitment_of(&task_id, &victim, &1_200_000, &t, &s_v);
+ client.submit_bid(&task_id, &attacker, &c_a, &BOND, &10);
+ client.submit_bid(&task_id, &victim, &c_v, &BOND, &95);
+
+ enter_reveal_window(&env, &client, &task_id);
+
+ // Attacker reveals first and tries to close the auction on the spot.
+ client.reveal_bid(&task_id, &attacker, &9_000_000, &t, &s_a);
+ let err = client.try_reveal_bids(&attacker, &task_id);
+ assert_eq!(
+ err.err(),
+ Some(Ok(Error::RevealPeriodActive)),
+ "finalising must be refused while a sealed bid is still unrevealed"
+ );
+
+ // The victim reveals inside the window and wins.
+ client.reveal_bid(&task_id, &victim, &1_200_000, &t, &s_v);
+ client.reveal_bids(&attacker, &task_id);
+ assert_eq!(client.get_winner(&task_id).unwrap(), victim);
+ }
+
+ /// Once nothing is outstanding there is no race left, so the auction may
+ /// be finalised before the reveal window elapses.
+ #[test]
+ fn reveal_bids_finalises_early_when_every_bid_is_revealed() {
+ let (env, client, anyone) = setup();
+ let creator = Address::generate(&env);
+ let a = Address::generate(&env);
+ let b = Address::generate(&env);
+ let task_id = Symbol::new(&env, "all_in");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let t = terms(&env, "T");
+ let s_a = salt(&env, 103);
+ let s_b = salt(&env, 104);
+ let c_a = client.commitment_of(&task_id, &a, &2_000_000, &t, &s_a);
+ let c_b = client.commitment_of(&task_id, &b, &3_000_000, &t, &s_b);
+ client.submit_bid(&task_id, &a, &c_a, &BOND, &80);
+ client.submit_bid(&task_id, &b, &c_b, &BOND, &80);
+
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &a, &2_000_000, &t, &s_a);
+ client.reveal_bid(&task_id, &b, &3_000_000, &t, &s_b);
+
+ // Reveal window is still open, but nothing is outstanding.
+ let auction = client.get_auction(&task_id).unwrap();
+ assert!(env.ledger().timestamp() < auction.reveal_deadline);
+
+ client.reveal_bids(&anyone, &task_id);
+ assert_eq!(client.get_winner(&task_id).unwrap(), a);
+ }
+
+ // ── reveal_bids ──────────────────────────────────────────────────────────
#[test]
fn reveal_bids_selects_cheapest_when_reputation_equal() {
- let (env, client) = setup();
+ let (env, client, anyone) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "score_test");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- // Bidder A: cheaper, same reputation.
let a = Address::generate(&env);
- let salt_a = BytesN::<32>::from_array(&env, &[11u8; 32]);
- let price_a: i128 = 2_000_000;
- let terms_a = String::from_str(&env, "Cheap");
- let comm_a = test_commitment(&env, &a, price_a, &terms_a, &salt_a);
- client.submit_bid(&task_id, &a, &comm_a, &500_000, &80);
-
- // Bidder B: more expensive, same reputation.
let b = Address::generate(&env);
- let salt_b = BytesN::<32>::from_array(&env, &[12u8; 32]);
+ let s_a = salt(&env, 11);
+ let s_b = salt(&env, 12);
+ let price_a: i128 = 2_000_000;
let price_b: i128 = 5_000_000;
- let terms_b = String::from_str(&env, "Expensive");
- let comm_b = test_commitment(&env, &b, price_b, &terms_b, &salt_b);
- client.submit_bid(&task_id, &b, &comm_b, &500_000, &80);
+ let terms_a = terms(&env, "Cheap");
+ let terms_b = terms(&env, "Expensive");
- // Advance past deadline and reveal.
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
+ let c_a = client.commitment_of(&task_id, &a, &price_a, &terms_a, &s_a);
+ let c_b = client.commitment_of(&task_id, &b, &price_b, &terms_b, &s_b);
+ client.submit_bid(&task_id, &a, &c_a, &BOND, &80);
+ client.submit_bid(&task_id, &b, &c_b, &BOND, &80);
- client.reveal_bid(&task_id, &a, &price_a, &terms_a, &salt_a);
- client.reveal_bid(&task_id, &b, &price_b, &terms_b, &salt_b);
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &a, &price_a, &terms_a, &s_a);
+ client.reveal_bid(&task_id, &b, &price_b, &terms_b, &s_b);
- client.reveal_bids(&task_id);
+ client.reveal_bids(&anyone, &task_id);
- let winner = client.get_winner(&task_id).unwrap();
- assert_eq!(winner, a, "cheaper bidder A should win at equal reputation");
+ assert_eq!(
+ client.get_winner(&task_id).unwrap(),
+ a,
+ "cheaper bidder A should win at equal reputation"
+ );
- // Verify scores are stored.
let bid_a = client.get_bid(&task_id, &a).unwrap();
let bid_b = client.get_bid(&task_id, &b).unwrap();
assert!(
@@ -1010,230 +1781,480 @@ mod test {
#[test]
fn reveal_bids_selects_high_reputation_on_price_tie() {
- let (env, client) = setup();
+ let (env, client, anyone) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "score_best");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- // Bidder X: same price but higher reputation — higher rep wins.
let x = Address::generate(&env);
- let salt_x = BytesN::<32>::from_array(&env, &[13u8; 32]);
- let price_x: i128 = 5_000_000;
- let terms_x = String::from_str(&env, "Premium");
- let comm_x = test_commitment(&env, &x, price_x, &terms_x, &salt_x);
- client.submit_bid(&task_id, &x, &comm_x, &500_000, &100);
-
- // Bidder Y: same price, low reputation.
let y = Address::generate(&env);
- let salt_y = BytesN::<32>::from_array(&env, &[14u8; 32]);
- let price_y: i128 = 5_000_000;
- let terms_y = String::from_str(&env, "Bargain");
- let comm_y = test_commitment(&env, &y, price_y, &terms_y, &salt_y);
- client.submit_bid(&task_id, &y, &comm_y, &500_000, &10);
+ let price: i128 = 5_000_000;
+ let s_x = salt(&env, 13);
+ let s_y = salt(&env, 14);
+ let t_x = terms(&env, "Premium");
+ let t_y = terms(&env, "Bargain");
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
+ let c_x = client.commitment_of(&task_id, &x, &price, &t_x, &s_x);
+ let c_y = client.commitment_of(&task_id, &y, &price, &t_y, &s_y);
+ client.submit_bid(&task_id, &x, &c_x, &BOND, &100);
+ client.submit_bid(&task_id, &y, &c_y, &BOND, &10);
- client.reveal_bid(&task_id, &x, &price_x, &terms_x, &salt_x);
- client.reveal_bid(&task_id, &y, &price_y, &terms_y, &salt_y);
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &x, &price, &t_x, &s_x);
+ client.reveal_bid(&task_id, &y, &price, &t_y, &s_y);
- client.reveal_bids(&task_id);
+ client.reveal_bids(&anyone, &task_id);
- let winner = client.get_winner(&task_id).unwrap();
// At 60/40 weighting, when prices are identical the higher reputation wins.
assert_eq!(
- winner, x,
+ client.get_winner(&task_id).unwrap(),
+ x,
"on price tie, higher-reputation bidder X should win"
);
}
#[test]
fn reveal_bids_no_revealed_fails() {
- let (env, client) = setup();
+ let (env, client, anyone) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "no_rev");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
-
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+ close_reveal_window(&env, &client, &task_id);
// No bid was submitted at all.
- let err = client.try_reveal_bids(&task_id);
+ let err = client.try_reveal_bids(&anyone, &task_id);
assert_eq!(err.err(), Some(Ok(Error::NotEnoughBids)));
}
#[test]
fn reveal_bids_before_deadline_fails() {
- let (env, client) = setup();
+ let (env, client, anyone) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "early_rb");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- let err = client.try_reveal_bids(&task_id);
+ let err = client.try_reveal_bids(&anyone, &task_id);
assert_eq!(err.err(), Some(Ok(Error::BiddingPeriodActive)));
}
#[test]
fn reveal_bids_emits_event() {
- let (env, client) = setup();
+ let (env, client, anyone) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "rb_event");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
let bidder = Address::generate(&env);
- let salt = BytesN::<32>::from_array(&env, &[15u8; 32]);
+ let s = salt(&env, 15);
let price: i128 = 3_000_000;
- let terms = String::from_str(&env, "Solo");
- let comm = test_commitment(&env, &bidder, price, &terms, &salt);
- client.submit_bid(&task_id, &bidder, &comm, &500_000, &75);
+ let t = terms(&env, "Solo");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &75);
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
- client.reveal_bid(&task_id, &bidder, &price, &terms, &salt);
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &bidder, &price, &t, &s);
let _ = env.events().all(); // drain
- client.reveal_bids(&task_id);
+ client.reveal_bids(&anyone, &task_id);
let events = env.events().all();
assert_eq!(events.len(), 1, "expected exactly one BidsRevealed event");
}
+ #[test]
+ fn reveal_bids_twice_fails() {
+ let (env, client, anyone) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_id = Symbol::new(&env, "rb_twice");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let s = salt(&env, 16);
+ let price: i128 = 3_000_000;
+ let t = terms(&env, "Solo");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &75);
+
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &bidder, &price, &t, &s);
+ client.reveal_bids(&anyone, &task_id);
+
+ let err = client.try_reveal_bids(&anyone, &task_id);
+ assert_eq!(err.err(), Some(Ok(Error::NotInBiddingPhase)));
+ }
+
// ── award_contract ───────────────────────────────────────────────────────
#[test]
fn award_contract_creates_escrow_and_refunds() {
- let (env, client) = setup();
+ let (env, client, anyone) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "award_ok");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
let bidder = Address::generate(&env);
- let salt = BytesN::<32>::from_array(&env, &[16u8; 32]);
+ let s = salt(&env, 17);
let price: i128 = 4_000_000;
- let terms = String::from_str(&env, "Winner");
- let comm = test_commitment(&env, &bidder, price, &terms, &salt);
- client.submit_bid(&task_id, &bidder, &comm, &500_000, &50);
+ let t = terms(&env, "Winner");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &50);
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
- client.reveal_bid(&task_id, &bidder, &price, &terms, &salt);
- client.reveal_bids(&task_id);
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &bidder, &price, &t, &s);
+ client.reveal_bids(&anyone, &task_id);
- client.award_contract(&task_id);
+ client.award_contract(&creator, &task_id);
let auction = client.get_auction(&task_id).unwrap();
assert_eq!(auction.phase, AuctionPhase::Awarded);
assert!(auction.escrow_created);
- // Escrow created.
let escrow = client.get_escrow(&task_id).unwrap();
assert_eq!(escrow.agent, bidder);
assert_eq!(escrow.amount, price); // winning price locked
- // Bond refunded.
let bid = client.get_bid(&task_id, &bidder).unwrap();
assert!(bid.refunded);
+ assert!(!bid.forfeited);
}
#[test]
- fn award_contract_refunds_all_losing_bidders() {
- let (env, client) = setup();
+ fn award_contract_refunds_all_revealed_bidders() {
+ let (env, client, anyone) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "refund_all");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- // Winner: cheap.
let winner = Address::generate(&env);
- let salt_w = BytesN::<32>::from_array(&env, &[17u8; 32]);
- let price_w: i128 = 1_000_000;
- let terms_w = String::from_str(&env, "Win");
- let comm_w = test_commitment(&env, &winner, price_w, &terms_w, &salt_w);
- client.submit_bid(&task_id, &winner, &comm_w, &500_000, &80);
-
- // Loser: expensive.
let loser = Address::generate(&env);
- let salt_l = BytesN::<32>::from_array(&env, &[18u8; 32]);
+ let price_w: i128 = 1_000_000;
let price_l: i128 = 10_000_000;
- let terms_l = String::from_str(&env, "Lose");
- let comm_l = test_commitment(&env, &loser, price_l, &terms_l, &salt_l);
- client.submit_bid(&task_id, &loser, &comm_l, &500_000, &80);
+ let s_w = salt(&env, 18);
+ let s_l = salt(&env, 19);
+ let t_w = terms(&env, "Win");
+ let t_l = terms(&env, "Lose");
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
+ let c_w = client.commitment_of(&task_id, &winner, &price_w, &t_w, &s_w);
+ let c_l = client.commitment_of(&task_id, &loser, &price_l, &t_l, &s_l);
+ client.submit_bid(&task_id, &winner, &c_w, &BOND, &80);
+ client.submit_bid(&task_id, &loser, &c_l, &BOND, &80);
- client.reveal_bid(&task_id, &winner, &price_w, &terms_w, &salt_w);
- client.reveal_bid(&task_id, &loser, &price_l, &terms_l, &salt_l);
- client.reveal_bids(&task_id);
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &winner, &price_w, &t_w, &s_w);
+ client.reveal_bid(&task_id, &loser, &price_l, &t_l, &s_l);
+ client.reveal_bids(&anyone, &task_id);
- client.award_contract(&task_id);
+ client.award_contract(&creator, &task_id);
- let winner_bid = client.get_bid(&task_id, &winner).unwrap();
- assert!(winner_bid.refunded, "winner's bond should be refunded");
+ assert!(
+ client.get_bid(&task_id, &winner).unwrap().refunded,
+ "winner's bond should be refunded"
+ );
+ assert!(
+ client.get_bid(&task_id, &loser).unwrap().refunded,
+ "revealing loser's bond should be refunded"
+ );
+ }
+
+ /// A bidder who commits and never reveals loses their bond. That price is
+ /// what stops a sealed bid from being a free option to walk away.
+ #[test]
+ fn award_contract_forfeits_bonds_of_non_revealers() {
+ let (env, client, anyone) = setup();
+ let creator = Address::generate(&env);
+ let task_id = Symbol::new(&env, "forfeit");
- let loser_bid = client.get_bid(&task_id, &loser).unwrap();
- assert!(loser_bid.refunded, "loser's bond should be refunded");
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let honest = Address::generate(&env);
+ let ghost = Address::generate(&env);
+ let s_h = salt(&env, 111);
+ let s_g = salt(&env, 112);
+ let t = terms(&env, "T");
+ let price_h: i128 = 3_000_000;
+
+ let c_h = client.commitment_of(&task_id, &honest, &price_h, &t, &s_h);
+ let c_g = client.commitment_of(&task_id, &ghost, &1_100_000, &t, &s_g);
+ client.submit_bid(&task_id, &honest, &c_h, &BOND, &50);
+ client.submit_bid(&task_id, &ghost, &c_g, &BOND, &99);
+
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &honest, &price_h, &t, &s_h);
+
+ close_reveal_window(&env, &client, &task_id);
+ client.reveal_bids(&anyone, &task_id);
+ client.award_contract(&creator, &task_id);
+
+ let honest_bid = client.get_bid(&task_id, &honest).unwrap();
+ assert!(honest_bid.refunded);
+ assert!(!honest_bid.forfeited);
+
+ let ghost_bid = client.get_bid(&task_id, &ghost).unwrap();
+ assert!(
+ ghost_bid.forfeited,
+ "a bidder who never revealed must forfeit their bond"
+ );
+ assert!(!ghost_bid.refunded);
}
#[test]
fn award_contract_before_reveal_bids_fails() {
- let (env, client) = setup();
+ let (env, client, _) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "pre_award");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
let bidder = Address::generate(&env);
- let salt = BytesN::<32>::from_array(&env, &[19u8; 32]);
+ let s = salt(&env, 20);
let price: i128 = 3_000_000;
- let terms = String::from_str(&env, "Wait");
- let comm = test_commitment(&env, &bidder, price, &terms, &salt);
- client.submit_bid(&task_id, &bidder, &comm, &500_000, &50);
+ let t = terms(&env, "Wait");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &50);
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
+ enter_reveal_window(&env, &client, &task_id);
// Not yet revealed_bids → phase is still Bidding.
- let err = client.try_award_contract(&task_id);
+ let err = client.try_award_contract(&creator, &task_id);
assert_eq!(err.err(), Some(Ok(Error::NotInRevealPhase)));
}
#[test]
fn award_contract_twice_fails() {
- let (env, client) = setup();
+ let (env, client, anyone) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "twice_award");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
let bidder = Address::generate(&env);
- let salt = BytesN::<32>::from_array(&env, &[20u8; 32]);
+ let s = salt(&env, 21);
let price: i128 = 5_000_000;
- let terms = String::from_str(&env, "Solo");
- let comm = test_commitment(&env, &bidder, price, &terms, &salt);
- client.submit_bid(&task_id, &bidder, &comm, &500_000, &80);
-
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
- client.reveal_bid(&task_id, &bidder, &price, &terms, &salt);
- client.reveal_bids(&task_id);
- client.award_contract(&task_id);
-
- // After award, phase is Awarded — not Reveal, so NotInRevealPhase fires before
- // the escrow-created check.
- let err = client.try_award_contract(&task_id);
- assert_eq!(err.err(), Some(Ok(Error::NotInRevealPhase)));
+ let t = terms(&env, "Solo");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &80);
+
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &bidder, &price, &t, &s);
+ client.reveal_bids(&anyone, &task_id);
+ client.award_contract(&creator, &task_id);
+
+ let err = client.try_award_contract(&creator, &task_id);
+ assert_eq!(err.err(), Some(Ok(Error::AlreadyAwarded)));
+ }
+
+ #[test]
+ fn award_contract_rejects_unrelated_caller() {
+ let (env, client, anyone) = setup();
+ let creator = Address::generate(&env);
+ let stranger = Address::generate(&env);
+ let task_id = Symbol::new(&env, "stranger");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let bidder = Address::generate(&env);
+ let s = salt(&env, 22);
+ let price: i128 = 5_000_000;
+ let t = terms(&env, "Solo");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &80);
+
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &bidder, &price, &t, &s);
+ client.reveal_bids(&anyone, &task_id);
+
+ let err = client.try_award_contract(&stranger, &task_id);
+ assert_eq!(err.err(), Some(Ok(Error::Unauthorized)));
+
+ // The winner is the other party allowed to close it out.
+ client.award_contract(&bidder, &task_id);
+ assert_eq!(
+ client.get_auction(&task_id).unwrap().phase,
+ AuctionPhase::Awarded
+ );
+ }
+
+ // ── abort_auction ────────────────────────────────────────────────────────
+
+ #[test]
+ fn abort_auction_releases_bonds_when_nobody_reveals() {
+ let (env, client, anyone) = setup();
+ let creator = Address::generate(&env);
+ let task_id = Symbol::new(&env, "dead");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let a = Address::generate(&env);
+ let b = Address::generate(&env);
+ let t = terms(&env, "T");
+ let c_a = client.commitment_of(&task_id, &a, &2_000_000, &t, &salt(&env, 121));
+ let c_b = client.commitment_of(&task_id, &b, &3_000_000, &t, &salt(&env, 122));
+ client.submit_bid(&task_id, &a, &c_a, &BOND, &50);
+ client.submit_bid(&task_id, &b, &c_b, &BOND, &50);
+
+ close_reveal_window(&env, &client, &task_id);
+
+ // Without the rescue path this auction is unfinalisable.
+ let err = client.try_reveal_bids(&anyone, &task_id);
+ assert_eq!(err.err(), Some(Ok(Error::NotEnoughBids)));
+
+ client.abort_auction(&anyone, &task_id);
+
+ assert_eq!(
+ client.get_auction(&task_id).unwrap().phase,
+ AuctionPhase::Cancelled
+ );
+ for bidder in [&a, &b] {
+ let bid = client.get_bid(&task_id, bidder).unwrap();
+ assert!(bid.refunded, "abort must release every bond");
+ assert!(!bid.forfeited);
+ }
+ }
+
+ #[test]
+ fn abort_auction_rejected_while_reveal_window_open() {
+ let (env, client, anyone) = setup();
+ let creator = Address::generate(&env);
+ let task_id = Symbol::new(&env, "too_early");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+ enter_reveal_window(&env, &client, &task_id);
+
+ let err = client.try_abort_auction(&anyone, &task_id);
+ assert_eq!(err.err(), Some(Ok(Error::RevealPeriodActive)));
+ }
+
+ #[test]
+ fn abort_auction_rejected_when_a_bid_was_revealed() {
+ let (env, client, anyone) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_id = Symbol::new(&env, "has_rev");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let s = salt(&env, 123);
+ let price: i128 = 2_000_000;
+ let t = terms(&env, "T");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &50);
+
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &bidder, &price, &t, &s);
+ close_reveal_window(&env, &client, &task_id);
+
+ let err = client.try_abort_auction(&anyone, &task_id);
+ assert_eq!(err.err(), Some(Ok(Error::AuctionNotAbortable)));
+ }
+
+ #[test]
+ fn cancelled_auction_accepts_no_further_calls() {
+ let (env, client, anyone) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_id = Symbol::new(&env, "closed");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let s = salt(&env, 124);
+ let price: i128 = 2_000_000;
+ let t = terms(&env, "T");
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &50);
+
+ close_reveal_window(&env, &client, &task_id);
+ client.abort_auction(&anyone, &task_id);
+
+ let err = client.try_reveal_bid(&task_id, &bidder, &price, &t, &s);
+ assert_eq!(err.err(), Some(Ok(Error::AuctionClosed)));
+
+ let err = client.try_reveal_bids(&anyone, &task_id);
+ assert_eq!(err.err(), Some(Ok(Error::AuctionClosed)));
+
+ let err = client.try_abort_auction(&anyone, &task_id);
+ assert_eq!(err.err(), Some(Ok(Error::AuctionClosed)));
+ }
+
+ // ── Views ────────────────────────────────────────────────────────────────
+
+ #[test]
+ fn get_bidders_pages_and_clamps_limit() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let task_id = Symbol::new(&env, "paged");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let mut submitted: std::vec::Vec = std::vec::Vec::new();
+ for i in 0..5u8 {
+ let bidder = Address::generate(&env);
+ let c = client.commitment_of(
+ &task_id,
+ &bidder,
+ &2_000_000,
+ &terms(&env, "x"),
+ &salt(&env, 130 + i),
+ );
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &50);
+ submitted.push(bidder);
+ }
+
+ let first = client.get_bidders(&task_id, &0, &2);
+ assert_eq!(first.len(), 2);
+ assert_eq!(first.get(0).unwrap(), submitted[0]);
+ assert_eq!(first.get(1).unwrap(), submitted[1]);
+
+ let tail = client.get_bidders(&task_id, &3, &10);
+ assert_eq!(tail.len(), 2, "page must stop at the end of the list");
+
+ // An over-large limit is clamped, never honoured verbatim.
+ let clamped = client.get_bidders(&task_id, &0, &u32::MAX);
+ assert_eq!(clamped.len(), 5);
+
+ // Out-of-range start yields an empty page rather than panicking.
+ assert_eq!(client.get_bidders(&task_id, &99, &10).len(), 0);
+ }
+
+ #[test]
+ fn commitment_of_matches_what_reveal_verifies() {
+ let (env, client, _) = setup();
+ let creator = Address::generate(&env);
+ let bidder = Address::generate(&env);
+ let task_id = Symbol::new(&env, "commit_of");
+
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
+
+ let s = salt(&env, 140);
+ let price: i128 = 2_500_000;
+ let t = terms(&env, "Published helper");
+
+ let c = client.commitment_of(&task_id, &bidder, &price, &t, &s);
+ client.submit_bid(&task_id, &bidder, &c, &BOND, &60);
+
+ enter_reveal_window(&env, &client, &task_id);
+ client.reveal_bid(&task_id, &bidder, &price, &t, &s);
+
+ assert!(client.get_bid(&task_id, &bidder).unwrap().revealed);
}
// ── Full end-to-end flow ─────────────────────────────────────────────────
#[test]
fn full_sealed_bid_reveal_award_flow() {
- let (env, client) = setup();
+ let (env, client, anyone) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "e2e");
// 1. Create auction.
- client.create_auction(&creator, &task_id, &3600, &1_000_000, &500_000);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
let auction = client.get_auction(&task_id).unwrap();
assert_eq!(auction.phase, AuctionPhase::Bidding);
@@ -1242,16 +2263,20 @@ mod test {
let (bidder2, price2, rep2) = (Address::generate(&env), 3_000_000i128, 90u32);
let (bidder3, price3, rep3) = (Address::generate(&env), 5_000_000i128, 50u32);
- let salt = |b: u8| BytesN::<32>::from_array(&env, &[b; 32]);
- let terms = |s: &str| String::from_str(&env, s);
+ let t1 = terms(&env, "Offer 1");
+ let t2 = terms(&env, "Offer 2");
+ let t3 = terms(&env, "Offer 3");
+ let s1 = salt(&env, 21);
+ let s2 = salt(&env, 22);
+ let s3 = salt(&env, 23);
- let comm1 = test_commitment(&env, &bidder1, price1, &terms("Offer 1"), &salt(21));
- let comm2 = test_commitment(&env, &bidder2, price2, &terms("Offer 2"), &salt(22));
- let comm3 = test_commitment(&env, &bidder3, price3, &terms("Offer 3"), &salt(23));
+ let comm1 = client.commitment_of(&task_id, &bidder1, &price1, &t1, &s1);
+ let comm2 = client.commitment_of(&task_id, &bidder2, &price2, &t2, &s2);
+ let comm3 = client.commitment_of(&task_id, &bidder3, &price3, &t3, &s3);
- client.submit_bid(&task_id, &bidder1, &comm1, &500_000, &rep1);
- client.submit_bid(&task_id, &bidder2, &comm2, &500_000, &rep2);
- client.submit_bid(&task_id, &bidder3, &comm3, &500_000, &rep3);
+ client.submit_bid(&task_id, &bidder1, &comm1, &BOND, &rep1);
+ client.submit_bid(&task_id, &bidder2, &comm2, &BOND, &rep2);
+ client.submit_bid(&task_id, &bidder3, &comm3, &BOND, &rep3);
assert_eq!(client.get_bidder_count(&task_id), 3);
@@ -1260,14 +2285,13 @@ mod test {
assert!(!sealed.revealed);
assert_eq!(sealed.price_stroops, 0);
- // 3. Advance past deadline, reveal all.
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
+ // 3. Advance into the reveal window, reveal all.
+ enter_reveal_window(&env, &client, &task_id);
- client.reveal_bid(&task_id, &bidder1, &price1, &terms("Offer 1"), &salt(21));
- client.reveal_bid(&task_id, &bidder2, &price2, &terms("Offer 2"), &salt(22));
- client.reveal_bid(&task_id, &bidder3, &price3, &terms("Offer 3"), &salt(23));
+ client.reveal_bid(&task_id, &bidder1, &price1, &t1, &s1);
+ client.reveal_bid(&task_id, &bidder2, &price2, &t2, &s2);
+ client.reveal_bid(&task_id, &bidder3, &price3, &t3, &s3);
- // Verify revealed.
assert!(client.get_bid(&task_id, &bidder1).unwrap().revealed);
assert_eq!(
client.get_bid(&task_id, &bidder2).unwrap().price_stroops,
@@ -1275,7 +2299,7 @@ mod test {
);
// 4. Finalise reveals → winner selected.
- client.reveal_bids(&task_id);
+ client.reveal_bids(&anyone, &task_id);
let winner = client.get_winner(&task_id).unwrap();
// bidder2 has highest reputation (90) at moderate price (3M).
@@ -1286,11 +2310,13 @@ mod test {
"bidder2 with best composite score should win"
);
- let auction = client.get_auction(&task_id).unwrap();
- assert_eq!(auction.phase, AuctionPhase::Reveal);
+ assert_eq!(
+ client.get_auction(&task_id).unwrap().phase,
+ AuctionPhase::Reveal
+ );
// 5. Award contract.
- client.award_contract(&task_id);
+ client.award_contract(&creator, &task_id);
let final_auction = client.get_auction(&task_id).unwrap();
assert_eq!(final_auction.phase, AuctionPhase::Awarded);
@@ -1300,70 +2326,67 @@ mod test {
assert_eq!(escrow.agent, bidder2);
assert_eq!(escrow.amount, price2);
- // All bonds refunded.
+ // Everyone revealed, so every bond comes back.
for b in [&bidder1, &bidder2, &bidder3] {
let bid = client.get_bid(&task_id, b).unwrap();
assert!(bid.refunded, "bidder's bond should be refunded");
+ assert!(!bid.forfeited);
}
}
#[test]
fn winner_selection_price_preference_on_tie() {
- let (env, client) = setup();
+ let (env, client, anyone) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "tie");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
- // Two bidders with identical reputation — cheaper wins.
let cheap = Address::generate(&env);
let ex = Address::generate(&env);
+ let s1 = salt(&env, 31);
+ let s2 = salt(&env, 32);
+ let t = terms(&env, "X");
- let s1 = BytesN::<32>::from_array(&env, &[31u8; 32]);
- let s2 = BytesN::<32>::from_array(&env, &[32u8; 32]);
- let t = String::from_str(&env, "X");
-
- let c1 = test_commitment(&env, &cheap, 2_000_000, &t, &s1);
- let c2 = test_commitment(&env, &ex, 10_000_000, &t, &s2);
-
- client.submit_bid(&task_id, &cheap, &c1, &500_000, &80);
- client.submit_bid(&task_id, &ex, &c2, &500_000, &80);
-
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
+ let c1 = client.commitment_of(&task_id, &cheap, &2_000_000, &t, &s1);
+ let c2 = client.commitment_of(&task_id, &ex, &10_000_000, &t, &s2);
+ client.submit_bid(&task_id, &cheap, &c1, &BOND, &80);
+ client.submit_bid(&task_id, &ex, &c2, &BOND, &80);
+ enter_reveal_window(&env, &client, &task_id);
client.reveal_bid(&task_id, &cheap, &2_000_000, &t, &s1);
client.reveal_bid(&task_id, &ex, &10_000_000, &t, &s2);
- client.reveal_bids(&task_id);
+ client.reveal_bids(&anyone, &task_id);
assert_eq!(client.get_winner(&task_id).unwrap(), cheap);
}
#[test]
fn non_revealed_bidder_cannot_win() {
- let (env, client) = setup();
+ let (env, client, anyone) = setup();
let creator = Address::generate(&env);
let task_id = Symbol::new(&env, "no_show");
- create_test_auction(&env, &client, &creator, &task_id, 3600);
+ create_test_auction(&env, &client, &creator, &task_id, BID_SECS);
let rev = Address::generate(&env);
let noshow = Address::generate(&env);
+ let s_r = salt(&env, 41);
+ let s_n = salt(&env, 42);
+ let t = terms(&env, "Terms");
- let s_r = BytesN::<32>::from_array(&env, &[41u8; 32]);
- let s_n = BytesN::<32>::from_array(&env, &[42u8; 32]);
- let t = String::from_str(&env, "Terms");
-
- let c_r = test_commitment(&env, &rev, 5_000_000, &t, &s_r);
- let c_n = test_commitment(&env, &noshow, 1_000, &t, &s_n);
+ let c_r = client.commitment_of(&task_id, &rev, &5_000_000, &t, &s_r);
+ let c_n = client.commitment_of(&task_id, &noshow, &RESERVE, &t, &s_n);
+ client.submit_bid(&task_id, &rev, &c_r, &BOND, &50);
+ client.submit_bid(&task_id, &noshow, &c_n, &BOND, &90);
- client.submit_bid(&task_id, &rev, &c_r, &500_000, &50);
- client.submit_bid(&task_id, &noshow, &c_n, &500_000, &90);
-
- env.ledger().set_timestamp(env.ledger().timestamp() + 3601);
-
- // Only `rev` reveals.
+ enter_reveal_window(&env, &client, &task_id);
client.reveal_bid(&task_id, &rev, &5_000_000, &t, &s_r);
- client.reveal_bids(&task_id);
+
+ // The no-show never reveals, so the auction can only be finalised once
+ // the reveal window has closed.
+ close_reveal_window(&env, &client, &task_id);
+ client.reveal_bids(&anyone, &task_id);
assert_eq!(
client.get_winner(&task_id).unwrap(),
diff --git a/smart-contracts/contracts/agent_bidding/src/types.rs b/smart-contracts/contracts/agent_bidding/src/types.rs
index 3cf0917f..a3288ae3 100644
--- a/smart-contracts/contracts/agent_bidding/src/types.rs
+++ b/smart-contracts/contracts/agent_bidding/src/types.rs
@@ -9,24 +9,34 @@
//! ```text
//! create_auction → submit_bid (sealed) → reveal_bid (each bidder)
//! ↓ ↓
-//! [Bidding] ─────────────────────────────────→ [Reveal]
-//! ↓
+//! [Bidding] ──── bid deadline ────→ [Bidding, reveal window open]
+//! ↓
+//! reveal deadline (or all revealed)
+//! ↓
//! reveal_bids (winner computed)
-//! ↓
+//! ↓
+//! [Reveal]
+//! ↓
//! award_contract (escrow + refunds)
-//! ↓
-//! [Awarded]
+//! ↓
+//! [Awarded]
//! ```
//!
+//! An auction that attracts no valid reveal before the reveal deadline is a
+//! dead auction: `abort_auction` moves it to [`AuctionPhase::Cancelled`] and
+//! releases every bond, so bonds are never locked forever. See
+//! `docs/agent-bidding-security.md` for the full threat model.
+//!
//! ## Event Catalogue
//!
//! | Function | topic[1] | Data |
//! |-------------------|-----------------------|-------------------------------------|
//! | `create_auction` | `created` | `AuctionCreatedEvent` |
-//! | `submit_bid` | `bid_submitted` | `BidSubmittedEvent` |
-//! | `reveal_bid` | `bid_revealed` | `BidRevealedEvent` |
-//! | `reveal_bids` | `bids_revealed` | `BidsRevealedEvent` |
-//! | `award_contract` | `contract_awarded` | `ContractAwardedEvent` |
+//! | `submit_bid` | `bid_sbmtd` | `BidSubmittedEvent` |
+//! | `reveal_bid` | `bid_rvld` | `BidRevealedEvent` |
+//! | `reveal_bids` | `bids_rvld` | `BidsRevealedEvent` |
+//! | `award_contract` | `cntrct_aw` | `ContractAwardedEvent` |
+//! | `abort_auction` | `aborted` | `AuctionAbortedEvent` |
use soroban_sdk::{contracttype, Address, BytesN, String, Symbol};
@@ -35,9 +45,45 @@ use soroban_sdk::{contracttype, Address, BytesN, String, Symbol};
/// Default bidding period duration in ledger-seconds (1 hour).
pub const DEFAULT_BIDDING_DURATION_SECS: u64 = 3_600;
+/// Default reveal window duration in ledger-seconds (1 hour).
+///
+/// The reveal window opens when the bidding deadline passes and closes at
+/// `deadline + reveal_duration_secs`. Bounding the window is what makes the
+/// auction finalisable: without it, `reveal_bids` could be front-run the
+/// instant bidding closed (see `docs/agent-bidding-security.md`, A-1).
+pub const DEFAULT_REVEAL_DURATION_SECS: u64 = 3_600;
+
+/// Upper bound on any single auction phase, in ledger-seconds (30 days).
+///
+/// Caps how far into the future a creator can push a deadline, which bounds
+/// how long bonds can be locked by a single call.
+pub const MAX_PHASE_DURATION_SECS: u64 = 30 * 24 * 60 * 60;
+
+/// Lower bound on any single auction phase, in ledger-seconds (1 minute).
+///
+/// A sub-minute window is not reliably reachable by honest bidders across
+/// ledger close times, so it would function as a censorship tool.
+pub const MIN_PHASE_DURATION_SECS: u64 = 60;
+
/// Maximum allowed reputation score (percentage scale).
pub const MAX_REPUTATION: u32 = 100;
+/// Hard ceiling on any bid price, reserve price, or price cap, in stroops.
+///
+/// 10^17 stroops = 10^10 XLM, comfortably above the total XLM supply while
+/// leaving ~10 orders of magnitude of headroom under `i128::MAX` for the
+/// `SCORE_SCALE * price` products computed during scoring.
+pub const MAX_BID_PRICE: i128 = 100_000_000_000_000_000;
+
+/// Maximum number of sealed bids a single auction will accept.
+///
+/// `reveal_bids` and `award_contract` iterate the full bidder list, so this
+/// cap is what keeps both calls inside a bounded CPU/storage footprint.
+pub const MAX_BIDDERS: u32 = 100;
+
+/// Maximum byte length of the free-text `terms` attached to a revealed bid.
+pub const MAX_TERMS_LEN: u32 = 512;
+
/// Score scale factor for normalised sub-scores.
/// Each sub-score (price, reputation) is normalised to `[0, SCORE_SCALE]`.
pub const SCORE_SCALE: i128 = 1_000;
@@ -46,6 +92,14 @@ pub const SCORE_SCALE: i128 = 1_000;
pub const PRICE_WEIGHT: i128 = 60;
pub const REPUTATION_WEIGHT: i128 = 40;
+/// Domain-separation tag mixed into every bid commitment.
+///
+/// Binding the contract id, task id, and this tag into the pre-image is what
+/// stops a commitment from being replayed into a different auction or a
+/// different deployment of this contract (see `docs/agent-bidding-security.md`,
+/// A-3).
+pub const COMMITMENT_DOMAIN: &str = "ai-net:agent_bidding:v2:bid";
+
// ─── Auction Lifecycle ───────────────────────────────────────────────────────
/// Phases an auction moves through.
@@ -53,12 +107,14 @@ pub const REPUTATION_WEIGHT: i128 = 40;
#[derive(Clone, Debug, Eq, PartialEq)]
#[repr(u32)]
pub enum AuctionPhase {
- /// Collecting sealed bids. The creator may cancel during this phase.
+ /// Collecting sealed bids, then collecting reveals.
Bidding = 0,
- /// Bidding period has ended; bids can be revealed and the winner computed.
+ /// Winner selected from the revealed bids; awaiting `award_contract`.
Reveal = 1,
- /// Winner selected, escrow created, bonds refunded. Terminal state.
+ /// Winner selected, escrow created, bonds settled. Terminal state.
Awarded = 2,
+ /// Auction died without a valid reveal; every bond released. Terminal.
+ Cancelled = 3,
}
/// Creator-supplied configuration for an auction.
@@ -67,8 +123,15 @@ pub enum AuctionPhase {
pub struct AuctionConfig {
/// Duration of the bidding period in ledger-seconds (default: 1 h).
pub duration_secs: u64,
+ /// Duration of the reveal window in ledger-seconds (default: 1 h).
+ pub reveal_duration_secs: u64,
/// Minimum accepted price in stroops (reserve price).
pub reserve_price: i128,
+ /// Maximum accepted price in stroops (position-size cap).
+ ///
+ /// A reveal above this price is rejected, so a single bidder cannot commit
+ /// the creator to an unbounded position. Always `>= reserve_price`.
+ pub max_price: i128,
/// Required bond in stroops that each bidder must lock.
pub bond: i128,
}
@@ -85,8 +148,15 @@ pub struct Auction {
pub config: AuctionConfig,
/// Ledger timestamp when the auction was created.
pub created_at: u64,
- /// Ledger timestamp after which the bidding period ends.
+ /// Ledger timestamp after which the bidding period ends and reveals open.
pub deadline: u64,
+ /// Ledger timestamp after which reveals are refused and the winner can be
+ /// computed. Always `> deadline`.
+ pub reveal_deadline: u64,
+ /// How many sealed bids have been submitted (bounded by [`MAX_BIDDERS`]).
+ pub bid_count: u32,
+ /// How many of those bids have been revealed.
+ pub revealed_count: u32,
/// Current phase of the auction.
pub phase: AuctionPhase,
/// Whether the escrow has been created for the winner.
@@ -98,11 +168,14 @@ pub struct Auction {
/// A sealed bid stored on-chain during the bidding phase.
///
/// The `commitment` is an opaque 32-byte hash that commits the bidder to a
-/// specific `(price, terms, salt)` triple. The commitment is computed off-chain
-/// as:
+/// specific `(price, terms, salt)` triple *for one specific auction on one
+/// specific contract*. The commitment is computed off-chain as:
///
/// ```text
-/// commitment = SHA-256(bidder_xdr || price_xdr || terms_xdr || salt_xdr)
+/// commitment = SHA-256(
+/// COMMITMENT_DOMAIN_xdr || contract_id_xdr || task_id_xdr ||
+/// bidder_xdr || price_xdr || terms_xdr || salt_xdr
+/// )
/// ```
///
/// where each field is serialised to its Stellar XDR wire format before
@@ -113,7 +186,7 @@ pub struct Auction {
pub struct SealedBid {
/// Who placed this bid.
pub bidder: Address,
- /// SHA-256 commitment of (bidder, price, terms, salt).
+ /// SHA-256 commitment, domain-separated by contract id and task id.
pub commitment: BytesN<32>,
/// Bond locked by the bidder (matches the auction's required bond).
pub bond: i128,
@@ -121,8 +194,14 @@ pub struct SealedBid {
pub reputation: u32,
/// Whether the bidder has revealed their plaintext bid.
pub revealed: bool,
- /// Whether the bidder's bond has been refunded (set during award).
+ /// Whether the bidder's bond has been released back to them.
pub refunded: bool,
+ /// Whether the bidder's bond has been forfeited for failing to reveal.
+ ///
+ /// Mutually exclusive with `refunded`. Forfeiting the bond of a bidder who
+ /// commits and then stays silent is what prices the free option described
+ /// in `docs/agent-bidding-security.md`, A-2.
+ pub forfeited: bool,
/// Revealed price in stroops (0 while sealed).
pub price_stroops: i128,
/// Revealed terms (empty string while sealed).
@@ -181,8 +260,11 @@ pub struct AuctionCreatedEvent {
pub task_id: Symbol,
pub creator: Address,
pub duration_secs: u64,
+ pub reveal_duration_secs: u64,
pub deadline: u64,
+ pub reveal_deadline: u64,
pub reserve_price: i128,
+ pub max_price: i128,
pub bond: i128,
}
@@ -220,7 +302,7 @@ pub struct BidsRevealedEvent {
pub winning_price: i128,
}
-/// Emitted when `award_contract` creates the escrow and refunds bonds.
+/// Emitted when `award_contract` creates the escrow and settles bonds.
#[contracttype]
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct ContractAwardedEvent {
@@ -228,6 +310,19 @@ pub struct ContractAwardedEvent {
pub winner: Address,
/// Amount locked in escrow (= winning price).
pub escrow_amount: i128,
- /// Total number of bidders whose bonds were refunded.
+ /// Number of bidders who revealed and got their bond back.
+ pub refunded_bidders: u32,
+ /// Number of bidders who never revealed and forfeited their bond.
+ pub forfeited_bidders: u32,
+}
+
+/// Emitted when `abort_auction` cancels an auction that drew no valid reveal.
+#[contracttype]
+#[derive(Clone, Debug, Eq, PartialEq)]
+pub struct AuctionAbortedEvent {
+ pub task_id: Symbol,
+ /// Who called `abort_auction`.
+ pub caller: Address,
+ /// Number of bidders whose bond was released by the abort.
pub refunded_bidders: u32,
}
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/abort_auction_rejected_when_a_bid_was_revealed.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/abort_auction_rejected_when_a_bid_was_revealed.1.json
new file mode 100644
index 00000000..05b44756
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/abort_auction_rejected_when_a_bid_was_revealed.1.json
@@ -0,0 +1,687 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "has_rev"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "has_rev"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "df1d755740289eba35c7da334a6369c30c7773f7eff8629b6ef4dc56343d1ad5"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "has_rev"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 2000000
+ }
+ },
+ {
+ "string": "T"
+ },
+ {
+ "bytes": "7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 7201,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "has_rev"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "has_rev"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "has_rev"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "has_rev"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "has_rev"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "df1d755740289eba35c7da334a6369c30c7773f7eff8629b6ef4dc56343d1ad5"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 2000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "T"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "has_rev"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "has_rev"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/abort_auction_rejected_while_reveal_window_open.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/abort_auction_rejected_while_reveal_window_open.1.json
new file mode 100644
index 00000000..3fc5bea6
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/abort_auction_rejected_while_reveal_window_open.1.json
@@ -0,0 +1,406 @@
+{
+ "generators": {
+ "address": 3,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "too_early"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "too_early"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "too_early"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "too_early"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "too_early"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "too_early"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": []
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/abort_auction_releases_bonds_when_nobody_reveals.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/abort_auction_releases_bonds_when_nobody_reveals.1.json
new file mode 100644
index 00000000..ecb139b1
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/abort_auction_releases_bonds_when_nobody_reveals.1.json
@@ -0,0 +1,889 @@
+{
+ "generators": {
+ "address": 5,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "dead"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "dead"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "f26860ae59c8c773907d14c5cc62bb52c0c773c8c3d23a8a81de3fdd80f8b83b"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "dead"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "bytes": "508c7bf05fa21cb2d4c6d9677817be294db6c8a6218d4c7e622a3a6709bce02b"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "abort_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "dead"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 7201,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "dead"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "dead"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 3
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "dead"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "dead"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "dead"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "f26860ae59c8c773907d14c5cc62bb52c0c773c8c3d23a8a81de3fdd80f8b83b"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "dead"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "dead"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "508c7bf05fa21cb2d4c6d9677817be294db6c8a6218d4c7e622a3a6709bce02b"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "dead"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "dead"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_before_reveal_bids_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_before_reveal_bids_fails.1.json
index 70c105c5..ddf8d8c5 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_before_reveal_bids_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_before_reveal_bids_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "pre_award"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +94,10 @@
"symbol": "pre_award"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "9e229049ee32ee08e98779769c33cc635850ce3c4ad5e7630e505db0d68f22ce"
+ "bytes": "ce4527734a1ebaa997685ab310f77079b60cf0cf735a6758a756e139e527cadc"
},
{
"i128": {
@@ -76,6 +115,7 @@
}
]
],
+ [],
[]
],
"ledger": {
@@ -125,6 +165,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "config"
@@ -150,6 +198,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -160,6 +219,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -177,7 +244,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -204,6 +271,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -234,7 +317,7 @@
"symbol": "pre_award"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -257,7 +340,7 @@
"symbol": "pre_award"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -269,7 +352,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -288,7 +371,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "9e229049ee32ee08e98779769c33cc635850ce3c4ad5e7630e505db0d68f22ce"
+ "bytes": "ce4527734a1ebaa997685ab310f77079b60cf0cf735a6758a756e139e527cadc"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -392,7 +483,7 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
}
@@ -438,7 +529,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -453,7 +544,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -471,7 +562,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -486,7 +577,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_creates_escrow_and_refunds.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_creates_escrow_and_refunds.1.json
index 937078e4..6e7228a0 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_creates_escrow_and_refunds.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_creates_escrow_and_refunds.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "award_ok"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +94,10 @@
"symbol": "award_ok"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "6286aee724e43a249d58fc23e7eeaf8f66ee9905e673b085a028b75160cfe805"
+ "bytes": "9f0ff83c261e0c38900da8cd82d53b06a6032879c8131bae1e20cd764798aa6e"
},
{
"i128": {
@@ -76,9 +115,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -89,7 +129,7 @@
"symbol": "award_ok"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"i128": {
@@ -101,7 +141,51 @@
"string": "Winner"
},
{
- "bytes": "1010101010101010101010101010101010101010101010101010101010101010"
+ "bytes": "1111111111111111111111111111111111111111111111111111111111111111"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "award_ok"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "award_contract",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "award_ok"
}
]
}
@@ -110,8 +194,6 @@
}
]
],
- [],
- [],
[],
[],
[]
@@ -163,6 +245,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "config"
@@ -188,6 +278,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -198,6 +299,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -215,7 +324,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -242,6 +351,22 @@
"u32": 2
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -272,7 +397,7 @@
"symbol": "award_ok"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -295,7 +420,7 @@
"symbol": "award_ok"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -307,7 +432,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -326,7 +451,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "6286aee724e43a249d58fc23e7eeaf8f66ee9905e673b085a028b75160cfe805"
+ "bytes": "9f0ff83c261e0c38900da8cd82d53b06a6032879c8131bae1e20cd764798aa6e"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -430,7 +563,7 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
}
@@ -483,7 +616,7 @@
"symbol": "agent"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -502,7 +635,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -574,7 +707,7 @@
},
"durability": "persistent",
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
}
},
@@ -621,7 +754,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 4837995959683129791
}
},
"durability": "temporary"
@@ -634,6 +767,39 @@
"contract_data": {
"ext": "v0",
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -654,7 +820,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
- "nonce": 1033654523790656264
+ "nonce": 2032731177588607455
}
},
"durability": "temporary"
@@ -667,6 +833,39 @@
"contract_data": {
"ext": "v0",
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -684,7 +883,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -699,7 +898,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_forfeits_bonds_of_non_revealers.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_forfeits_bonds_of_non_revealers.1.json
new file mode 100644
index 00000000..0afa7273
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_forfeits_bonds_of_non_revealers.1.json
@@ -0,0 +1,1152 @@
+{
+ "generators": {
+ "address": 5,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "forfeit"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "forfeit"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "c950f57d0691eb92e8f8c89e86416878bce3bc0de919da169b48fd6b91af80d9"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "forfeit"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "bytes": "f816db8b70be187820535995026bfd131e9d24a61d06b41584dbc4e2b0333def"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 99
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "forfeit"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 3000000
+ }
+ },
+ {
+ "string": "T"
+ },
+ {
+ "bytes": "6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "forfeit"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "award_contract",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "forfeit"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 7201,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "forfeit"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "forfeit"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "forfeit"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "forfeit"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "forfeit"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "c950f57d0691eb92e8f8c89e86416878bce3bc0de919da169b48fd6b91af80d9"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 3000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "T"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "forfeit"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "forfeit"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "f816db8b70be187820535995026bfd131e9d24a61d06b41584dbc4e2b0333def"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 99
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "forfeit"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "forfeit"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Escrow"
+ },
+ {
+ "symbol": "forfeit"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Escrow"
+ },
+ {
+ "symbol": "forfeit"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "agent"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "amount"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 3000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "released"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "forfeit"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "forfeit"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "forfeit"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_refunds_all_revealed_bidders.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_refunds_all_revealed_bidders.1.json
new file mode 100644
index 00000000..390d7071
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_refunds_all_revealed_bidders.1.json
@@ -0,0 +1,1218 @@
+{
+ "generators": {
+ "address": 5,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "refund_all"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "refund_all"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "451cc74e7c713ee1e2ffa87edecce0cb3045227084c5dadbd85745844783b42a"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 80
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "refund_all"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "bytes": "d085efd4c9f6c91f5829eab4f34c75b0a6eab7998adb194fef3d5e75b635016d"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 80
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "refund_all"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ },
+ {
+ "string": "Win"
+ },
+ {
+ "bytes": "1212121212121212121212121212121212121212121212121212121212121212"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "refund_all"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 10000000
+ }
+ },
+ {
+ "string": "Lose"
+ },
+ {
+ "bytes": "1313131313131313131313131313131313131313131313131313131313131313"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "refund_all"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "award_contract",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "refund_all"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "refund_all"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "refund_all"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "refund_all"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "refund_all"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "refund_all"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "451cc74e7c713ee1e2ffa87edecce0cb3045227084c5dadbd85745844783b42a"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 80
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "Win"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "refund_all"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "refund_all"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "d085efd4c9f6c91f5829eab4f34c75b0a6eab7998adb194fef3d5e75b635016d"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 10000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 80
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 400
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "Lose"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "refund_all"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "refund_all"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Escrow"
+ },
+ {
+ "symbol": "refund_all"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Escrow"
+ },
+ {
+ "symbol": "refund_all"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "agent"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "amount"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "released"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "refund_all"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "refund_all"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "refund_all"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8370022561469687789
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8370022561469687789
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_rejects_unrelated_caller.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_rejects_unrelated_caller.1.json
new file mode 100644
index 00000000..c645226c
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_rejects_unrelated_caller.1.json
@@ -0,0 +1,939 @@
+{
+ "generators": {
+ "address": 5,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "stranger"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "stranger"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "bytes": "c4ca5202bd0278c46920546843d64e05cc274a5cb0a8d6bdea845e43638b5401"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 80
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "stranger"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 5000000
+ }
+ },
+ {
+ "string": "Solo"
+ },
+ {
+ "bytes": "1616161616161616161616161616161616161616161616161616161616161616"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "stranger"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "award_contract",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "symbol": "stranger"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "stranger"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "stranger"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "stranger"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "stranger"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "stranger"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "c4ca5202bd0278c46920546843d64e05cc274a5cb0a8d6bdea845e43638b5401"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 5000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 80
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "Solo"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "stranger"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "stranger"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Escrow"
+ },
+ {
+ "symbol": "stranger"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Escrow"
+ },
+ {
+ "symbol": "stranger"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "agent"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "amount"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 5000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "released"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "stranger"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "stranger"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "stranger"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_twice_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_twice_fails.1.json
index e760477d..01581989 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_twice_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_twice_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "twice_award"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +94,10 @@
"symbol": "twice_award"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "8f797d7a3c138e2a173993b95e1e66d5feb5c08e727e876a118712a335261280"
+ "bytes": "6ad7960e121f9ab68f172f8dfa261aaffb85036ab4e9a825506fa0bfdd23a549"
},
{
"i128": {
@@ -76,9 +115,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -89,7 +129,7 @@
"symbol": "twice_award"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"i128": {
@@ -101,7 +141,51 @@
"string": "Solo"
},
{
- "bytes": "1414141414141414141414141414141414141414141414141414141414141414"
+ "bytes": "1515151515151515151515151515151515151515151515151515151515151515"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "twice_award"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "award_contract",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "twice_award"
}
]
}
@@ -110,8 +194,6 @@
}
]
],
- [],
- [],
[]
],
"ledger": {
@@ -161,6 +243,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "config"
@@ -186,6 +276,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -196,6 +297,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -213,7 +322,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -240,6 +349,22 @@
"u32": 2
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -270,7 +395,7 @@
"symbol": "twice_award"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -293,7 +418,7 @@
"symbol": "twice_award"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -305,7 +430,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -324,7 +449,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "8f797d7a3c138e2a173993b95e1e66d5feb5c08e727e876a118712a335261280"
+ "bytes": "6ad7960e121f9ab68f172f8dfa261aaffb85036ab4e9a825506fa0bfdd23a549"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -428,7 +561,7 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
}
@@ -481,7 +614,7 @@
"symbol": "agent"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -500,7 +633,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -572,7 +705,7 @@
},
"durability": "persistent",
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
}
},
@@ -619,7 +752,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 4837995959683129791
}
},
"durability": "temporary"
@@ -632,6 +765,39 @@
"contract_data": {
"ext": "v0",
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -652,7 +818,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
- "nonce": 1033654523790656264
+ "nonce": 2032731177588607455
}
},
"durability": "temporary"
@@ -665,6 +831,39 @@
"contract_data": {
"ext": "v0",
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -682,7 +881,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -697,7 +896,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/cancelled_auction_accepts_no_further_calls.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/cancelled_auction_accepts_no_further_calls.1.json
new file mode 100644
index 00000000..21e1f993
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/cancelled_auction_accepts_no_further_calls.1.json
@@ -0,0 +1,676 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "closed"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "closed"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "69f43a0df588f4d071f3e81c8003e23130de86e352c6e2a67a21497e881b1f28"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "abort_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "closed"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 7201,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "closed"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "closed"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 3
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "closed"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "closed"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "closed"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "69f43a0df588f4d071f3e81c8003e23130de86e352c6e2a67a21497e881b1f28"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "closed"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "closed"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/commitment_cannot_be_replayed_across_auctions.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/commitment_cannot_be_replayed_across_auctions.1.json
new file mode 100644
index 00000000..c96c9b1d
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/commitment_cannot_be_replayed_across_auctions.1.json
@@ -0,0 +1,949 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "task_a"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "task_b"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "task_b"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "1ee5db6ac668c700c16586795d9d798e91d7f194d08e1821dd9d099be9a6a166"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "task_a"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "task_a"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "task_a"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "task_b"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "task_b"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "task_b"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "task_b"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "task_b"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "1ee5db6ac668c700c16586795d9d798e91d7f194d08e1821dd9d099be9a6a166"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "task_a"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "task_a"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": []
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "task_b"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "task_b"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/commitment_cannot_be_replayed_by_another_bidder.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/commitment_cannot_be_replayed_by_another_bidder.1.json
new file mode 100644
index 00000000..474532fc
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/commitment_cannot_be_replayed_by_another_bidder.1.json
@@ -0,0 +1,897 @@
+{
+ "generators": {
+ "address": 5,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "copycat"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "copycat"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "347dfdeb4d6f44e2c53b61f94e73f6f389f79ced31446c0cb2cc1968ea0f9c8b"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 70
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "copycat"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "bytes": "347dfdeb4d6f44e2c53b61f94e73f6f389f79ced31446c0cb2cc1968ea0f9c8b"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 70
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "copycat"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 2500000
+ }
+ },
+ {
+ "string": "Mine"
+ },
+ {
+ "bytes": "5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "copycat"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "copycat"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "copycat"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "copycat"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "copycat"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "347dfdeb4d6f44e2c53b61f94e73f6f389f79ced31446c0cb2cc1968ea0f9c8b"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 2500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 70
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "Mine"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "copycat"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "copycat"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "347dfdeb4d6f44e2c53b61f94e73f6f389f79ced31446c0cb2cc1968ea0f9c8b"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 70
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "copycat"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "copycat"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/commitment_of_matches_what_reveal_verifies.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/commitment_of_matches_what_reveal_verifies.1.json
new file mode 100644
index 00000000..c8121264
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/commitment_of_matches_what_reveal_verifies.1.json
@@ -0,0 +1,686 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "commit_of"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "commit_of"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "1a2d476c943836537d5393df01238f8d29acefb25d89cf37dd1936a4c4f1b67f"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 60
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "commit_of"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 2500000
+ }
+ },
+ {
+ "string": "Published helper"
+ },
+ {
+ "bytes": "8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "commit_of"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "commit_of"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "commit_of"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "commit_of"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "commit_of"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "1a2d476c943836537d5393df01238f8d29acefb25d89cf37dd1936a4c4f1b67f"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 2500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 60
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "Published helper"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "commit_of"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "commit_of"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_duplicate_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_duplicate_fails.1.json
index 41446dd3..83cef10f 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_duplicate_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_duplicate_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 2,
+ "address": 3,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "dup"
},
{
- "u64": 0
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -91,6 +129,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "config"
@@ -116,6 +162,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -126,6 +183,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -143,7 +208,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -170,6 +235,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -267,7 +348,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -282,7 +363,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_emits_event.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_emits_event.1.json
index 0ff80c54..0910623a 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_emits_event.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_emits_event.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 2,
+ "address": 3,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "events"
},
{
- "u64": 0
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -90,6 +128,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "config"
@@ -115,6 +161,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -125,6 +182,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -142,7 +207,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -169,6 +234,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -266,7 +347,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -281,7 +362,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -353,7 +434,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -372,6 +453,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -383,6 +475,22 @@
}
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
{
"key": {
"symbol": "task_id"
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_rejects_inverted_price_range.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_rejects_inverted_price_range.1.json
new file mode 100644
index 00000000..01751e57
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_rejects_inverted_price_range.1.json
@@ -0,0 +1,76 @@
+{
+ "generators": {
+ "address": 3,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 0,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_rejects_out_of_range_durations.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_rejects_out_of_range_durations.1.json
new file mode 100644
index 00000000..65d378cc
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_rejects_out_of_range_durations.1.json
@@ -0,0 +1,77 @@
+{
+ "generators": {
+ "address": 3,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 0,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_rejects_price_above_global_ceiling.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_rejects_price_above_global_ceiling.1.json
new file mode 100644
index 00000000..01751e57
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_rejects_price_above_global_ceiling.1.json
@@ -0,0 +1,76 @@
+{
+ "generators": {
+ "address": 3,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 0,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_stores_record.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_stores_record.1.json
index ef3e978d..299bd4e2 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_stores_record.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/create_auction_stores_record.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 2,
+ "address": 3,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "task_1"
},
{
- "u64": 0
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 0
+ }
+ }
+ ]
}
]
}
@@ -91,6 +129,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "config"
@@ -116,6 +162,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -126,6 +183,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -143,7 +208,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -170,6 +235,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -267,7 +348,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -282,7 +363,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/full_sealed_bid_reveal_award_flow.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/full_sealed_bid_reveal_award_flow.1.json
index 120a9ea8..9b8033d5 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/full_sealed_bid_reveal_award_flow.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/full_sealed_bid_reveal_award_flow.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 5,
+ "address": 6,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "e2e"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -43,9 +81,12 @@
]
],
[],
+ [],
+ [],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -56,10 +97,10 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "3d9a40924e246508f43ec8093ffb84f913bfe56cf0810510c5eb6f7da3424e9d"
+ "bytes": "c9584919968cd770f52f85902097be2ae0e6a81503a071a93e520ba02e5044ee"
},
{
"i128": {
@@ -79,7 +120,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
{
"function": {
"contract_fn": {
@@ -90,10 +131,10 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
},
{
- "bytes": "b458207405952819823ebba13b9de5071e5834e2b6d7d64f37d9f23ed65cbc18"
+ "bytes": "63270ae3897784f1638db593b679da365b30c260c2eb5f73f3941674c5addcb9"
},
{
"i128": {
@@ -113,7 +154,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
{
"function": {
"contract_fn": {
@@ -124,10 +165,10 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
},
{
- "bytes": "401976309b41ac1ef0a9b925cd57860e1ff4f7dee23a82c3aceac700e84df968"
+ "bytes": "329f804d632b0f7c472de8b9fd9f2b94019f1eeea28a62d052f18478186cf997"
},
{
"i128": {
@@ -147,9 +188,10 @@
],
[],
[],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -160,7 +202,7 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"i128": {
@@ -183,7 +225,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
{
"function": {
"contract_fn": {
@@ -194,7 +236,7 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
},
{
"i128": {
@@ -217,7 +259,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
{
"function": {
"contract_fn": {
@@ -228,7 +270,7 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
},
{
"i128": {
@@ -251,10 +293,52 @@
],
[],
[],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "e2e"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
[],
[],
- [],
- [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "award_contract",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "e2e"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
[],
[],
[],
@@ -308,6 +392,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 3
+ }
+ },
{
"key": {
"symbol": "config"
@@ -333,6 +425,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -343,6 +446,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -360,7 +471,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -387,6 +498,22 @@
"u32": 2
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 3
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -417,7 +544,7 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -440,7 +567,7 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -452,7 +579,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -471,7 +598,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "3d9a40924e246508f43ec8093ffb84f913bfe56cf0810510c5eb6f7da3424e9d"
+ "bytes": "c9584919968cd770f52f85902097be2ae0e6a81503a071a93e520ba02e5044ee"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -550,7 +685,7 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -573,7 +708,7 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -585,7 +720,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
},
{
@@ -604,7 +739,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "b458207405952819823ebba13b9de5071e5834e2b6d7d64f37d9f23ed65cbc18"
+ "bytes": "63270ae3897784f1638db593b679da365b30c260c2eb5f73f3941674c5addcb9"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -683,7 +826,7 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
}
]
},
@@ -706,7 +849,7 @@
"symbol": "e2e"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
}
]
},
@@ -718,7 +861,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
}
},
{
@@ -737,7 +880,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "401976309b41ac1ef0a9b925cd57860e1ff4f7dee23a82c3aceac700e84df968"
+ "bytes": "329f804d632b0f7c472de8b9fd9f2b94019f1eeea28a62d052f18478186cf997"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -840,14 +991,14 @@
"durability": "persistent",
"val": {
"vec": [
- {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
- },
{
"address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
}
]
}
@@ -900,7 +1051,7 @@
"symbol": "agent"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
},
{
@@ -919,7 +1070,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -991,7 +1142,7 @@
},
"durability": "persistent",
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
}
},
@@ -1038,7 +1189,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 6277191135259896685
}
},
"durability": "temporary"
@@ -1051,6 +1202,39 @@
"contract_data": {
"ext": "v0",
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6277191135259896685
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -1071,7 +1255,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
- "nonce": 2032731177588607455
+ "nonce": 5806905060045992000
}
},
"durability": "temporary"
@@ -1084,6 +1268,39 @@
"contract_data": {
"ext": "v0",
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5806905060045992000
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 2032731177588607455
@@ -1101,7 +1318,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -1116,7 +1333,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -1134,7 +1351,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -1149,7 +1366,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -1167,7 +1384,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 4270020994084947596
@@ -1182,7 +1399,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 4270020994084947596
@@ -1200,7 +1417,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
"key": {
"ledger_key_nonce": {
"nonce": 4837995959683129791
@@ -1215,7 +1432,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
"key": {
"ledger_key_nonce": {
"nonce": 4837995959683129791
@@ -1233,7 +1450,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
"key": {
"ledger_key_nonce": {
"nonce": 8370022561469687789
@@ -1248,7 +1465,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
"key": {
"ledger_key_nonce": {
"nonce": 8370022561469687789
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/get_bidders_pages_and_clamps_limit.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/get_bidders_pages_and_clamps_limit.1.json
new file mode 100644
index 00000000..8db0f466
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/get_bidders_pages_and_clamps_limit.1.json
@@ -0,0 +1,1469 @@
+{
+ "generators": {
+ "address": 8,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "paged"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "fdedde8a5d50882560efc9319c4cfcdd65ebc07aef3094887711344a39116bc8"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "bytes": "a68dee81aef0f4fbd8ec9edd0d60381b2589a1957f9196a6d9c67ae3e5c4db35"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
+ },
+ {
+ "bytes": "fb493e88b55571f8df210e9dd1697b5fda8b2d805d463363494cbec4ed05dbcc"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM"
+ },
+ {
+ "bytes": "72be4ba217defebefc3e6ee38f8c949c574dcffdca1ae6f7f399f29957833e11"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5"
+ },
+ {
+ "bytes": "636f2bd2dbcd1fbe392fcfc39f2b7b435da558f33f0b5fad7a84520458c58d03"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 0,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "paged"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "paged"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 5
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "paged"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "fdedde8a5d50882560efc9319c4cfcdd65ebc07aef3094887711344a39116bc8"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "a68dee81aef0f4fbd8ec9edd0d60381b2589a1957f9196a6d9c67ae3e5c4db35"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "fb493e88b55571f8df210e9dd1697b5fda8b2d805d463363494cbec4ed05dbcc"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "72be4ba217defebefc3e6ee38f8c949c574dcffdca1ae6f7f399f29957833e11"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "paged"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "636f2bd2dbcd1fbe392fcfc39f2b7b435da558f33f0b5fad7a84520458c58d03"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "paged"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "paged"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_refunds_all_losing_bidders.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/late_reveal_cannot_displace_an_already_selected_winner.1.json
similarity index 85%
rename from smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_refunds_all_losing_bidders.1.json
rename to smart-contracts/contracts/agent_bidding/test_snapshots/test/late_reveal_cannot_displace_an_already_selected_winner.1.json
index b0771a58..43f38006 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/award_contract_refunds_all_losing_bidders.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/late_reveal_cannot_displace_an_already_selected_winner.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 4,
+ "address": 5,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
- },
- {
- "symbol": "refund_all"
- },
- {
- "u64": 3600
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
+ "symbol": "no_displace"
},
{
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,11 @@
}
]
],
+ [],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -52,13 +92,13 @@
"function_name": "submit_bid",
"args": [
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "67667d7a6721cd5de0ada3241dbe0f1a51cf1a566e61faba4c43648eb7e9f9a7"
+ "bytes": "3981912b892325caa0424f636819501811427097fcb78f521ebe7832ac607521"
},
{
"i128": {
@@ -67,7 +107,7 @@
}
},
{
- "u32": 80
+ "u32": 40
}
]
}
@@ -78,7 +118,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
{
"function": {
"contract_fn": {
@@ -86,13 +126,13 @@
"function_name": "submit_bid",
"args": [
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
},
{
- "bytes": "269cc2c94643df28b10973e1b0eaebce83b169550729f7017c4776e7b37f9a9d"
+ "bytes": "89793479a077e61e63a26f137145776b8872546fd869694b988058a83b4a658f"
},
{
"i128": {
@@ -101,7 +141,7 @@
}
},
{
- "u32": 80
+ "u32": 99
}
]
}
@@ -110,9 +150,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -120,22 +161,22 @@
"function_name": "reveal_bid",
"args": [
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"i128": {
"hi": 0,
- "lo": 1000000
+ "lo": 8000000
}
},
{
- "string": "Win"
+ "string": "T"
},
{
- "bytes": "1111111111111111111111111111111111111111111111111111111111111111"
+ "bytes": "5252525252525252525252525252525252525252525252525252525252525252"
}
]
}
@@ -144,32 +185,21 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
{
"function": {
"contract_fn": {
"contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
- "function_name": "reveal_bid",
+ "function_name": "reveal_bids",
"args": [
{
- "symbol": "refund_all"
- },
- {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
- },
- {
- "i128": {
- "hi": 0,
- "lo": 10000000
- }
- },
- {
- "string": "Lose"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
},
{
- "bytes": "1212121212121212121212121212121212121212121212121212121212121212"
+ "symbol": "no_displace"
}
]
}
@@ -186,7 +216,7 @@
"ledger": {
"protocol_version": 22,
"sequence_number": 0,
- "timestamp": 3601,
+ "timestamp": 7201,
"network_id": "0000000000000000000000000000000000000000000000000000000000000000",
"base_reserve": 0,
"min_persistent_entry_ttl": 4096,
@@ -203,7 +233,7 @@
"symbol": "Auction"
},
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
}
]
},
@@ -223,13 +253,21 @@
"symbol": "Auction"
},
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
}
]
},
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
{
"key": {
"symbol": "config"
@@ -255,6 +293,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -265,6 +314,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -282,7 +339,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -298,7 +355,7 @@
"symbol": "escrow_created"
},
"val": {
- "bool": true
+ "bool": false
}
},
{
@@ -306,7 +363,23 @@
"symbol": "phase"
},
"val": {
- "u32": 2
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
}
},
{
@@ -314,7 +387,7 @@
"symbol": "task_id"
},
"val": {
- "symbol": "refund_all"
+ "symbol": "no_displace"
}
}
]
@@ -336,10 +409,10 @@
"symbol": "Bid"
},
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -359,10 +432,10 @@
"symbol": "Bid"
},
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -374,7 +447,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -393,7 +466,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "67667d7a6721cd5de0ada3241dbe0f1a51cf1a566e61faba4c43648eb7e9f9a7"
+ "bytes": "3981912b892325caa0424f636819501811427097fcb78f521ebe7832ac607521"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -403,7 +484,7 @@
"val": {
"i128": {
"hi": 0,
- "lo": 1000000
+ "lo": 8000000
}
}
},
@@ -412,7 +493,7 @@
"symbol": "refunded"
},
"val": {
- "bool": true
+ "bool": false
}
},
{
@@ -420,7 +501,7 @@
"symbol": "reputation"
},
"val": {
- "u32": 80
+ "u32": 40
}
},
{
@@ -447,7 +528,7 @@
"symbol": "terms"
},
"val": {
- "string": "Win"
+ "string": "T"
}
}
]
@@ -469,10 +550,10 @@
"symbol": "Bid"
},
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -492,10 +573,10 @@
"symbol": "Bid"
},
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -507,7 +588,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
},
{
@@ -526,7 +607,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "269cc2c94643df28b10973e1b0eaebce83b169550729f7017c4776e7b37f9a9d"
+ "bytes": "89793479a077e61e63a26f137145776b8872546fd869694b988058a83b4a658f"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -536,7 +625,7 @@
"val": {
"i128": {
"hi": 0,
- "lo": 10000000
+ "lo": 0
}
}
},
@@ -545,7 +634,7 @@
"symbol": "refunded"
},
"val": {
- "bool": true
+ "bool": false
}
},
{
@@ -553,7 +642,7 @@
"symbol": "reputation"
},
"val": {
- "u32": 80
+ "u32": 99
}
},
{
@@ -561,7 +650,7 @@
"symbol": "revealed"
},
"val": {
- "bool": true
+ "bool": false
}
},
{
@@ -571,7 +660,7 @@
"val": {
"i128": {
"hi": 0,
- "lo": 400
+ "lo": 0
}
}
},
@@ -580,7 +669,7 @@
"symbol": "terms"
},
"val": {
- "string": "Lose"
+ "string": ""
}
}
]
@@ -602,7 +691,7 @@
"symbol": "Bidders"
},
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
}
]
},
@@ -622,115 +711,18 @@
"symbol": "Bidders"
},
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
}
]
},
"durability": "persistent",
"val": {
"vec": [
- {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
- },
{
"address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
- }
- ]
- }
- }
- },
- "ext": "v0"
- },
- 535680
- ]
- ],
- [
- {
- "contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
- "key": {
- "vec": [
- {
- "symbol": "Escrow"
- },
- {
- "symbol": "refund_all"
- }
- ]
- },
- "durability": "persistent"
- }
- },
- [
- {
- "last_modified_ledger_seq": 0,
- "data": {
- "contract_data": {
- "ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
- "key": {
- "vec": [
- {
- "symbol": "Escrow"
- },
- {
- "symbol": "refund_all"
- }
- ]
- },
- "durability": "persistent",
- "val": {
- "map": [
- {
- "key": {
- "symbol": "agent"
- },
- "val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
- }
- },
- {
- "key": {
- "symbol": "amount"
- },
- "val": {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- }
- },
- {
- "key": {
- "symbol": "creator"
- },
- "val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
- }
- },
- {
- "key": {
- "symbol": "refunded"
- },
- "val": {
- "bool": false
- }
- },
- {
- "key": {
- "symbol": "released"
- },
- "val": {
- "bool": false
- }
},
{
- "key": {
- "symbol": "task_id"
- },
- "val": {
- "symbol": "refund_all"
- }
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
}
@@ -751,7 +743,7 @@
"symbol": "Winner"
},
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
}
]
},
@@ -771,13 +763,13 @@
"symbol": "Winner"
},
{
- "symbol": "refund_all"
+ "symbol": "no_displace"
}
]
},
"durability": "persistent",
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
}
},
@@ -824,7 +816,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 2032731177588607455
}
},
"durability": "temporary"
@@ -839,7 +831,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 2032731177588607455
}
},
"durability": "temporary",
@@ -857,7 +849,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
- "nonce": 4837995959683129791
+ "nonce": 801925984706572462
}
},
"durability": "temporary"
@@ -872,7 +864,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
- "nonce": 4837995959683129791
+ "nonce": 801925984706572462
}
},
"durability": "temporary",
@@ -887,10 +879,10 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
- "nonce": 5541220902715666415
+ "nonce": 4837995959683129791
}
},
"durability": "temporary"
@@ -902,10 +894,10 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
- "nonce": 5541220902715666415
+ "nonce": 4837995959683129791
}
},
"durability": "temporary",
@@ -923,7 +915,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
- "nonce": 1033654523790656264
+ "nonce": 5541220902715666415
}
},
"durability": "temporary"
@@ -938,7 +930,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
- "nonce": 1033654523790656264
+ "nonce": 5541220902715666415
}
},
"durability": "temporary",
@@ -953,10 +945,10 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
- "nonce": 2032731177588607455
+ "nonce": 1033654523790656264
}
},
"durability": "temporary"
@@ -968,10 +960,10 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
- "nonce": 2032731177588607455
+ "nonce": 1033654523790656264
}
},
"durability": "temporary",
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/non_revealed_bidder_cannot_win.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/non_revealed_bidder_cannot_win.1.json
index 044c49df..ca0a9d46 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/non_revealed_bidder_cannot_win.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/non_revealed_bidder_cannot_win.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 4,
+ "address": 5,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "no_show"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,11 @@
}
]
],
+ [],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +95,10 @@
"symbol": "no_show"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "67d5e59e8da16289f9b1758952a822f7895dcc8098268fa2b9bd793a704d7117"
+ "bytes": "48939b6ac1c0f9242661ae4283c88a4b8be02053f5668154eb4d8d0da882898c"
},
{
"i128": {
@@ -78,7 +118,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
{
"function": {
"contract_fn": {
@@ -89,10 +129,10 @@
"symbol": "no_show"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
},
{
- "bytes": "d5150e4908db9a81a77c8fc1a381d95190306e48089a9e989b9706111e832ddd"
+ "bytes": "9bd4af2f35b4b75b74e15bb2457600d39ab6116c08ecd6e45020c3943bffb8a7"
},
{
"i128": {
@@ -110,9 +150,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -123,7 +164,7 @@
"symbol": "no_show"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"i128": {
@@ -145,12 +186,34 @@
]
],
[],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "no_show"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
[]
],
"ledger": {
"protocol_version": 22,
"sequence_number": 0,
- "timestamp": 3601,
+ "timestamp": 7201,
"network_id": "0000000000000000000000000000000000000000000000000000000000000000",
"base_reserve": 0,
"min_persistent_entry_ttl": 4096,
@@ -194,6 +257,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
{
"key": {
"symbol": "config"
@@ -219,6 +290,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -229,6 +311,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -246,7 +336,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -273,6 +363,22 @@
"u32": 1
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -303,7 +409,7 @@
"symbol": "no_show"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -326,7 +432,7 @@
"symbol": "no_show"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -338,7 +444,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -357,7 +463,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "67d5e59e8da16289f9b1758952a822f7895dcc8098268fa2b9bd793a704d7117"
+ "bytes": "48939b6ac1c0f9242661ae4283c88a4b8be02053f5668154eb4d8d0da882898c"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -436,7 +550,7 @@
"symbol": "no_show"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -459,7 +573,7 @@
"symbol": "no_show"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -471,7 +585,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
},
{
@@ -490,7 +604,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "d5150e4908db9a81a77c8fc1a381d95190306e48089a9e989b9706111e832ddd"
+ "bytes": "9bd4af2f35b4b75b74e15bb2457600d39ab6116c08ecd6e45020c3943bffb8a7"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -594,10 +716,10 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
}
@@ -644,7 +766,7 @@
},
"durability": "persistent",
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
}
},
@@ -691,7 +813,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 2032731177588607455
}
},
"durability": "temporary"
@@ -706,7 +828,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 2032731177588607455
}
},
"durability": "temporary",
@@ -724,7 +846,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
- "nonce": 4837995959683129791
+ "nonce": 801925984706572462
}
},
"durability": "temporary"
@@ -737,6 +859,39 @@
"contract_data": {
"ext": "v0",
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 4837995959683129791
@@ -754,7 +909,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -769,7 +924,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -787,7 +942,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -802,7 +957,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_after_reveal_deadline_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_after_reveal_deadline_fails.1.json
new file mode 100644
index 00000000..068ed26e
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_after_reveal_deadline_fails.1.json
@@ -0,0 +1,620 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "late_rev"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "late_rev"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "8c6e267d79db7f19ba9162819c560cd2c54f8c284de94a8a354d72efc4225152"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 60
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 7201,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "late_rev"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "late_rev"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "late_rev"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "late_rev"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "late_rev"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "8c6e267d79db7f19ba9162819c560cd2c54f8c284de94a8a354d72efc4225152"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 60
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "late_rev"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "late_rev"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_before_deadline_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_before_deadline_fails.1.json
index a44bdea5..ceb53cbf 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_before_deadline_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_before_deadline_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "early_rev"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +94,10 @@
"symbol": "early_rev"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "2bcba4f767c15a38dcd164c4ac0e48c42dc052e1b46813e589a145c4027f669d"
+ "bytes": "d00c1af619eb7975fbfe0e790de34299f35d1b6ee16b645bff9bd3ce1f6066ca"
},
{
"i128": {
@@ -125,6 +164,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "config"
@@ -150,6 +197,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -160,6 +218,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -177,7 +243,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -204,6 +270,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -234,7 +316,7 @@
"symbol": "early_rev"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -257,7 +339,7 @@
"symbol": "early_rev"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -269,7 +351,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -288,7 +370,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "2bcba4f767c15a38dcd164c4ac0e48c42dc052e1b46813e589a145c4027f669d"
+ "bytes": "d00c1af619eb7975fbfe0e790de34299f35d1b6ee16b645bff9bd3ce1f6066ca"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -392,7 +482,7 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
}
@@ -438,7 +528,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -453,7 +543,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -471,7 +561,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -486,7 +576,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_rejects_oversized_terms.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_rejects_oversized_terms.1.json
new file mode 100644
index 00000000..0a29ad89
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_rejects_oversized_terms.1.json
@@ -0,0 +1,619 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "big_terms"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "big_terms"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "d77f9a104d2972143ecb61c7985f61272ac719de57baa376c7917ee61d9d0d4f"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "big_terms"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "big_terms"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "big_terms"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "big_terms"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "big_terms"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "d77f9a104d2972143ecb61c7985f61272ac719de57baa376c7917ee61d9d0d4f"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "big_terms"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "big_terms"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_rejects_price_above_cap.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_rejects_price_above_cap.1.json
new file mode 100644
index 00000000..6016f880
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_rejects_price_above_cap.1.json
@@ -0,0 +1,619 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "capped"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 4000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "capped"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "3b453a31ed9a8a4f692572af132794cffb634b7ec4d81153296a88827d19f061"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "capped"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "capped"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 4000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "capped"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "capped"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "capped"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "3b453a31ed9a8a4f692572af132794cffb634b7ec4d81153296a88827d19f061"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "capped"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "capped"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_rejects_price_below_reserve.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_rejects_price_below_reserve.1.json
new file mode 100644
index 00000000..c47ca5cb
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_rejects_price_below_reserve.1.json
@@ -0,0 +1,619 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "under"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "under"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "6d44af9769e878b9c39444430f5f95f704a8ea5045109df1f2b43c4d2618d3fe"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "under"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "under"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "under"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "under"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "under"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "6d44af9769e878b9c39444430f5f95f704a8ea5045109df1f2b43c4d2618d3fe"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "under"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "under"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_twice_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_twice_fails.1.json
index 5501bd52..2e45ea82 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_twice_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_twice_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
- },
- {
- "symbol": "twice_rev"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
- "u64": 3600
+ "symbol": "double_rev"
},
{
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -52,13 +91,13 @@
"function_name": "submit_bid",
"args": [
{
- "symbol": "twice_rev"
+ "symbol": "double_rev"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "f95c1ca25dd02d8ff123d83a0925673b866c40b9a7bb77482b0f8070940220cf"
+ "bytes": "34d734f2fc78b639fbfa4ca7c1b0f31f2ec8140b6570436914fb145412d44572"
},
{
"i128": {
@@ -67,7 +106,7 @@
}
},
{
- "u32": 80
+ "u32": 60
}
]
}
@@ -76,9 +115,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -86,10 +126,10 @@
"function_name": "reveal_bid",
"args": [
{
- "symbol": "twice_rev"
+ "symbol": "double_rev"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"i128": {
@@ -98,7 +138,7 @@
}
},
{
- "string": "Twice"
+ "string": "Once"
},
{
"bytes": "0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a"
@@ -110,6 +150,7 @@
}
]
],
+ [],
[]
],
"ledger": {
@@ -132,7 +173,7 @@
"symbol": "Auction"
},
{
- "symbol": "twice_rev"
+ "symbol": "double_rev"
}
]
},
@@ -152,13 +193,21 @@
"symbol": "Auction"
},
{
- "symbol": "twice_rev"
+ "symbol": "double_rev"
}
]
},
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "config"
@@ -184,6 +233,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -194,6 +254,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -211,7 +279,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -238,12 +306,28 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "task_id"
},
"val": {
- "symbol": "twice_rev"
+ "symbol": "double_rev"
}
}
]
@@ -265,10 +349,10 @@
"symbol": "Bid"
},
{
- "symbol": "twice_rev"
+ "symbol": "double_rev"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -288,10 +372,10 @@
"symbol": "Bid"
},
{
- "symbol": "twice_rev"
+ "symbol": "double_rev"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -303,7 +387,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -322,7 +406,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "f95c1ca25dd02d8ff123d83a0925673b866c40b9a7bb77482b0f8070940220cf"
+ "bytes": "34d734f2fc78b639fbfa4ca7c1b0f31f2ec8140b6570436914fb145412d44572"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -349,7 +441,7 @@
"symbol": "reputation"
},
"val": {
- "u32": 80
+ "u32": 60
}
},
{
@@ -376,7 +468,7 @@
"symbol": "terms"
},
"val": {
- "string": "Twice"
+ "string": "Once"
}
}
]
@@ -398,7 +490,7 @@
"symbol": "Bidders"
},
{
- "symbol": "twice_rev"
+ "symbol": "double_rev"
}
]
},
@@ -418,7 +510,7 @@
"symbol": "Bidders"
},
{
- "symbol": "twice_rev"
+ "symbol": "double_rev"
}
]
},
@@ -426,7 +518,7 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
}
@@ -472,7 +564,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -487,7 +579,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -505,7 +597,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -520,7 +612,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -538,7 +630,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -553,7 +645,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_verifies_commitment.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_verifies_commitment.1.json
index 8f63a124..0dcd4474 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_verifies_commitment.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_verifies_commitment.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "reveal_ok"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +94,10 @@
"symbol": "reveal_ok"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "041cc0842c8d6946a1a8dbc2b4b840c86ca9492fee719accbf2aa4d27d10321c"
+ "bytes": "546bd995d6ee46df209541fdcf4bed823ab37a141770977a26a6da383a983e22"
},
{
"i128": {
@@ -76,9 +115,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -89,7 +129,7 @@
"symbol": "reveal_ok"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"i128": {
@@ -110,6 +150,7 @@
}
]
],
+ [],
[]
],
"ledger": {
@@ -159,6 +200,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "config"
@@ -184,6 +233,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -194,6 +254,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -211,7 +279,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -238,6 +306,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -268,7 +352,7 @@
"symbol": "reveal_ok"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -291,7 +375,7 @@
"symbol": "reveal_ok"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -303,7 +387,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -322,7 +406,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "041cc0842c8d6946a1a8dbc2b4b840c86ca9492fee719accbf2aa4d27d10321c"
+ "bytes": "546bd995d6ee46df209541fdcf4bed823ab37a141770977a26a6da383a983e22"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -426,7 +518,7 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
}
@@ -472,7 +564,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -487,7 +579,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -505,7 +597,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -520,7 +612,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -538,7 +630,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -553,7 +645,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_wrong_commitment_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_wrong_commitment_fails.1.json
index 4747972d..b6fec850 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_wrong_commitment_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bid_wrong_commitment_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "bad_rev"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +94,10 @@
"symbol": "bad_rev"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "69f899142a6620b905bff4ad9a7bb75f25e0c7424ea3d717bd4a69faefb04611"
+ "bytes": "63dab5412027515068fccd0ad7f1a41356ee3aa0b791dfc41d1d39760f980456"
},
{
"i128": {
@@ -76,6 +115,7 @@
}
]
],
+ [],
[]
],
"ledger": {
@@ -125,6 +165,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "config"
@@ -150,6 +198,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -160,6 +219,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -177,7 +244,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -204,6 +271,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -234,7 +317,7 @@
"symbol": "bad_rev"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -257,7 +340,7 @@
"symbol": "bad_rev"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -269,7 +352,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -288,7 +371,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "69f899142a6620b905bff4ad9a7bb75f25e0c7424ea3d717bd4a69faefb04611"
+ "bytes": "63dab5412027515068fccd0ad7f1a41356ee3aa0b791dfc41d1d39760f980456"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -392,7 +483,7 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
}
@@ -438,7 +529,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -453,7 +544,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -471,7 +562,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -486,7 +577,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_before_deadline_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_before_deadline_fails.1.json
index 3bc5862f..2e767d66 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_before_deadline_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_before_deadline_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 2,
+ "address": 3,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "early_rb"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -91,6 +129,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "config"
@@ -116,6 +162,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -126,6 +183,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -143,7 +208,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -170,6 +235,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -267,7 +348,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -282,7 +363,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_cannot_be_front_run_while_reveals_are_outstanding.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_cannot_be_front_run_while_reveals_are_outstanding.1.json
new file mode 100644
index 00000000..bb5e9a88
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_cannot_be_front_run_while_reveals_are_outstanding.1.json
@@ -0,0 +1,1066 @@
+{
+ "generators": {
+ "address": 5,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "frontrun"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "frontrun"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "fb4a3ad23b2010beeb5af0793740ac8bfa84e1e67edb9deae5ac30366a090fd4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 10
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "frontrun"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "bytes": "88b4377765a1bf944ffac2b6e51fb02621ab9d115dcf06267c12789d9f8a0153"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 95
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "frontrun"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 9000000
+ }
+ },
+ {
+ "string": "T"
+ },
+ {
+ "bytes": "6565656565656565656565656565656565656565656565656565656565656565"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "frontrun"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 1200000
+ }
+ },
+ {
+ "string": "T"
+ },
+ {
+ "bytes": "6666666666666666666666666666666666666666666666666666666666666666"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "symbol": "frontrun"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "frontrun"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "frontrun"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "frontrun"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "frontrun"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "frontrun"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "fb4a3ad23b2010beeb5af0793740ac8bfa84e1e67edb9deae5ac30366a090fd4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 9000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 10
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "T"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "frontrun"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "frontrun"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "88b4377765a1bf944ffac2b6e51fb02621ab9d115dcf06267c12789d9f8a0153"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1200000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 95
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "T"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "frontrun"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "frontrun"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "frontrun"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "frontrun"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8370022561469687789
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8370022561469687789
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_emits_event.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_emits_event.1.json
index 2fd224f3..a6986d6e 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_emits_event.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_emits_event.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "rb_event"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +94,10 @@
"symbol": "rb_event"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "533cda81e5d17b5b322789b210af6d27c69d56d951a3c6e0a6ef267d18451ba1"
+ "bytes": "a820d94288b3dec4e320f43300ddf8956414f391f76324744c4895a63814e868"
},
{
"i128": {
@@ -76,9 +115,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -89,7 +129,7 @@
"symbol": "rb_event"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"i128": {
@@ -110,7 +150,28 @@
}
]
],
- []
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "rb_event"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ]
],
"ledger": {
"protocol_version": 22,
@@ -159,6 +220,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "config"
@@ -184,6 +253,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -194,6 +274,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -211,7 +299,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -238,6 +326,22 @@
"u32": 1
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -268,7 +372,7 @@
"symbol": "rb_event"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -291,7 +395,7 @@
"symbol": "rb_event"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -303,7 +407,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -322,7 +426,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "533cda81e5d17b5b322789b210af6d27c69d56d951a3c6e0a6ef267d18451ba1"
+ "bytes": "a820d94288b3dec4e320f43300ddf8956414f391f76324744c4895a63814e868"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -426,7 +538,7 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
}
@@ -473,7 +585,7 @@
},
"durability": "persistent",
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
}
},
@@ -520,7 +632,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 4837995959683129791
}
},
"durability": "temporary"
@@ -535,7 +647,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 4837995959683129791
}
},
"durability": "temporary",
@@ -553,7 +665,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
- "nonce": 1033654523790656264
+ "nonce": 801925984706572462
}
},
"durability": "temporary"
@@ -566,6 +678,39 @@
"contract_data": {
"ext": "v0",
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -583,7 +728,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -598,7 +743,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -675,7 +820,7 @@
"symbol": "winner"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_finalises_early_when_every_bid_is_revealed.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_finalises_early_when_every_bid_is_revealed.1.json
new file mode 100644
index 00000000..68d2e07d
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_finalises_early_when_every_bid_is_revealed.1.json
@@ -0,0 +1,1066 @@
+{
+ "generators": {
+ "address": 5,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "all_in"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "all_in"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "b5bd89bdccd979520cece8b0ebbbeaaacc3bab57068235113f9454f39410d2cd"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 80
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "all_in"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "bytes": "c7fe46ce510a2b823a8c55bf714587130addcdbc48fc330b49307d4a4e7578bd"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 80
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "all_in"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 2000000
+ }
+ },
+ {
+ "string": "T"
+ },
+ {
+ "bytes": "6767676767676767676767676767676767676767676767676767676767676767"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "all_in"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 3000000
+ }
+ },
+ {
+ "string": "T"
+ },
+ {
+ "bytes": "6868686868686868686868686868686868686868686868686868686868686868"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "all_in"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "all_in"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "all_in"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "all_in"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "all_in"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "all_in"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "b5bd89bdccd979520cece8b0ebbbeaaacc3bab57068235113f9454f39410d2cd"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 2000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 80
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "T"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "all_in"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "all_in"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "c7fe46ce510a2b823a8c55bf714587130addcdbc48fc330b49307d4a4e7578bd"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 3000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 80
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 400
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "T"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "all_in"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "all_in"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "all_in"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "all_in"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_no_revealed_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_no_revealed_fails.1.json
index 973faf2c..e52fc071 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_no_revealed_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_no_revealed_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 2,
+ "address": 3,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "no_rev"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,12 +80,13 @@
}
]
],
+ [],
[]
],
"ledger": {
"protocol_version": 22,
"sequence_number": 0,
- "timestamp": 3601,
+ "timestamp": 7201,
"network_id": "0000000000000000000000000000000000000000000000000000000000000000",
"base_reserve": 0,
"min_persistent_entry_ttl": 4096,
@@ -91,6 +130,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "config"
@@ -116,6 +163,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -126,6 +184,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -143,7 +209,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -170,6 +236,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -267,7 +349,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -282,7 +364,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_selects_cheapest_when_reputation_equal.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_selects_cheapest_when_reputation_equal.1.json
index d4d760a0..a04312e2 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_selects_cheapest_when_reputation_equal.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_selects_cheapest_when_reputation_equal.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 4,
+ "address": 5,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "score_test"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,11 @@
}
]
],
+ [],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +95,10 @@
"symbol": "score_test"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "e261279b7bdd119f194fb6ff19cfd882ca660762861593c72b565cee7efc61ef"
+ "bytes": "0df5330054d3a313a81730b8ccf750e55207a3a23ff63613dddd95a952613c4f"
},
{
"i128": {
@@ -78,7 +118,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
{
"function": {
"contract_fn": {
@@ -89,10 +129,10 @@
"symbol": "score_test"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
},
{
- "bytes": "3fe19a7079f1a885ef207fd5493a6de5c154d2dee533492427e289180e3deb85"
+ "bytes": "dec86967082b36b1cab5193396b1c34d9a2761b388630fcbbb94e286d01d6f5b"
},
{
"i128": {
@@ -110,9 +150,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -123,7 +164,7 @@
"symbol": "score_test"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"i128": {
@@ -146,7 +187,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
{
"function": {
"contract_fn": {
@@ -157,7 +198,7 @@
"symbol": "score_test"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
},
{
"i128": {
@@ -178,7 +219,28 @@
}
]
],
- [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "score_test"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
[],
[],
[]
@@ -230,6 +292,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
{
"key": {
"symbol": "config"
@@ -255,6 +325,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -265,6 +346,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -282,7 +371,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -309,6 +398,22 @@
"u32": 1
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -339,7 +444,7 @@
"symbol": "score_test"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -362,7 +467,7 @@
"symbol": "score_test"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -374,7 +479,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -393,7 +498,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "e261279b7bdd119f194fb6ff19cfd882ca660762861593c72b565cee7efc61ef"
+ "bytes": "0df5330054d3a313a81730b8ccf750e55207a3a23ff63613dddd95a952613c4f"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -472,7 +585,7 @@
"symbol": "score_test"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -495,7 +608,7 @@
"symbol": "score_test"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -507,7 +620,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
},
{
@@ -526,7 +639,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "3fe19a7079f1a885ef207fd5493a6de5c154d2dee533492427e289180e3deb85"
+ "bytes": "dec86967082b36b1cab5193396b1c34d9a2761b388630fcbbb94e286d01d6f5b"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -630,10 +751,10 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
}
@@ -680,7 +801,7 @@
},
"durability": "persistent",
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
}
},
@@ -727,7 +848,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 4270020994084947596
}
},
"durability": "temporary"
@@ -742,7 +863,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 4270020994084947596
}
},
"durability": "temporary",
@@ -760,7 +881,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
- "nonce": 4837995959683129791
+ "nonce": 801925984706572462
}
},
"durability": "temporary"
@@ -773,6 +894,39 @@
"contract_data": {
"ext": "v0",
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 4837995959683129791
@@ -790,7 +944,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -805,7 +959,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -823,7 +977,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -838,7 +992,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -856,7 +1010,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 2032731177588607455
@@ -871,7 +1025,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 2032731177588607455
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_selects_high_reputation_on_price_tie.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_selects_high_reputation_on_price_tie.1.json
index 2bfab101..c2195880 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_selects_high_reputation_on_price_tie.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_selects_high_reputation_on_price_tie.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 4,
+ "address": 5,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "score_best"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,11 @@
}
]
],
+ [],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +95,10 @@
"symbol": "score_best"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "c1dcd9b688ba3740102f43a04d91e1bf066c11f48a5caf183e6e0037b6079663"
+ "bytes": "006c879de7fe55c6066a2d68456b52e8c1a5b245054d9e10000fa2ed182d7b7e"
},
{
"i128": {
@@ -78,7 +118,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
{
"function": {
"contract_fn": {
@@ -89,10 +129,10 @@
"symbol": "score_best"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
},
{
- "bytes": "8d39148caf6a6f7f800e082f65105baafaddee7a568dab900037001fbcda9f83"
+ "bytes": "209296c37f08d6c40b2a2d8d8a1ab1cbf4159b23cf6fd93bc2ebf0fcc22ef50c"
},
{
"i128": {
@@ -110,9 +150,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -123,7 +164,7 @@
"symbol": "score_best"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"i128": {
@@ -146,7 +187,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
{
"function": {
"contract_fn": {
@@ -157,7 +198,7 @@
"symbol": "score_best"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
},
{
"i128": {
@@ -178,7 +219,28 @@
}
]
],
- [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "score_best"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
[]
],
"ledger": {
@@ -228,6 +290,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
{
"key": {
"symbol": "config"
@@ -253,6 +323,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -263,6 +344,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -280,7 +369,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -307,6 +396,22 @@
"u32": 1
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -337,7 +442,7 @@
"symbol": "score_best"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -360,7 +465,7 @@
"symbol": "score_best"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -372,7 +477,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -391,7 +496,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "c1dcd9b688ba3740102f43a04d91e1bf066c11f48a5caf183e6e0037b6079663"
+ "bytes": "006c879de7fe55c6066a2d68456b52e8c1a5b245054d9e10000fa2ed182d7b7e"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -470,7 +583,7 @@
"symbol": "score_best"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -493,7 +606,7 @@
"symbol": "score_best"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -505,7 +618,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
},
{
@@ -524,7 +637,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "8d39148caf6a6f7f800e082f65105baafaddee7a568dab900037001fbcda9f83"
+ "bytes": "209296c37f08d6c40b2a2d8d8a1ab1cbf4159b23cf6fd93bc2ebf0fcc22ef50c"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -628,10 +749,10 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
}
@@ -678,7 +799,7 @@
},
"durability": "persistent",
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
}
},
@@ -725,7 +846,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 4270020994084947596
}
},
"durability": "temporary"
@@ -740,7 +861,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 4270020994084947596
}
},
"durability": "temporary",
@@ -758,7 +879,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
- "nonce": 4837995959683129791
+ "nonce": 801925984706572462
}
},
"durability": "temporary"
@@ -771,6 +892,39 @@
"contract_data": {
"ext": "v0",
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 4837995959683129791
@@ -788,7 +942,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -803,7 +957,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -821,7 +975,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -836,7 +990,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -854,7 +1008,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 2032731177588607455
@@ -869,7 +1023,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 2032731177588607455
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_twice_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_twice_fails.1.json
new file mode 100644
index 00000000..285a8777
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/reveal_bids_twice_fails.1.json
@@ -0,0 +1,786 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "rb_twice"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "rb_twice"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "fccff2591e7f205eff66641ee2af39f956d8b3e9079b2ba8fc17ffd9851594e2"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 75
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "rb_twice"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 3000000
+ }
+ },
+ {
+ "string": "Solo"
+ },
+ {
+ "bytes": "1010101010101010101010101010101010101010101010101010101010101010"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "rb_twice"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "rb_twice"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "rb_twice"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "rb_twice"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "rb_twice"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "rb_twice"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "fccff2591e7f205eff66641ee2af39f956d8b3e9079b2ba8fc17ffd9851594e2"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 3000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 75
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "Solo"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "rb_twice"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "rb_twice"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "rb_twice"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "rb_twice"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/revealed_bid_cannot_be_reopened_at_a_new_price.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/revealed_bid_cannot_be_reopened_at_a_new_price.1.json
new file mode 100644
index 00000000..9fe3dd52
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/revealed_bid_cannot_be_reopened_at_a_new_price.1.json
@@ -0,0 +1,787 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "reopen"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "reopen"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "da805e0a2a7e76df4881337eb44ce26e0e6272a0dee8450ab12aed9937a1dddc"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bid",
+ "args": [
+ {
+ "symbol": "reopen"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 4000000
+ }
+ },
+ {
+ "string": "Fixed"
+ },
+ {
+ "bytes": "5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "reopen"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 3601,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "reopen"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "reopen"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "reopen"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "reopen"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "reopen"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "da805e0a2a7e76df4881337eb44ce26e0e6272a0dee8450ab12aed9937a1dddc"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 4000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": true
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": "Fixed"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "reopen"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "reopen"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "reopen"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Winner"
+ },
+ {
+ "symbol": "reopen"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_after_deadline_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_after_deadline_fails.1.json
index 6e46adc5..d5d69c3f 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_after_deadline_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_after_deadline_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "late"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -43,6 +81,7 @@
]
],
[],
+ [],
[]
],
"ledger": {
@@ -92,6 +131,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "config"
@@ -117,6 +164,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -127,6 +185,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -144,7 +210,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -171,6 +237,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -268,7 +350,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -283,7 +365,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_duplicate_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_duplicate_fails.1.json
index b7a15280..c6f3c2d1 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_duplicate_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_duplicate_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "dup_bid"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +94,10 @@
"symbol": "dup_bid"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "3bf69a256d42750f2a1ac18be14d1031094debb72b238a5ebd6ceb482b143519"
+ "bytes": "b913f758bf548ee241076d765b8db222bf45996b9bf59f7c6b5675b3f02d794e"
},
{
"i128": {
@@ -125,6 +164,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "config"
@@ -150,6 +197,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -160,6 +218,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -177,7 +243,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -204,6 +270,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -234,7 +316,7 @@
"symbol": "dup_bid"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -257,7 +339,7 @@
"symbol": "dup_bid"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -269,7 +351,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -288,7 +370,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "3bf69a256d42750f2a1ac18be14d1031094debb72b238a5ebd6ceb482b143519"
+ "bytes": "b913f758bf548ee241076d765b8db222bf45996b9bf59f7c6b5675b3f02d794e"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -392,7 +482,7 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
}
@@ -438,7 +528,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -453,7 +543,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -471,7 +561,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -486,7 +576,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_emits_event.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_emits_event.1.json
index 27b12ef4..194e9806 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_emits_event.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_emits_event.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "bid_event"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +94,10 @@
"symbol": "bid_event"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "634fc826dd1a6c7952b67686cbe7b596aa7518b5a9e17703afc8c8ea125cb9b1"
+ "bytes": "bf94f0cd1dbf1d6bab4631c5e419d035b92f9df69e375f0f1c5391b79345a97f"
},
{
"i128": {
@@ -124,6 +163,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "config"
@@ -149,6 +196,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -159,6 +217,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -176,7 +242,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -203,6 +269,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -233,7 +315,7 @@
"symbol": "bid_event"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -256,7 +338,7 @@
"symbol": "bid_event"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -268,7 +350,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -287,7 +369,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "634fc826dd1a6c7952b67686cbe7b596aa7518b5a9e17703afc8c8ea125cb9b1"
+ "bytes": "bf94f0cd1dbf1d6bab4631c5e419d035b92f9df69e375f0f1c5391b79345a97f"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -391,7 +481,7 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
}
@@ -437,7 +527,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -452,7 +542,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -470,7 +560,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -485,7 +575,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -546,7 +636,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_invalid_reputation_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_invalid_reputation_fails.1.json
index 6e86a5a7..19254318 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_invalid_reputation_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_invalid_reputation_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "bad_rep"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,6 +80,7 @@
}
]
],
+ [],
[]
],
"ledger": {
@@ -91,6 +130,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "config"
@@ -116,6 +163,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -126,6 +184,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -143,7 +209,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -170,6 +236,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -267,7 +349,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -282,7 +364,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_rejects_beyond_max_bidders.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_rejects_beyond_max_bidders.1.json
new file mode 100644
index 00000000..0289cb76
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_rejects_beyond_max_bidders.1.json
@@ -0,0 +1,21608 @@
+{
+ "generators": {
+ "address": 104,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "6c1c762a4ade264c018713c4f331ab6038ba935465d29508d24ee477dc0efb95"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "bytes": "fec83d8c6c52a774eee44eb053fc0843acab42b3ca8c557de658419a56fa9fe6"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
+ },
+ {
+ "bytes": "cb94ea667de7a855a86be089b8e584bdf7d45b4fbe10f072f164f188b94b8ae1"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM"
+ },
+ {
+ "bytes": "256ea7daf3bbc94163747f3bb50931307a25cc687572ab72a2beb45fba24b3a7"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5"
+ },
+ {
+ "bytes": "112d6a9c5de6fc13b8f54a260545a815e0da6229ce506551bd932e2d1c55b211"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON"
+ },
+ {
+ "bytes": "8446ed83f416cda9e46ce49493daf9b025f0cd9851cca852dfa7f8a6f2ea3f94"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5"
+ },
+ {
+ "bytes": "bd9a680c6ac088078f6524d96773b93d3494e35e397580280e65d1fb4601192e"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N"
+ },
+ {
+ "bytes": "840a9ed78742c522621be4264b660cc49cec7defe61becf0f3199c6e2b6640b4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5"
+ },
+ {
+ "bytes": "3c47fe0d651432becbb7dfa11eab53b3ab5f9306286f469ccc3ee7c65ce15bb4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN"
+ },
+ {
+ "bytes": "048198a009484e1b5b031c03a934ddf4f062e0f6b114f06aa68981e2db96e190"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5"
+ },
+ {
+ "bytes": "05e7af83a2ff90520f2f46b6b30770e32f8bb878562cba5bbb5ecf563065de19"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N"
+ },
+ {
+ "bytes": "2c50609a32e88f37a5d6b2f8e4bf63590ba5a53f41c6417ce16bccafd9f1eeb6"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO"
+ },
+ {
+ "bytes": "ab713a8d9961f1862ab402a4ed761eb5d26c550145fe16ef7641f99d83815965"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6"
+ },
+ {
+ "bytes": "e8a7f108a3f5c3643db9a04a9897ce2a406732e42458b89b382ac066fff6c595"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O"
+ },
+ {
+ "bytes": "a4b31941b80082f1941c90826ff2670f051327a8bc34c378aa51405de44494ef"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6"
+ },
+ {
+ "bytes": "688d8bbae3961278d04c9d74916e0dd65beebd4f4457154bb2064637611cf67a"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO"
+ },
+ {
+ "bytes": "2f91aee6cab6a1fe788c37b417d206e1cd8349721aed63f692fd57c0aaf08820"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKXA6",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKXA6"
+ },
+ {
+ "bytes": "4f2c8ac75fa30588344d539fb9a74f8812e46e19bc0439b201b5e1abb7bc3f91"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMPZO",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMPZO"
+ },
+ {
+ "bytes": "906abc397a5fae590f518aec4770d35e549519053700a6a22417e379e844e800"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOHR6",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOHR6"
+ },
+ {
+ "bytes": "a532677385b084808d7408c04ed1f6bdb73cffe98d344c4a992d36bdc3768b67"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABR4OP",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABR4OP"
+ },
+ {
+ "bytes": "8464a919743fa5e2e890474475b8c0b2ce1e6cf002e581a05bfe10b42cf820a8"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTUG7",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTUG7"
+ },
+ {
+ "bytes": "dcb2caafc7d774174220879b3d59ec07ca6ab21604478feb5758117a86eaee73"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVM7P",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVM7P"
+ },
+ {
+ "bytes": "3fcc368bddbe517fa6d27a209b107c65fa66bf97546111de0a69e78b295120e4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXEX7",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXEX7"
+ },
+ {
+ "bytes": "94e3abc0e4fa4cb962378af9c90e98dcda670a28f9dd9a34cdf295a73b90a98f"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY5MP",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY5MP"
+ },
+ {
+ "bytes": "e8687efd6b3eccdb932d9541f11e7b95b49d5edaf512327c31bd08c29134b3af"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2VE7",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2VE7"
+ },
+ {
+ "bytes": "cdb11daae281bcfea53f4c75a099e2ad9b54c1e44d8d1b09f482124301797b01"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4N5P",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4N5P"
+ },
+ {
+ "bytes": "073c04950490e8c8775a279cf0f0f5686eed5e10289e8629c56525a57b7831a0"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6FV7",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6FV7"
+ },
+ {
+ "bytes": "733eaf2d959b24778e87451d264c4a623cad323613a8a5ee806b2b750f135f92"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBKTY",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBKTY"
+ },
+ {
+ "bytes": "e10b29522d304ce45261acded2f1161de55b2e8580295ed47660539da44f2f40"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDC3I",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDC3I"
+ },
+ {
+ "bytes": "e4d5386b35eb96ec9aab3f4049d03541266b46314825b54d7d146b6e88f86dd8"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF2CY",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF2CY"
+ },
+ {
+ "bytes": "e320e2e9bf8c4d2fc25906506b2f931bdef9f75d3951f1a18ff41df143785c6b"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHSKI",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHSKI"
+ },
+ {
+ "bytes": "b67548f79defcbc84bc69bd1b0d8e19fe200bcd855254d0370a0c5acf3bdff88"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACILRY",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACILRY"
+ },
+ {
+ "bytes": "d9807a30d8a18b41f4b8cbd40532f0447fbe53b1638e8baf78d326bb1549861f"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKDZI",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKDZI"
+ },
+ {
+ "bytes": "8587fbb57ace6e1baa62b8b8156e1d819bd891dc80b2fadef9f76670630c4db1"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM3AY",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM3AY"
+ },
+ {
+ "bytes": "fdc6cb3686ca1d291148b07f1d66b3f5ff453566615af4bf4b59bdeaa16de54d"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOTII",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOTII"
+ },
+ {
+ "bytes": "e6fda7f6e0210bf207b008ca3b9af62455b6f674670358362165f7a6b82bba3a"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRIXZ",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRIXZ"
+ },
+ {
+ "bytes": "658a7ec5ba5109297314d982549f1d6aaa0fc56515894130c7799e2948486f25"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTA7J",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTA7J"
+ },
+ {
+ "bytes": "69a8c4558375d53ebc90093b55a36a82069204e94b5dc1bed13a2c5817e03ab4"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVYGZ",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVYGZ"
+ },
+ {
+ "bytes": "f982ee8e4c96d89ec94dce87a20fd3efe5209f1f10688cccdc1189f737889ba7"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXQOJ",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXQOJ"
+ },
+ {
+ "bytes": "1cf6f6bd1d7dbe08e76521317cb189f3066e4573f3875bbe215a4e5b7918c253"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYJVZ",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYJVZ"
+ },
+ {
+ "bytes": "c43bb2c1a703c4de1dc8238a83ab1a786270ebdd19d9417be8a52f1d171017cd"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2B5J",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2B5J"
+ },
+ {
+ "bytes": "a583a389e3de2a6dde5654df58bc8984a966e041bfedac81e4d63d0e2e259ac3"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4ZEZ",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4ZEZ"
+ },
+ {
+ "bytes": "f98fd5a99b686f36a5feeca330198cfb1c2981d3ee7df161e47a5cbd19628d6d"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6RMJ",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6RMJ"
+ },
+ {
+ "bytes": "32473ceec75f67fd6afc3ef5467d07c3a0f3edb2fc5aff46407c9c8b79fe1a3b"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBG3K",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBG3K"
+ },
+ {
+ "bytes": "86cb0496190786ade2f2d7917d341b5e6a1e8f11e024eeb2b446432d6acec2e0"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDOT2",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDOT2"
+ },
+ {
+ "bytes": "1c7a1a02b87f44e7a150d601019ed4694fdc792fb4a5e17755b2d0aa1e751551"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFWKK",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFWKK"
+ },
+ {
+ "bytes": "be2efd1b3deb3ba5799eead5a813f5d48da66db5974274ac6bbd0e19914fa29b"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH6C2",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH6C2"
+ },
+ {
+ "bytes": "a75b65678fa9904f75198a0864066a43eaa59aa5c64a158665cf488237e56891"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIHZK",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIHZK"
+ },
+ {
+ "bytes": "3ac067ffbb6465b7834a9e7091f0cd507b5a208ceb82e35af9071a275a2c51bb"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKPR2",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKPR2"
+ },
+ {
+ "bytes": "b4426800cfaa8216c33c3da966f61c6ab736eb3bf758374556f68395e22a653e"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMXIK",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMXIK"
+ },
+ {
+ "bytes": "13f36a23f982f1088a83b9258774292e0bfec9f96c000718170bce437b93c870"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADO7A2",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADO7A2"
+ },
+ {
+ "bytes": "95cd465b8e3ab0f7f7c2a99d53d8da6a9aba6a3a62c691f4ccf8a3a953037b14"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRE7L",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRE7L"
+ },
+ {
+ "bytes": "515215a5ac896c6dedca90b47ce186cc252d91b0fbd86f6169b2de4306f474de"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTMX3",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTMX3"
+ },
+ {
+ "bytes": "013d17a407a4b069b5dd98cb012f35de9517998c2e447427db17138d11373285"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVUOL",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVUOL"
+ },
+ {
+ "bytes": "bcb66ca6d638558ec49be3a9db0b59936cd1b30d4a88cfa782ca27a123fab9bd"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX4G3",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX4G3"
+ },
+ {
+ "bytes": "920380d9b78a46d1e9235a32815dfd1020822474cd52a726ca6065da091fa415"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYF5L",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYF5L"
+ },
+ {
+ "bytes": "ed112bde9063cf0702f5d6c1be966626d977ee52e3635dc5653e00f641464dba"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2NV3",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2NV3"
+ },
+ {
+ "bytes": "9c613f1ab878d4e9c6bd96703c258223137253f56fefa52a66a1ac223293a2b9"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4VML",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4VML"
+ },
+ {
+ "bytes": "4cad1b6df974efbf8693b22bf9afad3708e27ffb2fc3e6acb76df57aede0880d"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD65E3",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD65E3"
+ },
+ {
+ "bytes": "b7fb8a66aab9fd1385c8523d0987dc7b9df717ee05cd35a429d60b258a3d2b99"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEADAU",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEADAU"
+ },
+ {
+ "bytes": "0a8805bb17349eda27fc97dfac2d13b8ee14ec57e9252f8a54163ec390faf6c2"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECLIE",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECLIE"
+ },
+ {
+ "bytes": "5b97580a27908f13082347fc7a80fc2d835f8ef5674c5356df0761c6444e0a5a"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEETRU",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEETRU"
+ },
+ {
+ "bytes": "0c43c901ef8f3d283dba101d5e39a9d490e672933ad18eff04bf4c3ad6dd1c71"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG3ZE",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG3ZE"
+ },
+ {
+ "bytes": "ae05b9bc3c89d6704de8cc7d4654bfe7cae08770c5e1fe1a3f570d4b5c204007"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJCCU",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJCCU"
+ },
+ {
+ "bytes": "aea181a5578715c532d1c31d49a21482d1bb5f4224332980dccee8d9156db2fe"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAELKKE",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAELKKE"
+ },
+ {
+ "bytes": "60edbc0083cfb12d259aac1aa46dbbb859724dc709bb9ce82dbdce7962057b46"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENSTU",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENSTU"
+ },
+ {
+ "bytes": "0dd067a50b621ee8bcb5bba8496f1c6855aa46227053825a8188ce11cea9cdcf"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEP23E",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEP23E"
+ },
+ {
+ "bytes": "8f4b78e9228cf07ed635ce16817ebc31c26ff1df53e86fc19464d40291121299"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQBEV",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQBEV"
+ },
+ {
+ "bytes": "aebe7bad0c96b15e55bd6b1448915941a1743f16c4b2153af443bdf9e720b16f"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESJMF",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESJMF"
+ },
+ {
+ "bytes": "095494eb76a5c3849e13a3c51a3cbfb5b89e55869e3fc4e116e1625632da6484"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEURVV",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEURVV"
+ },
+ {
+ "bytes": "e849332674cde358f7c00ad30e9556dbdb6c26c328ed1eb58ef71e9ac6f1719e"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWZ5F",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWZ5F"
+ },
+ {
+ "bytes": "0a3ed03a46b0294158265897631ad386596b0e8db161f0e1e712219ff83b74c3"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZAGV",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZAGV"
+ },
+ {
+ "bytes": "8f55cc6922f752b08e304f20cada5c5419424e1857f2a84ef10496c25f4e8fc9"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3IOF",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3IOF"
+ },
+ {
+ "bytes": "647e199bd43e288fde7d89e208fae7ccf0d53d108928be33c9a7516570dd685c"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5QXV",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5QXV"
+ },
+ {
+ "bytes": "62a2fca69f633e7b34807b1d8dea01fb7acfe736e82d2d82dbb1d6b78ea88878"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7Y7F",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7Y7F"
+ },
+ {
+ "bytes": "c137952c86cb3c940a51b7acd6a87da489f6d53c2d2e650455a0ddca0675845b"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAPIG",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAPIG"
+ },
+ {
+ "bytes": "ef3cf27108bb02f1b30c7266c2a541f2d12f59098dae079d5a048e5b542742f1"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCHAW",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCHAW"
+ },
+ {
+ "bytes": "f1c02c375df764b0f5f508edf15879deccf231ef0b6005e8acfcf3ced96f72b6"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE7ZG",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE7ZG"
+ },
+ {
+ "bytes": "3c2f44f12fdb9a0fa13ceda3c4d2172b90f8b0ff3b0eab2b4f048dc8a5851ff9"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGXRW",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGXRW"
+ },
+ {
+ "bytes": "882c4645d51e29f9052c6c56ac9d91ef9354d894d0e2fae55b0a5dc0f58e1bda"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJOKG",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJOKG"
+ },
+ {
+ "bytes": "af9b2b6b291a4cae504a7382e7df7504303a154b8ffe80d16cfbeb9e6ffc7152"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLGCW",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLGCW"
+ },
+ {
+ "bytes": "90fa1e1746d780e45e0fe3db33909c7e1b6fd24cd215c69a78b23fdb96f855cf"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFN63G",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFN63G"
+ },
+ {
+ "bytes": "5f0f2c7af372196ead71aa8c9c1a30a1b30bfeefd8d86d957e480c495dfe1056"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPWTW",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPWTW"
+ },
+ {
+ "bytes": "2df051d949c99f90a61a1c44f88ba1d64c3c3f4910cd341cdf05e946b958663c"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQNMH",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQNMH"
+ },
+ {
+ "bytes": "72ccc97eaee24d19bd14028cd7b91aa2b703a3d78ae056625814b1318bda6931"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSFEX",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSFEX"
+ },
+ {
+ "bytes": "ac8c84a00343c63a406e05d52deeb8c221f080dc0c6a5bfea8794c4ca286b34e"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFU55H",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFU55H"
+ },
+ {
+ "bytes": "1e8a19f3557ab9afb0680f58bb396e11a3027456b06b89ebc89461db7bbe3872"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWVVX",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWVVX"
+ },
+ {
+ "bytes": "0845fcd40b05cec38a285e9bafe442fe390fa16fb4fc77edc6b4374baa7a29fb"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZMOH",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZMOH"
+ },
+ {
+ "bytes": "d0def13ed45ef9171fa4ec2276ca3c2edf6d61128cc6164960da7b5fb529135d"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF3EGX",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF3EGX"
+ },
+ {
+ "bytes": "0db3773ce8076b48946fc65d7cd2c73698034527d1f8f28f38f8206986adc962"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF547H",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF547H"
+ },
+ {
+ "bytes": "49a7dc62c03a0519851e4dc60502b8c17ef44831bc7cc9207eaa971a6283bf02"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7UXX",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7UXX"
+ },
+ {
+ "bytes": "f2406c08d5f4639e001003d437a163a69937908f3e0a48381c5de5dbe9ee9be5"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGA3RQ",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGA3RQ"
+ },
+ {
+ "bytes": "c444fa94df7f0138eb3713a45d13b5c7b61db73a26cc1a699c88af74cd539f3c"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCTZA",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCTZA"
+ },
+ {
+ "bytes": "095fe8a9cbdb9cf6908aba203507504f1f80981bff47838c9cbd8d8f665d1c84"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGELAQ",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGELAQ"
+ },
+ {
+ "bytes": "91bac5fc024847934ca9744929779721a768a0e7531d6c84fbc743b022e4ff94"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGDIA",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGDIA"
+ },
+ {
+ "bytes": "b6f7e1759c1f4ec8d65d42c7b08ddb2b4f48d3042a99795cf40ae46a817029d9"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJ2TQ",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJ2TQ"
+ },
+ {
+ "bytes": "fc3348ced4207d351c9b247796108a30ad55d63d7c05d3b13bfcf662ef917ef0"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGLS3A",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGLS3A"
+ },
+ {
+ "bytes": "de815ddd0c7437bd3c704645af77daa0452ca74cc2995b5a6fe957d7463cddfa"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGNKCQ",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGNKCQ"
+ },
+ {
+ "bytes": "5d069bc16a19051b5c0e595e6219628b6dffa329f5a993a318b798cdf928a019"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPCKA",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPCKA"
+ },
+ {
+ "bytes": "f0bf2a9210e5f611682a2680e16e093b77edae0b7c1fdaa48b1267bb2da3b9b8"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 50
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 0,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "full"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "full"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 100
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "full"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "6c1c762a4ade264c018713c4f331ab6038ba935465d29508d24ee477dc0efb95"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "fec83d8c6c52a774eee44eb053fc0843acab42b3ca8c557de658419a56fa9fe6"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "cb94ea667de7a855a86be089b8e584bdf7d45b4fbe10f072f164f188b94b8ae1"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "256ea7daf3bbc94163747f3bb50931307a25cc687572ab72a2beb45fba24b3a7"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "112d6a9c5de6fc13b8f54a260545a815e0da6229ce506551bd932e2d1c55b211"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "8446ed83f416cda9e46ce49493daf9b025f0cd9851cca852dfa7f8a6f2ea3f94"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "bd9a680c6ac088078f6524d96773b93d3494e35e397580280e65d1fb4601192e"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "840a9ed78742c522621be4264b660cc49cec7defe61becf0f3199c6e2b6640b4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "3c47fe0d651432becbb7dfa11eab53b3ab5f9306286f469ccc3ee7c65ce15bb4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "048198a009484e1b5b031c03a934ddf4f062e0f6b114f06aa68981e2db96e190"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "05e7af83a2ff90520f2f46b6b30770e32f8bb878562cba5bbb5ecf563065de19"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "2c50609a32e88f37a5d6b2f8e4bf63590ba5a53f41c6417ce16bccafd9f1eeb6"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "ab713a8d9961f1862ab402a4ed761eb5d26c550145fe16ef7641f99d83815965"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "e8a7f108a3f5c3643db9a04a9897ce2a406732e42458b89b382ac066fff6c595"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "a4b31941b80082f1941c90826ff2670f051327a8bc34c378aa51405de44494ef"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "688d8bbae3961278d04c9d74916e0dd65beebd4f4457154bb2064637611cf67a"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "2f91aee6cab6a1fe788c37b417d206e1cd8349721aed63f692fd57c0aaf08820"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKXA6"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKXA6"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKXA6"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "4f2c8ac75fa30588344d539fb9a74f8812e46e19bc0439b201b5e1abb7bc3f91"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMPZO"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMPZO"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMPZO"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "906abc397a5fae590f518aec4770d35e549519053700a6a22417e379e844e800"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOHR6"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOHR6"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOHR6"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "a532677385b084808d7408c04ed1f6bdb73cffe98d344c4a992d36bdc3768b67"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABR4OP"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABR4OP"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABR4OP"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "8464a919743fa5e2e890474475b8c0b2ce1e6cf002e581a05bfe10b42cf820a8"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTUG7"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTUG7"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTUG7"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "dcb2caafc7d774174220879b3d59ec07ca6ab21604478feb5758117a86eaee73"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVM7P"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVM7P"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVM7P"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "3fcc368bddbe517fa6d27a209b107c65fa66bf97546111de0a69e78b295120e4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXEX7"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXEX7"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXEX7"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "94e3abc0e4fa4cb962378af9c90e98dcda670a28f9dd9a34cdf295a73b90a98f"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY5MP"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY5MP"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY5MP"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "e8687efd6b3eccdb932d9541f11e7b95b49d5edaf512327c31bd08c29134b3af"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2VE7"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2VE7"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2VE7"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "cdb11daae281bcfea53f4c75a099e2ad9b54c1e44d8d1b09f482124301797b01"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4N5P"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4N5P"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4N5P"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "073c04950490e8c8775a279cf0f0f5686eed5e10289e8629c56525a57b7831a0"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6FV7"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6FV7"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6FV7"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "733eaf2d959b24778e87451d264c4a623cad323613a8a5ee806b2b750f135f92"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBKTY"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBKTY"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBKTY"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "e10b29522d304ce45261acded2f1161de55b2e8580295ed47660539da44f2f40"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDC3I"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDC3I"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDC3I"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "e4d5386b35eb96ec9aab3f4049d03541266b46314825b54d7d146b6e88f86dd8"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF2CY"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF2CY"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF2CY"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "e320e2e9bf8c4d2fc25906506b2f931bdef9f75d3951f1a18ff41df143785c6b"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHSKI"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHSKI"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHSKI"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "b67548f79defcbc84bc69bd1b0d8e19fe200bcd855254d0370a0c5acf3bdff88"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACILRY"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACILRY"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACILRY"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "d9807a30d8a18b41f4b8cbd40532f0447fbe53b1638e8baf78d326bb1549861f"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKDZI"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKDZI"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKDZI"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "8587fbb57ace6e1baa62b8b8156e1d819bd891dc80b2fadef9f76670630c4db1"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM3AY"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM3AY"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM3AY"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "fdc6cb3686ca1d291148b07f1d66b3f5ff453566615af4bf4b59bdeaa16de54d"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOTII"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOTII"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOTII"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "e6fda7f6e0210bf207b008ca3b9af62455b6f674670358362165f7a6b82bba3a"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRIXZ"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRIXZ"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRIXZ"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "658a7ec5ba5109297314d982549f1d6aaa0fc56515894130c7799e2948486f25"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTA7J"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTA7J"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTA7J"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "69a8c4558375d53ebc90093b55a36a82069204e94b5dc1bed13a2c5817e03ab4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVYGZ"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVYGZ"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVYGZ"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "f982ee8e4c96d89ec94dce87a20fd3efe5209f1f10688cccdc1189f737889ba7"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXQOJ"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXQOJ"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXQOJ"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "1cf6f6bd1d7dbe08e76521317cb189f3066e4573f3875bbe215a4e5b7918c253"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYJVZ"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYJVZ"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYJVZ"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "c43bb2c1a703c4de1dc8238a83ab1a786270ebdd19d9417be8a52f1d171017cd"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2B5J"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2B5J"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2B5J"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "a583a389e3de2a6dde5654df58bc8984a966e041bfedac81e4d63d0e2e259ac3"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4ZEZ"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4ZEZ"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4ZEZ"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "f98fd5a99b686f36a5feeca330198cfb1c2981d3ee7df161e47a5cbd19628d6d"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6RMJ"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6RMJ"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6RMJ"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "32473ceec75f67fd6afc3ef5467d07c3a0f3edb2fc5aff46407c9c8b79fe1a3b"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBG3K"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBG3K"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBG3K"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "86cb0496190786ade2f2d7917d341b5e6a1e8f11e024eeb2b446432d6acec2e0"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDOT2"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDOT2"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDOT2"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "1c7a1a02b87f44e7a150d601019ed4694fdc792fb4a5e17755b2d0aa1e751551"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFWKK"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFWKK"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFWKK"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "be2efd1b3deb3ba5799eead5a813f5d48da66db5974274ac6bbd0e19914fa29b"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH6C2"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH6C2"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH6C2"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "a75b65678fa9904f75198a0864066a43eaa59aa5c64a158665cf488237e56891"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIHZK"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIHZK"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIHZK"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "3ac067ffbb6465b7834a9e7091f0cd507b5a208ceb82e35af9071a275a2c51bb"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKPR2"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKPR2"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKPR2"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "b4426800cfaa8216c33c3da966f61c6ab736eb3bf758374556f68395e22a653e"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMXIK"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMXIK"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMXIK"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "13f36a23f982f1088a83b9258774292e0bfec9f96c000718170bce437b93c870"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADO7A2"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADO7A2"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADO7A2"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "95cd465b8e3ab0f7f7c2a99d53d8da6a9aba6a3a62c691f4ccf8a3a953037b14"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRE7L"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRE7L"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRE7L"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "515215a5ac896c6dedca90b47ce186cc252d91b0fbd86f6169b2de4306f474de"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTMX3"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTMX3"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTMX3"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "013d17a407a4b069b5dd98cb012f35de9517998c2e447427db17138d11373285"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVUOL"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVUOL"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVUOL"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "bcb66ca6d638558ec49be3a9db0b59936cd1b30d4a88cfa782ca27a123fab9bd"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX4G3"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX4G3"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX4G3"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "920380d9b78a46d1e9235a32815dfd1020822474cd52a726ca6065da091fa415"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYF5L"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYF5L"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYF5L"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "ed112bde9063cf0702f5d6c1be966626d977ee52e3635dc5653e00f641464dba"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2NV3"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2NV3"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2NV3"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "9c613f1ab878d4e9c6bd96703c258223137253f56fefa52a66a1ac223293a2b9"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4VML"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4VML"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4VML"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "4cad1b6df974efbf8693b22bf9afad3708e27ffb2fc3e6acb76df57aede0880d"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD65E3"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD65E3"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD65E3"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "b7fb8a66aab9fd1385c8523d0987dc7b9df717ee05cd35a429d60b258a3d2b99"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEADAU"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEADAU"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEADAU"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "0a8805bb17349eda27fc97dfac2d13b8ee14ec57e9252f8a54163ec390faf6c2"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECLIE"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECLIE"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECLIE"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "5b97580a27908f13082347fc7a80fc2d835f8ef5674c5356df0761c6444e0a5a"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEETRU"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEETRU"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEETRU"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "0c43c901ef8f3d283dba101d5e39a9d490e672933ad18eff04bf4c3ad6dd1c71"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG3ZE"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG3ZE"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG3ZE"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "ae05b9bc3c89d6704de8cc7d4654bfe7cae08770c5e1fe1a3f570d4b5c204007"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJCCU"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJCCU"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJCCU"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "aea181a5578715c532d1c31d49a21482d1bb5f4224332980dccee8d9156db2fe"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAELKKE"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAELKKE"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAELKKE"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "60edbc0083cfb12d259aac1aa46dbbb859724dc709bb9ce82dbdce7962057b46"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENSTU"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENSTU"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENSTU"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "0dd067a50b621ee8bcb5bba8496f1c6855aa46227053825a8188ce11cea9cdcf"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEP23E"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEP23E"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEP23E"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "8f4b78e9228cf07ed635ce16817ebc31c26ff1df53e86fc19464d40291121299"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQBEV"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQBEV"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQBEV"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "aebe7bad0c96b15e55bd6b1448915941a1743f16c4b2153af443bdf9e720b16f"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESJMF"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESJMF"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESJMF"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "095494eb76a5c3849e13a3c51a3cbfb5b89e55869e3fc4e116e1625632da6484"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEURVV"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEURVV"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEURVV"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "e849332674cde358f7c00ad30e9556dbdb6c26c328ed1eb58ef71e9ac6f1719e"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWZ5F"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWZ5F"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWZ5F"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "0a3ed03a46b0294158265897631ad386596b0e8db161f0e1e712219ff83b74c3"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZAGV"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZAGV"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZAGV"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "8f55cc6922f752b08e304f20cada5c5419424e1857f2a84ef10496c25f4e8fc9"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3IOF"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3IOF"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3IOF"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "647e199bd43e288fde7d89e208fae7ccf0d53d108928be33c9a7516570dd685c"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5QXV"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5QXV"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5QXV"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "62a2fca69f633e7b34807b1d8dea01fb7acfe736e82d2d82dbb1d6b78ea88878"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7Y7F"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7Y7F"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7Y7F"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "c137952c86cb3c940a51b7acd6a87da489f6d53c2d2e650455a0ddca0675845b"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAPIG"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAPIG"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAPIG"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "ef3cf27108bb02f1b30c7266c2a541f2d12f59098dae079d5a048e5b542742f1"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCHAW"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCHAW"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCHAW"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "f1c02c375df764b0f5f508edf15879deccf231ef0b6005e8acfcf3ced96f72b6"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE7ZG"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE7ZG"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE7ZG"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "3c2f44f12fdb9a0fa13ceda3c4d2172b90f8b0ff3b0eab2b4f048dc8a5851ff9"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGXRW"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGXRW"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGXRW"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "882c4645d51e29f9052c6c56ac9d91ef9354d894d0e2fae55b0a5dc0f58e1bda"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJOKG"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJOKG"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJOKG"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "af9b2b6b291a4cae504a7382e7df7504303a154b8ffe80d16cfbeb9e6ffc7152"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLGCW"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLGCW"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLGCW"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "90fa1e1746d780e45e0fe3db33909c7e1b6fd24cd215c69a78b23fdb96f855cf"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFN63G"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFN63G"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFN63G"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "5f0f2c7af372196ead71aa8c9c1a30a1b30bfeefd8d86d957e480c495dfe1056"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPWTW"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPWTW"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPWTW"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "2df051d949c99f90a61a1c44f88ba1d64c3c3f4910cd341cdf05e946b958663c"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQNMH"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQNMH"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQNMH"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "72ccc97eaee24d19bd14028cd7b91aa2b703a3d78ae056625814b1318bda6931"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSFEX"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSFEX"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSFEX"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "ac8c84a00343c63a406e05d52deeb8c221f080dc0c6a5bfea8794c4ca286b34e"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFU55H"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFU55H"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFU55H"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "1e8a19f3557ab9afb0680f58bb396e11a3027456b06b89ebc89461db7bbe3872"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWVVX"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWVVX"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWVVX"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "0845fcd40b05cec38a285e9bafe442fe390fa16fb4fc77edc6b4374baa7a29fb"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZMOH"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZMOH"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZMOH"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "d0def13ed45ef9171fa4ec2276ca3c2edf6d61128cc6164960da7b5fb529135d"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF3EGX"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF3EGX"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF3EGX"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "0db3773ce8076b48946fc65d7cd2c73698034527d1f8f28f38f8206986adc962"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF547H"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF547H"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF547H"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "49a7dc62c03a0519851e4dc60502b8c17ef44831bc7cc9207eaa971a6283bf02"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7UXX"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7UXX"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7UXX"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "f2406c08d5f4639e001003d437a163a69937908f3e0a48381c5de5dbe9ee9be5"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGA3RQ"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGA3RQ"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGA3RQ"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "c444fa94df7f0138eb3713a45d13b5c7b61db73a26cc1a699c88af74cd539f3c"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCTZA"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCTZA"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCTZA"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "095fe8a9cbdb9cf6908aba203507504f1f80981bff47838c9cbd8d8f665d1c84"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGELAQ"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGELAQ"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGELAQ"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "91bac5fc024847934ca9744929779721a768a0e7531d6c84fbc743b022e4ff94"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGDIA"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGDIA"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGDIA"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "b6f7e1759c1f4ec8d65d42c7b08ddb2b4f48d3042a99795cf40ae46a817029d9"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJ2TQ"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJ2TQ"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJ2TQ"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "fc3348ced4207d351c9b247796108a30ad55d63d7c05d3b13bfcf662ef917ef0"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGLS3A"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGLS3A"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGLS3A"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "de815ddd0c7437bd3c704645af77daa0452ca74cc2995b5a6fe957d7463cddfa"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGNKCQ"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGNKCQ"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGNKCQ"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "5d069bc16a19051b5c0e595e6219628b6dffa329f5a993a318b798cdf928a019"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPCKA"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "full"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPCKA"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPCKA"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "f0bf2a9210e5f611682a2680e16e093b77edae0b7c1fdaa48b1267bb2da3b9b8"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 50
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "full"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "full"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKXA6"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMPZO"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOHR6"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABR4OP"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTUG7"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVM7P"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXEX7"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY5MP"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2VE7"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4N5P"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6FV7"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBKTY"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDC3I"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF2CY"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHSKI"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACILRY"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKDZI"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM3AY"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOTII"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRIXZ"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTA7J"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVYGZ"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXQOJ"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYJVZ"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2B5J"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4ZEZ"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6RMJ"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBG3K"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDOT2"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFWKK"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH6C2"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIHZK"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKPR2"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMXIK"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADO7A2"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRE7L"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTMX3"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVUOL"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX4G3"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYF5L"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2NV3"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4VML"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD65E3"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEADAU"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECLIE"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEETRU"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG3ZE"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJCCU"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAELKKE"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENSTU"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEP23E"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQBEV"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESJMF"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEURVV"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWZ5F"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZAGV"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3IOF"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5QXV"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7Y7F"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAPIG"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCHAW"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE7ZG"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGXRW"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJOKG"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLGCW"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFN63G"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPWTW"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQNMH"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSFEX"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFU55H"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWVVX"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZMOH"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF3EGX"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF547H"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7UXX"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGA3RQ"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCTZA"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGELAQ"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGDIA"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJ2TQ"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGLS3A"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGNKCQ"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPCKA"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1033654523790656264
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2032731177588607455
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4270020994084947596
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8370022561469687789
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8370022561469687789
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6277191135259896685
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6277191135259896685
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5806905060045992000
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5806905060045992000
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1194852393571756375
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1194852393571756375
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 115220454072064130
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 115220454072064130
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3126073502131104533
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3126073502131104533
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1301173170172112462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1301173170172112462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6517132746326325848
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6517132746326325848
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 7270604957039011794
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 7270604957039011794
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2781962168096793370
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2781962168096793370
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2307661404550649928
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2307661404550649928
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6391496069076573377
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6391496069076573377
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKXA6",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4571470874178140630
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKXA6",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4571470874178140630
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMPZO",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2578412842719982537
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMPZO",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2578412842719982537
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOHR6",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2140788761963629343
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOHR6",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2140788761963629343
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABR4OP",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1345255804540566779
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABR4OP",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1345255804540566779
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTUG7",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5012940724606903311
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTUG7",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5012940724606903311
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVM7P",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8077058277077262192
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVM7P",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8077058277077262192
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXEX7",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3736142932239307322
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXEX7",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3736142932239307322
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY5MP",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8375915698557174338
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY5MP",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8375915698557174338
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2VE7",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2891388370666955040
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2VE7",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2891388370666955040
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4N5P",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1690253666352074432
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4N5P",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1690253666352074432
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6FV7",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 544730322382084885
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6FV7",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 544730322382084885
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBKTY",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5994256439390011320
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBKTY",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5994256439390011320
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDC3I",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4914054227674050081
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDC3I",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4914054227674050081
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF2CY",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1506441561184340186
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF2CY",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1506441561184340186
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHSKI",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2254425974100219774
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHSKI",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2254425974100219774
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACILRY",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6369051681840606601
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACILRY",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6369051681840606601
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKDZI",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2623024502929126324
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKDZI",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2623024502929126324
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM3AY",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1501277168746644712
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM3AY",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1501277168746644712
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOTII",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 649072984189975589
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOTII",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 649072984189975589
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRIXZ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3507645618223554847
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRIXZ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3507645618223554847
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTA7J",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1967922937664261543
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTA7J",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1967922937664261543
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVYGZ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 9219847003023114248
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVYGZ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 9219847003023114248
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXQOJ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8840537117088365198
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXQOJ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8840537117088365198
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYJVZ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8799288422285703394
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYJVZ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8799288422285703394
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2B5J",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 7564072809757355283
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2B5J",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 7564072809757355283
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4ZEZ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3791811173315715839
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4ZEZ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3791811173315715839
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6RMJ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1768924605727919950
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6RMJ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1768924605727919950
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBG3K",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4822409645871993625
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBG3K",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4822409645871993625
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDOT2",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6054449652355741849
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDOT2",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6054449652355741849
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFWKK",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 7935298921545310989
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFWKK",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 7935298921545310989
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH6C2",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 395965415359800683
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH6C2",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 395965415359800683
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIHZK",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5219976416919672547
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIHZK",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5219976416919672547
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKPR2",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2260266285686479847
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKPR2",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2260266285686479847
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMXIK",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2917827370713594154
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMXIK",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2917827370713594154
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADO7A2",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8067048471933141837
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADO7A2",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8067048471933141837
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRE7L",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8582780626144801259
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRE7L",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8582780626144801259
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTMX3",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3972104438082304464
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTMX3",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3972104438082304464
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVUOL",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 875319255151014454
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVUOL",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 875319255151014454
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX4G3",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4211405827341991149
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX4G3",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4211405827341991149
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYF5L",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4900321175033996277
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYF5L",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4900321175033996277
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2NV3",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1161004259517476189
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2NV3",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1161004259517476189
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4VML",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5043854608229809201
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4VML",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5043854608229809201
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD65E3",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3195544978474815821
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD65E3",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3195544978474815821
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEADAU",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1614739035918781831
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEADAU",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1614739035918781831
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECLIE",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4271701834903804982
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECLIE",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4271701834903804982
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEETRU",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8157382300544000078
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEETRU",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8157382300544000078
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG3ZE",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 670404547506884812
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG3ZE",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 670404547506884812
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJCCU",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 7687354978218273323
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJCCU",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 7687354978218273323
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAELKKE",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6306546209684867670
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAELKKE",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6306546209684867670
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENSTU",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3945433670868351223
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENSTU",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3945433670868351223
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEP23E",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6875503646996515520
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEP23E",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6875503646996515520
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQBEV",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6233550795020492710
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQBEV",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6233550795020492710
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESJMF",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1273663306374918439
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESJMF",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1273663306374918439
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEURVV",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 300033532921919907
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEURVV",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 300033532921919907
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWZ5F",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 9203650180228785090
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWZ5F",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 9203650180228785090
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZAGV",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4601299207353310938
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZAGV",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4601299207353310938
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3IOF",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4677765900193036446
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3IOF",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4677765900193036446
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5QXV",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3888397324562915271
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5QXV",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3888397324562915271
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7Y7F",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5536345977105687142
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7Y7F",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5536345977105687142
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAPIG",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5670621023751100817
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAPIG",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5670621023751100817
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCHAW",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 7542511690552384870
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCHAW",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 7542511690552384870
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE7ZG",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6006104520346379553
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE7ZG",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6006104520346379553
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGXRW",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6208800374416201873
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGXRW",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6208800374416201873
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJOKG",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1060519300191340491
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJOKG",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1060519300191340491
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLGCW",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8941506213304483187
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLGCW",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8941506213304483187
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFN63G",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 124590656928745377
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFN63G",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 124590656928745377
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPWTW",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8079234564129527112
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPWTW",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8079234564129527112
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQNMH",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8754220119846337199
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQNMH",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 8754220119846337199
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSFEX",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3312139281147456071
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSFEX",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 3312139281147456071
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFU55H",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2526474023416127439
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFU55H",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2526474023416127439
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWVVX",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2841415490237507697
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWVVX",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2841415490237507697
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZMOH",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5148037999226383026
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZMOH",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5148037999226383026
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF3EGX",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2733761617737370087
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF3EGX",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 2733761617737370087
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF547H",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4553542552662768400
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF547H",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4553542552662768400
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7UXX",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1242168959743744263
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7UXX",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1242168959743744263
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGA3RQ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 481950710878307615
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGA3RQ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 481950710878307615
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCTZA",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 767083961780241525
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCTZA",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 767083961780241525
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGELAQ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6310153727739411520
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGELAQ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 6310153727739411520
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGDIA",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 76060705166808367
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGDIA",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 76060705166808367
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJ2TQ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 394263859078419540
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJ2TQ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 394263859078419540
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGLS3A",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1166692687884080826
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGLS3A",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 1166692687884080826
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGNKCQ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5322562311059672449
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGNKCQ",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5322562311059672449
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPCKA",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 9085653633391546739
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPCKA",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 9085653633391546739
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_rejects_zero_commitment.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_rejects_zero_commitment.1.json
new file mode 100644
index 00000000..49de854c
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_rejects_zero_commitment.1.json
@@ -0,0 +1,405 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "zero_c"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 0,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "zero_c"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "zero_c"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "zero_c"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "zero_c"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "zero_c"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": []
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_second_different_commitment_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_second_different_commitment_fails.1.json
new file mode 100644
index 00000000..b0b77173
--- /dev/null
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_second_different_commitment_fails.1.json
@@ -0,0 +1,620 @@
+{
+ "generators": {
+ "address": 4,
+ "nonce": 0
+ },
+ "auth": [
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "create_auction",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ },
+ {
+ "symbol": "recommit"
+ },
+ {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "submit_bid",
+ "args": [
+ {
+ "symbol": "recommit"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ },
+ {
+ "bytes": "c81d1206bec785b4b37fcdd21a7f9f19b39cce7289ee23c2148c63d25591f07e"
+ },
+ {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ },
+ {
+ "u32": 80
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
+ [],
+ []
+ ],
+ "ledger": {
+ "protocol_version": 22,
+ "sequence_number": 0,
+ "timestamp": 0,
+ "network_id": "0000000000000000000000000000000000000000000000000000000000000000",
+ "base_reserve": 0,
+ "min_persistent_entry_ttl": 4096,
+ "min_temp_entry_ttl": 16,
+ "max_entry_ttl": 6312000,
+ "ledger_entries": [
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "recommit"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Auction"
+ },
+ {
+ "symbol": "recommit"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
+ {
+ "key": {
+ "symbol": "config"
+ },
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
+ }
+ },
+ {
+ "key": {
+ "symbol": "created_at"
+ },
+ "val": {
+ "u64": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "creator"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ }
+ },
+ {
+ "key": {
+ "symbol": "deadline"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "escrow_created"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "phase"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
+ {
+ "key": {
+ "symbol": "task_id"
+ },
+ "val": {
+ "symbol": "recommit"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "recommit"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bid"
+ },
+ {
+ "symbol": "recommit"
+ },
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "map": [
+ {
+ "key": {
+ "symbol": "bidder"
+ },
+ "val": {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ },
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "commitment"
+ },
+ "val": {
+ "bytes": "c81d1206bec785b4b37fcdd21a7f9f19b39cce7289ee23c2148c63d25591f07e"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "price_stroops"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "refunded"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "reputation"
+ },
+ "val": {
+ "u32": 80
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed"
+ },
+ "val": {
+ "bool": false
+ }
+ },
+ {
+ "key": {
+ "symbol": "score"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "terms"
+ },
+ "val": {
+ "string": ""
+ }
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "recommit"
+ }
+ ]
+ },
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": {
+ "vec": [
+ {
+ "symbol": "Bidders"
+ },
+ {
+ "symbol": "recommit"
+ }
+ ]
+ },
+ "durability": "persistent",
+ "val": {
+ "vec": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ }
+ ]
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 535680
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "key": "ledger_key_contract_instance",
+ "durability": "persistent",
+ "val": {
+ "contract_instance": {
+ "executable": {
+ "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ "storage": null
+ }
+ }
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 5541220902715666415
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_code": {
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_code": {
+ "ext": "v0",
+ "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "code": ""
+ }
+ },
+ "ext": "v0"
+ },
+ 4095
+ ]
+ ]
+ ]
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_succeeds.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_succeeds.1.json
index 46be7e32..c457abc7 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_succeeds.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_succeeds.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "bid_test"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +94,10 @@
"symbol": "bid_test"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "aa8b10b8096e80d0ba8a53bb6568826dca9fd6393b0ceda38d2184dc4afee99a"
+ "bytes": "b0b20cc9c2f20fbe96dcbe4e6d715f225845a9a8bd1897436d7d975ca2b13417"
},
{
"i128": {
@@ -77,6 +116,7 @@
]
],
[],
+ [],
[]
],
"ledger": {
@@ -126,6 +166,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 1
+ }
+ },
{
"key": {
"symbol": "config"
@@ -151,6 +199,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -161,6 +220,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -178,7 +245,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -205,6 +272,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -235,7 +318,7 @@
"symbol": "bid_test"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -258,7 +341,7 @@
"symbol": "bid_test"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -270,7 +353,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -289,7 +372,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "aa8b10b8096e80d0ba8a53bb6568826dca9fd6393b0ceda38d2184dc4afee99a"
+ "bytes": "b0b20cc9c2f20fbe96dcbe4e6d715f225845a9a8bd1897436d7d975ca2b13417"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -393,7 +484,7 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
}
@@ -439,7 +530,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -454,7 +545,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -472,7 +563,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -487,7 +578,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_wrong_bond_fails.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_wrong_bond_fails.1.json
index aa2252eb..0c673e17 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_wrong_bond_fails.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/submit_bid_wrong_bond_fails.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 3,
+ "address": 4,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "bad_bond"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,6 +80,7 @@
}
]
],
+ [],
[]
],
"ledger": {
@@ -91,6 +130,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "config"
@@ -116,6 +163,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -126,6 +184,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -143,7 +209,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -170,6 +236,22 @@
"u32": 0
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 0
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -267,7 +349,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
@@ -282,7 +364,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
"nonce": 801925984706572462
diff --git a/smart-contracts/contracts/agent_bidding/test_snapshots/test/winner_selection_price_preference_on_tie.1.json b/smart-contracts/contracts/agent_bidding/test_snapshots/test/winner_selection_price_preference_on_tie.1.json
index 76519112..035a96bd 100644
--- a/smart-contracts/contracts/agent_bidding/test_snapshots/test/winner_selection_price_preference_on_tie.1.json
+++ b/smart-contracts/contracts/agent_bidding/test_snapshots/test/winner_selection_price_preference_on_tie.1.json
@@ -1,13 +1,13 @@
{
"generators": {
- "address": 4,
+ "address": 5,
"nonce": 0
},
"auth": [
[],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
{
"function": {
"contract_fn": {
@@ -15,25 +15,63 @@
"function_name": "create_auction",
"args": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
},
{
"symbol": "tie"
},
{
- "u64": 3600
- },
- {
- "i128": {
- "hi": 0,
- "lo": 1000000
- }
- },
- {
- "i128": {
- "hi": 0,
- "lo": 500000
- }
+ "map": [
+ {
+ "key": {
+ "symbol": "bond"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 500000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ },
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 0
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reserve_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 1000000
+ }
+ }
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
+ }
+ ]
}
]
}
@@ -42,9 +80,11 @@
}
]
],
+ [],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -55,10 +95,10 @@
"symbol": "tie"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "bytes": "ab0b093a460e16f59edee2d2b5672fd7482dd2eec251e4c21c58b688a7248120"
+ "bytes": "248cef091434191b69bbd0ae0b0eeb76b9090086bdf1d3a610ad3dc6f7541962"
},
{
"i128": {
@@ -78,7 +118,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
{
"function": {
"contract_fn": {
@@ -89,10 +129,10 @@
"symbol": "tie"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
},
{
- "bytes": "728e87f6540e95e485c72d0557edf9e6fae5109636e9084d5f1eecd93e6408ba"
+ "bytes": "9a8ce8667c011d6c079d94803e78d29bf36e184f83354f4c6c10536c0a9eafee"
},
{
"i128": {
@@ -110,9 +150,10 @@
}
]
],
+ [],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
{
"function": {
"contract_fn": {
@@ -123,7 +164,7 @@
"symbol": "tie"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
"i128": {
@@ -146,7 +187,7 @@
],
[
[
- "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
{
"function": {
"contract_fn": {
@@ -157,7 +198,7 @@
"symbol": "tie"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
},
{
"i128": {
@@ -178,7 +219,28 @@
}
]
],
- [],
+ [
+ [
+ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
+ {
+ "function": {
+ "contract_fn": {
+ "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM",
+ "function_name": "reveal_bids",
+ "args": [
+ {
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ },
+ {
+ "symbol": "tie"
+ }
+ ]
+ }
+ },
+ "sub_invocations": []
+ }
+ ]
+ ],
[]
],
"ledger": {
@@ -228,6 +290,14 @@
"durability": "persistent",
"val": {
"map": [
+ {
+ "key": {
+ "symbol": "bid_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
{
"key": {
"symbol": "config"
@@ -253,6 +323,17 @@
"u64": 3600
}
},
+ {
+ "key": {
+ "symbol": "max_price"
+ },
+ "val": {
+ "i128": {
+ "hi": 0,
+ "lo": 100000000000000000
+ }
+ }
+ },
{
"key": {
"symbol": "reserve_price"
@@ -263,6 +344,14 @@
"lo": 1000000
}
}
+ },
+ {
+ "key": {
+ "symbol": "reveal_duration_secs"
+ },
+ "val": {
+ "u64": 3600
+ }
}
]
}
@@ -280,7 +369,7 @@
"symbol": "creator"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
}
},
{
@@ -307,6 +396,22 @@
"u32": 1
}
},
+ {
+ "key": {
+ "symbol": "reveal_deadline"
+ },
+ "val": {
+ "u64": 7200
+ }
+ },
+ {
+ "key": {
+ "symbol": "revealed_count"
+ },
+ "val": {
+ "u32": 2
+ }
+ },
{
"key": {
"symbol": "task_id"
@@ -337,7 +442,7 @@
"symbol": "tie"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -360,7 +465,7 @@
"symbol": "tie"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
]
},
@@ -372,7 +477,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
},
{
@@ -391,7 +496,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "ab0b093a460e16f59edee2d2b5672fd7482dd2eec251e4c21c58b688a7248120"
+ "bytes": "248cef091434191b69bbd0ae0b0eeb76b9090086bdf1d3a610ad3dc6f7541962"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -470,7 +583,7 @@
"symbol": "tie"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -493,7 +606,7 @@
"symbol": "tie"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
},
@@ -505,7 +618,7 @@
"symbol": "bidder"
},
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
},
{
@@ -524,7 +637,15 @@
"symbol": "commitment"
},
"val": {
- "bytes": "728e87f6540e95e485c72d0557edf9e6fae5109636e9084d5f1eecd93e6408ba"
+ "bytes": "9a8ce8667c011d6c079d94803e78d29bf36e184f83354f4c6c10536c0a9eafee"
+ }
+ },
+ {
+ "key": {
+ "symbol": "forfeited"
+ },
+ "val": {
+ "bool": false
}
},
{
@@ -628,10 +749,10 @@
"val": {
"vec": [
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
},
{
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM"
}
]
}
@@ -678,7 +799,7 @@
},
"durability": "persistent",
"val": {
- "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M"
+ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4"
}
}
},
@@ -725,7 +846,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 4270020994084947596
}
},
"durability": "temporary"
@@ -740,7 +861,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4",
"key": {
"ledger_key_nonce": {
- "nonce": 801925984706572462
+ "nonce": 4270020994084947596
}
},
"durability": "temporary",
@@ -758,7 +879,7 @@
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
"key": {
"ledger_key_nonce": {
- "nonce": 4837995959683129791
+ "nonce": 801925984706572462
}
},
"durability": "temporary"
@@ -771,6 +892,39 @@
"contract_data": {
"ext": "v0",
"contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 801925984706572462
+ }
+ },
+ "durability": "temporary",
+ "val": "void"
+ }
+ },
+ "ext": "v0"
+ },
+ 6311999
+ ]
+ ],
+ [
+ {
+ "contract_data": {
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "key": {
+ "ledger_key_nonce": {
+ "nonce": 4837995959683129791
+ }
+ },
+ "durability": "temporary"
+ }
+ },
+ [
+ {
+ "last_modified_ledger_seq": 0,
+ "data": {
+ "contract_data": {
+ "ext": "v0",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 4837995959683129791
@@ -788,7 +942,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -803,7 +957,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
"key": {
"ledger_key_nonce": {
"nonce": 5541220902715666415
@@ -821,7 +975,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -836,7 +990,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 1033654523790656264
@@ -854,7 +1008,7 @@
[
{
"contract_data": {
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 2032731177588607455
@@ -869,7 +1023,7 @@
"data": {
"contract_data": {
"ext": "v0",
- "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4",
+ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM",
"key": {
"ledger_key_nonce": {
"nonce": 2032731177588607455
diff --git a/smart-contracts/contracts/agent_registry/src/events.rs b/smart-contracts/contracts/agent_registry/src/events.rs
index 3954088c..1bde2a11 100644
--- a/smart-contracts/contracts/agent_registry/src/events.rs
+++ b/smart-contracts/contracts/agent_registry/src/events.rs
@@ -32,7 +32,7 @@
//! | `unfreeze_agent` | `unfreeze` | `agent_id` |
//! | `update_pricing` | `price_upd` | `(agent_id, new_price)` |
-use soroban_sdk::{contracttype, Address, BytesN, Symbol, String};
+use soroban_sdk::{contracttype, Address, BytesN, String, Symbol};
// ─── Legacy structs (kept for ABI compatibility) ──────────────────────────────
diff --git a/smart-contracts/contracts/agent_registry/src/lib.rs b/smart-contracts/contracts/agent_registry/src/lib.rs
index d84a774a..357259d9 100644
--- a/smart-contracts/contracts/agent_registry/src/lib.rs
+++ b/smart-contracts/contracts/agent_registry/src/lib.rs
@@ -44,10 +44,10 @@ pub use upgrade::*;
pub use shared_exit_codes::CommonExitCode;
use events::{
- AdminChangedEvent, AgentDeregisteredEvent, AgentRegisteredEvent, ErrorReportedEvent,
- ErrorResolvedEvent, OperationApproved, OperationCancelled, OperationExecuted,
- OperationProposed, RegistryInitializedEvent, AnalyticsRecordedEvent,
- LeaderboardUpdatedEvent, SlaSetEvent, SlaViolationDetectedEvent, SlaBonusAwardedEvent,
+ AdminChangedEvent, AgentDeregisteredEvent, AgentRegisteredEvent, AnalyticsRecordedEvent,
+ ErrorReportedEvent, ErrorResolvedEvent, LeaderboardUpdatedEvent, OperationApproved,
+ OperationCancelled, OperationExecuted, OperationProposed, RegistryInitializedEvent,
+ SlaBonusAwardedEvent, SlaSetEvent, SlaViolationDetectedEvent,
};
pub use types::Attestation;
use soroban_sdk::{
@@ -1919,19 +1919,19 @@ impl AgentRegistryContract {
earnings: i128,
) -> Result<(), Error> {
let key = DataKey::AgentAnalytics(agent_id.clone());
- let mut analytics: AgentAnalytics = env
- .storage()
- .persistent()
- .get(&key)
- .unwrap_or(AgentAnalytics {
- agent_id: agent_id.clone(),
- total_tasks: 0,
- successful_tasks: 0,
- failed_tasks: 0,
- total_earnings: 0,
- avg_response_time: 0,
- last_updated: env.ledger().sequence() as u64,
- });
+ let mut analytics: AgentAnalytics =
+ env.storage()
+ .persistent()
+ .get(&key)
+ .unwrap_or(AgentAnalytics {
+ agent_id: agent_id.clone(),
+ total_tasks: 0,
+ successful_tasks: 0,
+ failed_tasks: 0,
+ total_earnings: 0,
+ avg_response_time: 0,
+ last_updated: env.ledger().sequence() as u64,
+ });
let old_total = analytics.total_tasks;
analytics.total_tasks += 1;
@@ -1982,15 +1982,18 @@ impl AgentRegistryContract {
/// Get aggregated analytics for an agent.
pub fn get_analytics(env: Env, agent_id: Symbol) -> AgentAnalytics {
let key = DataKey::AgentAnalytics(agent_id.clone());
- env.storage().persistent().get(&key).unwrap_or(AgentAnalytics {
- agent_id,
- total_tasks: 0,
- successful_tasks: 0,
- failed_tasks: 0,
- total_earnings: 0,
- avg_response_time: 0,
- last_updated: 0,
- })
+ env.storage()
+ .persistent()
+ .get(&key)
+ .unwrap_or(AgentAnalytics {
+ agent_id,
+ total_tasks: 0,
+ successful_tasks: 0,
+ failed_tasks: 0,
+ total_earnings: 0,
+ avg_response_time: 0,
+ last_updated: 0,
+ })
}
/// Get top N agents by a configurable metric.
@@ -2038,8 +2041,7 @@ impl AgentRegistryContract {
let mut j = i + 1;
let mut max_idx = i;
while j < entries.len() {
- if entries.get(j).unwrap().metric_value
- > entries.get(max_idx).unwrap().metric_value
+ if entries.get(j).unwrap().metric_value > entries.get(max_idx).unwrap().metric_value
{
max_idx = j;
}
diff --git a/smart-contracts/contracts/agent_registry/src/test.rs b/smart-contracts/contracts/agent_registry/src/test.rs
index cad1898b..bc7c29ff 100644
--- a/smart-contracts/contracts/agent_registry/src/test.rs
+++ b/smart-contracts/contracts/agent_registry/src/test.rs
@@ -1722,9 +1722,15 @@ fn get_leaderboard_by_total_tasks() {
let leaderboard = client.get_leaderboard(&metric, &3);
assert_eq!(leaderboard.len(), 3);
- assert_eq!(leaderboard.get(0).unwrap().agent_id, Symbol::new(&env, "a3"));
+ assert_eq!(
+ leaderboard.get(0).unwrap().agent_id,
+ Symbol::new(&env, "a3")
+ );
assert_eq!(leaderboard.get(0).unwrap().metric_value, 3);
- assert_eq!(leaderboard.get(1).unwrap().agent_id, Symbol::new(&env, "a1"));
+ assert_eq!(
+ leaderboard.get(1).unwrap().agent_id,
+ Symbol::new(&env, "a1")
+ );
assert_eq!(leaderboard.get(1).unwrap().metric_value, 2);
}
@@ -1752,12 +1758,7 @@ fn set_sla_success() {
let owner = Address::generate(&env);
client.register_agent(&make_record(&env, "sla_agent", "research", owner));
- client.set_sla(
- &Symbol::new(&env, "sla_agent"),
- &200,
- &95,
- &80,
- );
+ client.set_sla(&Symbol::new(&env, "sla_agent"), &200, &95, &80);
let sla = client.get_sla_status(&Symbol::new(&env, "sla_agent"));
assert!(sla.is_some());
@@ -1832,7 +1833,9 @@ fn check_sla_compliance_pass() {
);
assert!(compliant);
- let sla = client.get_sla_status(&Symbol::new(&env, "sla_agent")).unwrap();
+ let sla = client
+ .get_sla_status(&Symbol::new(&env, "sla_agent"))
+ .unwrap();
assert_eq!(sla.0.total_checks, 1);
assert_eq!(sla.0.violations, 0);
assert_eq!(sla.1, 100);
@@ -1854,7 +1857,9 @@ fn check_sla_compliance_violation() {
);
assert!(!compliant);
- let sla = client.get_sla_status(&Symbol::new(&env, "sla_agent")).unwrap();
+ let sla = client
+ .get_sla_status(&Symbol::new(&env, "sla_agent"))
+ .unwrap();
assert_eq!(sla.0.violations, 1);
assert_eq!(sla.1, 0); // 0% compliance with 1 check and 1 violation
}
@@ -1869,8 +1874,8 @@ fn check_sla_compliance_uptime_violation() {
let compliant = client.check_sla_compliance(
&Symbol::new(&env, "sla_agent"),
- &100, // ok
- &80, // uptime < 95 - violation!
+ &100, // ok
+ &80, // uptime < 95 - violation!
&90,
);
assert!(!compliant);
@@ -1923,15 +1928,12 @@ fn sla_bonus_awarded_after_consistent_compliance() {
// Record 10 compliant checks
for _ in 0..10 {
- client.check_sla_compliance(
- &Symbol::new(&env, "sla_agent"),
- &100,
- &99,
- &95,
- );
+ client.check_sla_compliance(&Symbol::new(&env, "sla_agent"), &100, &99, &95);
}
- let sla = client.get_sla_status(&Symbol::new(&env, "sla_agent")).unwrap();
+ let sla = client
+ .get_sla_status(&Symbol::new(&env, "sla_agent"))
+ .unwrap();
assert_eq!(sla.0.total_checks, 10);
assert_eq!(sla.0.violations, 0);
assert_eq!(sla.1, 100); // 100% compliance
@@ -2018,25 +2020,46 @@ fn test_get_agents_cursor_pagination() {
assert_eq!(page1.agents.len(), 3);
assert_eq!(page1.total_count, 7);
assert_eq!(page1.next_cursor, Some(3));
- assert_eq!(page1.agents.get(0).unwrap().id, Symbol::new(&env, "agent_1"));
- assert_eq!(page1.agents.get(1).unwrap().id, Symbol::new(&env, "agent_2"));
- assert_eq!(page1.agents.get(2).unwrap().id, Symbol::new(&env, "agent_3"));
+ assert_eq!(
+ page1.agents.get(0).unwrap().id,
+ Symbol::new(&env, "agent_1")
+ );
+ assert_eq!(
+ page1.agents.get(1).unwrap().id,
+ Symbol::new(&env, "agent_2")
+ );
+ assert_eq!(
+ page1.agents.get(2).unwrap().id,
+ Symbol::new(&env, "agent_3")
+ );
// Page 2: cursor 3, limit 3
let page2 = client.get_agents(&page1.next_cursor, &Some(3));
assert_eq!(page2.agents.len(), 3);
assert_eq!(page2.total_count, 7);
assert_eq!(page2.next_cursor, Some(6));
- assert_eq!(page2.agents.get(0).unwrap().id, Symbol::new(&env, "agent_4"));
- assert_eq!(page2.agents.get(1).unwrap().id, Symbol::new(&env, "agent_5"));
- assert_eq!(page2.agents.get(2).unwrap().id, Symbol::new(&env, "agent_6"));
+ assert_eq!(
+ page2.agents.get(0).unwrap().id,
+ Symbol::new(&env, "agent_4")
+ );
+ assert_eq!(
+ page2.agents.get(1).unwrap().id,
+ Symbol::new(&env, "agent_5")
+ );
+ assert_eq!(
+ page2.agents.get(2).unwrap().id,
+ Symbol::new(&env, "agent_6")
+ );
// Page 3: cursor 6, limit 3 -> last remaining agent
let page3 = client.get_agents(&page2.next_cursor, &Some(3));
assert_eq!(page3.agents.len(), 1);
assert_eq!(page3.total_count, 7);
assert_eq!(page3.next_cursor, None);
- assert_eq!(page3.agents.get(0).unwrap().id, Symbol::new(&env, "agent_7"));
+ assert_eq!(
+ page3.agents.get(0).unwrap().id,
+ Symbol::new(&env, "agent_7")
+ );
}
#[test]
diff --git a/smart-contracts/contracts/agent_registry/src/upgrade.rs b/smart-contracts/contracts/agent_registry/src/upgrade.rs
index a92a5e4f..1e2d0e84 100644
--- a/smart-contracts/contracts/agent_registry/src/upgrade.rs
+++ b/smart-contracts/contracts/agent_registry/src/upgrade.rs
@@ -5,16 +5,14 @@
//! Extends the agent_registry contract with upgrade functionality using the upgrade manager.
//! This module provides the implementation of the Upgradeable trait for the agent registry.
-use soroban_sdk::{
- contractimpl, symbol_short, Address, BytesN, Env, String, Vec,
-};
+use soroban_sdk::{contractimpl, symbol_short, Address, BytesN, Env, String, Vec};
use upgrade_manager::{
- Upgradeable, UpgradeableError, MigrationMetadata, VersionCompatibility, UpgradeStatus,
- version_utils, events::*,
+ events::*, version_utils, MigrationMetadata, UpgradeStatus, Upgradeable, UpgradeableError,
+ VersionCompatibility,
};
-use crate::{AgentRegistryContract, DataKey, Error, require_admin, events};
+use crate::{events, require_admin, AgentRegistryContract, DataKey, Error};
/// Current version of the agent registry contract
const CURRENT_VERSION: &str = "1.0.0";
@@ -53,16 +51,20 @@ impl Upgradeable for AgentRegistryContract {
fn get_upgrade_manager(env: Env) -> Option {
env.storage()
.instance()
- .get(&DataKey::Agent(soroban_sdk::Symbol::new(&env, "upgrade_mgr")))
+ .get(&DataKey::Agent(soroban_sdk::Symbol::new(
+ &env,
+ "upgrade_mgr",
+ )))
}
fn set_upgrade_manager(env: Env, upgrade_manager: Address) -> Result<(), UpgradeableError> {
// Only admin can set upgrade manager
require_admin(&env).map_err(|_| UpgradeableError::Unauthorized)?;
-
- env.storage()
- .instance()
- .set(&DataKey::Agent(soroban_sdk::Symbol::new(&env, "upgrade_mgr")), &upgrade_manager);
+
+ env.storage().instance().set(
+ &DataKey::Agent(soroban_sdk::Symbol::new(&env, "upgrade_mgr")),
+ &upgrade_manager,
+ );
env.events().publish(
(symbol_short!("upgrade"), symbol_short!("mgr_set")),
@@ -86,7 +88,7 @@ impl Upgradeable for AgentRegistryContract {
// Check version compatibility
let current = Self::get_version(env.clone());
let compatibility = version_utils::check_compatibility(&env, current, new_version.clone())?;
-
+
if !compatibility.is_compatible {
results.push_back(String::from_str(&env, "Version incompatible"));
return Err(UpgradeableError::IncompatibleVersion);
@@ -106,7 +108,10 @@ impl Upgradeable for AgentRegistryContract {
// Check contract not paused
if crate::AgentRegistryContract::is_paused(env.clone()) {
- results.push_back(String::from_str(&env, "Contract must be unpaused for upgrade"));
+ results.push_back(String::from_str(
+ &env,
+ "Contract must be unpaused for upgrade",
+ ));
return Err(UpgradeableError::PreUpgradeHookFailed);
}
@@ -149,17 +154,16 @@ impl Upgradeable for AgentRegistryContract {
migration_results.push_back(validation_result);
// Update contract version
- env.storage()
- .instance()
- .set(&DataKey::Agent(soroban_sdk::Symbol::new(&env, "version")), &new_version);
+ env.storage().instance().set(
+ &DataKey::Agent(soroban_sdk::Symbol::new(&env, "version")),
+ &new_version,
+ );
// Record upgrade timestamp
- env.storage()
- .instance()
- .set(
- &DataKey::Agent(soroban_sdk::Symbol::new(&env, "last_upgrade")),
- &env.ledger().sequence(),
- );
+ env.storage().instance().set(
+ &DataKey::Agent(soroban_sdk::Symbol::new(&env, "last_upgrade")),
+ &env.ledger().sequence(),
+ );
env.events().publish(
(symbol_short!("upgrade"), symbol_short!("post_hook")),
@@ -180,7 +184,7 @@ impl Upgradeable for AgentRegistryContract {
target_version: String,
) -> Result {
let current_version = Self::get_version(env.clone());
-
+
// Check compatibility first
let compatibility = version_utils::check_compatibility(
&env,
@@ -228,8 +232,8 @@ impl Upgradeable for AgentRegistryContract {
// Only admin can initiate upgrade
require_admin(&env).map_err(|_| UpgradeableError::Unauthorized)?;
- let upgrade_manager = Self::get_upgrade_manager(env.clone())
- .ok_or(UpgradeableError::NoUpgradeManager)?;
+ let upgrade_manager =
+ Self::get_upgrade_manager(env.clone()).ok_or(UpgradeableError::NoUpgradeManager)?;
// Get migration plan
let migration_plan = Self::get_migration_plan(env.clone(), new_version.clone())?;
@@ -267,11 +271,14 @@ impl AgentRegistryContract {
/// Get current upgrade status
pub fn get_upgrade_status(env: Env) -> UpgradeStatus {
let current_version = ::get_version(env.clone());
-
+
let last_upgrade_ledger = env
.storage()
.instance()
- .get(&DataKey::Agent(soroban_sdk::Symbol::new(&env, "last_upgrade")))
+ .get(&DataKey::Agent(soroban_sdk::Symbol::new(
+ &env,
+ "last_upgrade",
+ )))
.unwrap_or(0u32);
// Check if rollback is available (within 48h window)
@@ -310,8 +317,12 @@ impl AgentRegistryContract {
// Execute post-upgrade hook
let old_version = String::from_str(&env, CURRENT_VERSION);
- ::post_upgrade_hook(env.clone(), old_version.clone(), new_version.clone())
- .map_err(|_| Error::NotAdmin)?;
+ ::post_upgrade_hook(
+ env.clone(),
+ old_version.clone(),
+ new_version.clone(),
+ )
+ .map_err(|_| Error::NotAdmin)?;
// Emit upgrade event
env.events().publish(
@@ -334,7 +345,7 @@ impl AgentRegistryContract {
target_version: String,
) -> Result {
let current_version = ::get_version(env.clone());
-
+
version_utils::check_compatibility(&env, current_version, target_version)
.map_err(|_| Error::InvalidRecord)
}
@@ -353,17 +364,22 @@ impl AgentRegistryContract {
}
// Perform the rollback
- env.deployer().update_current_contract_wasm(rollback_wasm_hash);
+ env.deployer()
+ .update_current_contract_wasm(rollback_wasm_hash);
// Update version info
- env.storage()
- .instance()
- .set(&DataKey::Agent(soroban_sdk::Symbol::new(&env, "version")), &rollback_version);
+ env.storage().instance().set(
+ &DataKey::Agent(soroban_sdk::Symbol::new(&env, "version")),
+ &rollback_version,
+ );
// Clear rollback availability
env.storage()
.instance()
- .remove(&DataKey::Agent(soroban_sdk::Symbol::new(&env, "last_upgrade")));
+ .remove(&DataKey::Agent(soroban_sdk::Symbol::new(
+ &env,
+ "last_upgrade",
+ )));
env.events().publish(
(symbol_short!("registry"), symbol_short!("rollback")),
@@ -387,10 +403,13 @@ fn validate_data_integrity(env: &Env) -> Result {
Ok(String::from_str(env, "Data integrity validated"))
}
-fn validate_storage_compatibility(env: &Env, new_version: &String) -> Result {
+fn validate_storage_compatibility(
+ env: &Env,
+ new_version: &String,
+) -> Result {
// Check if new version can read existing storage format
let version_str = new_version.to_string();
-
+
// Simple compatibility check based on version
if version_str.starts_with("1.") {
Ok(String::from_str(env, "Storage format compatible"))
@@ -408,15 +427,13 @@ fn validate_admin_access(env: &Env) -> Result {
fn execute_migration_step(env: &Env, step: &String) -> Result {
let step_str = step.to_string();
-
+
match step_str.as_str() {
"backup_existing_data" => {
// In practice, this would create a backup
Ok(String::from_str(env, "Data backup completed"))
}
- "validate_data_integrity" => {
- validate_data_integrity(env)
- }
+ "validate_data_integrity" => validate_data_integrity(env),
"migrate_storage_format" => {
// Migrate storage keys and data format
Ok(String::from_str(env, "Storage format migrated"))
@@ -445,9 +462,10 @@ fn execute_migration_step(env: &Env, step: &String) -> Result {
- Ok(String::from_str(env, &format!("Unknown migration step: {}", step_str)))
- }
+ _ => Ok(String::from_str(
+ env,
+ &format!("Unknown migration step: {}", step_str),
+ )),
}
}
@@ -460,7 +478,7 @@ fn validate_post_migration_state(env: &Env) -> Result
fn estimate_data_items(env: &Env) -> u32 {
// Estimate the number of data items that need to be migrated
// This is a simplified estimation - in practice would count actual records
-
+
// Placeholder estimation based on contract usage
100 // Assuming ~100 agent records on average
-}
\ No newline at end of file
+}
diff --git a/smart-contracts/contracts/agent_registry/src/upgrade_tests.rs b/smart-contracts/contracts/agent_registry/src/upgrade_tests.rs
index d4a56300..955a51ca 100644
--- a/smart-contracts/contracts/agent_registry/src/upgrade_tests.rs
+++ b/smart-contracts/contracts/agent_registry/src/upgrade_tests.rs
@@ -6,7 +6,7 @@ mod upgrade_tests {
Address, BytesN, Env, String,
};
use upgrade_manager::{
- Upgradeable, UpgradeableError, MigrationMetadata, VersionCompatibility, UpgradeStatus,
+ MigrationMetadata, UpgradeStatus, Upgradeable, UpgradeableError, VersionCompatibility,
};
fn setup_upgrade_test() -> (Env, AgentRegistryContractClient<'static>, Address) {
@@ -42,12 +42,12 @@ mod upgrade_tests {
fn test_set_upgrade_manager() {
let (env, client, _admin) = setup_upgrade_test();
let upgrade_manager = Address::generate(&env);
-
+
let result = client.set_upgrade_manager(&upgrade_manager);
assert!(result.is_ok());
-
+
assert_eq!(client.get_upgrade_manager(), Some(upgrade_manager));
-
+
// Check event was emitted
let events = env.events().all();
assert!(events.len() > 0);
@@ -60,16 +60,16 @@ mod upgrade_tests {
let contract_id = env.register(AgentRegistryContract, ());
let client = AgentRegistryContractClient::new(&env, &contract_id);
let admin = Address::generate(&env);
-
+
env.mock_all_auths();
client.initialize(&admin);
-
+
// Remove authorization
env.mock_auths(&[]);
-
+
let upgrade_manager = Address::generate(&env);
let result = client.try_set_upgrade_manager(&upgrade_manager);
-
+
assert!(result.is_err());
}
@@ -78,28 +78,30 @@ mod upgrade_tests {
let (env, client, _admin) = setup_upgrade_test();
let new_version = String::from_str(&env, "1.1.0");
let new_hash = test_wasm_hash(&env, 2);
-
+
let result = client.pre_upgrade_hook(&new_version, &new_hash);
assert!(result.is_ok());
-
+
let validation_results = result.unwrap();
assert!(validation_results.len() > 0);
-
+
// Check that validation passed
- let last_result = validation_results.get(validation_results.len() - 1).unwrap();
+ let last_result = validation_results
+ .get(validation_results.len() - 1)
+ .unwrap();
assert!(last_result.to_string().contains("successful"));
}
#[test]
fn test_pre_upgrade_hook_paused_contract() {
let (env, client, _admin) = setup_upgrade_test();
-
+
// Pause the contract
client.pause();
-
+
let new_version = String::from_str(&env, "1.1.0");
let new_hash = test_wasm_hash(&env, 2);
-
+
let result = client.try_pre_upgrade_hook(&new_version, &new_hash);
assert_eq!(result, Err(Ok(UpgradeableError::PreUpgradeHookFailed)));
}
@@ -107,11 +109,11 @@ mod upgrade_tests {
#[test]
fn test_pre_upgrade_hook_incompatible_version() {
let (env, client, _admin) = setup_upgrade_test();
-
+
// Try to downgrade to older version
let old_version = String::from_str(&env, "0.9.0");
let new_hash = test_wasm_hash(&env, 0);
-
+
let result = client.try_pre_upgrade_hook(&old_version, &new_hash);
assert_eq!(result, Err(Ok(UpgradeableError::IncompatibleVersion)));
}
@@ -121,13 +123,13 @@ mod upgrade_tests {
let (env, client, _admin) = setup_upgrade_test();
let old_version = String::from_str(&env, "1.0.0");
let new_version = String::from_str(&env, "1.1.0");
-
+
let result = client.post_upgrade_hook(&old_version, &new_version);
assert!(result.is_ok());
-
+
// Check that version was updated in storage
// In a real test, we'd verify the storage was actually updated
-
+
// Check event was emitted
let events = env.events().all();
assert!(events.len() > 0);
@@ -137,10 +139,10 @@ mod upgrade_tests {
fn test_get_migration_plan() {
let (env, client, _admin) = setup_upgrade_test();
let target_version = String::from_str(&env, "2.0.0");
-
+
let result = client.get_migration_plan(&target_version);
assert!(result.is_ok());
-
+
let migration_plan = result.unwrap();
assert_eq!(migration_plan.from_version, String::from_str(&env, "1.0.0"));
assert_eq!(migration_plan.to_version, target_version);
@@ -152,10 +154,10 @@ mod upgrade_tests {
fn test_get_migration_plan_breaking_change() {
let (env, client, _admin) = setup_upgrade_test();
let target_version = String::from_str(&env, "3.0.0"); // Major version change
-
+
let result = client.get_migration_plan(&target_version);
assert!(result.is_ok());
-
+
let migration_plan = result.unwrap();
// Major version changes should be marked as breaking
// In a more sophisticated implementation, this would be true
@@ -166,11 +168,11 @@ mod upgrade_tests {
#[test]
fn test_initiate_upgrade_no_manager() {
let (env, client, _admin) = setup_upgrade_test();
-
+
let new_version = String::from_str(&env, "1.1.0");
let new_hash = test_wasm_hash(&env, 2);
let description = String::from_str(&env, "Minor upgrade");
-
+
let result = client.try_initiate_upgrade(&new_version, &new_hash, &description);
assert_eq!(result, Err(Ok(UpgradeableError::NoUpgradeManager)));
}
@@ -178,18 +180,18 @@ mod upgrade_tests {
#[test]
fn test_initiate_upgrade_with_manager() {
let (env, client, _admin) = setup_upgrade_test();
-
+
// Set upgrade manager
let upgrade_manager = Address::generate(&env);
client.set_upgrade_manager(&upgrade_manager);
-
+
let new_version = String::from_str(&env, "1.1.0");
let new_hash = test_wasm_hash(&env, 2);
let description = String::from_str(&env, "Minor upgrade");
-
+
let result = client.initiate_upgrade(&new_version, &new_hash, &description);
assert!(result.is_ok());
-
+
// Check event was emitted
let events = env.events().all();
assert!(events.len() > 0);
@@ -198,18 +200,18 @@ mod upgrade_tests {
#[test]
fn test_upgrade_contract_success() {
let (env, client, _admin) = setup_upgrade_test();
-
+
let new_hash = test_wasm_hash(&env, 2);
let new_version = String::from_str(&env, "1.1.0");
let description = String::from_str(&env, "Test upgrade");
-
+
let result = client.upgrade_contract(&new_hash, &new_version, &description);
assert!(result.is_ok());
-
+
// Check upgrade event was emitted
let events = env.events().all();
assert!(events.len() > 0);
-
+
// Verify upgrade status
let status = client.get_upgrade_status();
assert!(status.last_upgrade_ledger > 0);
@@ -222,17 +224,17 @@ mod upgrade_tests {
let contract_id = env.register(AgentRegistryContract, ());
let client = AgentRegistryContractClient::new(&env, &contract_id);
let admin = Address::generate(&env);
-
+
env.mock_all_auths();
client.initialize(&admin);
-
+
// Remove authorization
env.mock_auths(&[]);
-
+
let new_hash = test_wasm_hash(&env, 2);
let new_version = String::from_str(&env, "1.1.0");
let description = String::from_str(&env, "Unauthorized upgrade");
-
+
let result = client.try_upgrade_contract(&new_hash, &new_version, &description);
assert!(result.is_err());
}
@@ -240,22 +242,25 @@ mod upgrade_tests {
#[test]
fn test_check_upgrade_compatibility() {
let (env, client, _admin) = setup_upgrade_test();
-
+
// Test compatible upgrade
let compatible_version = String::from_str(&env, "1.1.0");
let result = client.check_upgrade_compatibility(&compatible_version);
assert!(result.is_ok());
-
+
let compatibility = result.unwrap();
- assert_eq!(compatibility.current_version, String::from_str(&env, "1.0.0"));
+ assert_eq!(
+ compatibility.current_version,
+ String::from_str(&env, "1.0.0")
+ );
assert_eq!(compatibility.target_version, compatible_version);
assert!(compatibility.is_compatible);
-
+
// Test incompatible downgrade
let incompatible_version = String::from_str(&env, "0.9.0");
let result = client.check_upgrade_compatibility(&incompatible_version);
assert!(result.is_ok());
-
+
let compatibility = result.unwrap();
assert!(!compatibility.is_compatible);
assert!(compatibility.compatibility_issues.len() > 0);
@@ -264,7 +269,7 @@ mod upgrade_tests {
#[test]
fn test_get_upgrade_status() {
let (env, client, _admin) = setup_upgrade_test();
-
+
let status = client.get_upgrade_status();
assert_eq!(status.current_version, String::from_str(&env, "1.0.0"));
assert_eq!(status.last_upgrade_ledger, 0);
@@ -275,29 +280,29 @@ mod upgrade_tests {
#[test]
fn test_emergency_rollback_success() {
let (env, client, _admin) = setup_upgrade_test();
-
+
// First perform an upgrade
let new_hash = test_wasm_hash(&env, 2);
let new_version = String::from_str(&env, "1.1.0");
let description = String::from_str(&env, "Test upgrade for rollback");
-
+
client.upgrade_contract(&new_hash, &new_version, &description);
-
+
// Verify rollback is available
let status = client.get_upgrade_status();
assert!(status.rollback_available);
-
+
// Perform rollback
let original_hash = test_wasm_hash(&env, 1);
let original_version = String::from_str(&env, "1.0.0");
-
+
let result = client.emergency_rollback(&original_hash, &original_version);
assert!(result.is_ok());
-
+
// Check rollback event was emitted
let events = env.events().all();
assert!(events.len() > 0);
-
+
// Verify rollback is no longer available
let status = client.get_upgrade_status();
assert!(!status.rollback_available);
@@ -306,11 +311,11 @@ mod upgrade_tests {
#[test]
fn test_emergency_rollback_no_rollback_available() {
let (env, client, _admin) = setup_upgrade_test();
-
+
// Try to rollback without any previous upgrade
let hash = test_wasm_hash(&env, 1);
let version = String::from_str(&env, "1.0.0");
-
+
let result = client.try_emergency_rollback(&hash, &version);
assert!(result.is_err());
}
@@ -318,22 +323,23 @@ mod upgrade_tests {
#[test]
fn test_emergency_rollback_after_deadline() {
let (env, client, _admin) = setup_upgrade_test();
-
+
// Perform upgrade
let new_hash = test_wasm_hash(&env, 2);
let new_version = String::from_str(&env, "1.1.0");
let description = String::from_str(&env, "Test upgrade");
-
+
client.upgrade_contract(&new_hash, &new_version, &description);
-
+
// Advance ledger beyond rollback window
let current_seq = env.ledger().sequence();
- env.ledger().set_sequence_number(current_seq + upgrade_manager::ROLLBACK_WINDOW_LEDGERS + 1);
-
+ env.ledger()
+ .set_sequence_number(current_seq + upgrade_manager::ROLLBACK_WINDOW_LEDGERS + 1);
+
// Try to rollback - should fail
let original_hash = test_wasm_hash(&env, 1);
let original_version = String::from_str(&env, "1.0.0");
-
+
let result = client.try_emergency_rollback(&original_hash, &original_version);
assert!(result.is_err());
}
@@ -341,29 +347,29 @@ mod upgrade_tests {
#[test]
fn test_rollback_window_calculation() {
let (env, client, _admin) = setup_upgrade_test();
-
+
// Perform upgrade
let new_hash = test_wasm_hash(&env, 2);
let new_version = String::from_str(&env, "1.1.0");
let description = String::from_str(&env, "Test upgrade");
-
+
let upgrade_ledger = env.ledger().sequence();
client.upgrade_contract(&new_hash, &new_version, &description);
-
+
let status = client.get_upgrade_status();
let expected_deadline = upgrade_ledger + upgrade_manager::ROLLBACK_WINDOW_LEDGERS;
assert_eq!(status.rollback_deadline, expected_deadline);
-
+
// Test rollback availability within window
let mid_window = upgrade_ledger + (upgrade_manager::ROLLBACK_WINDOW_LEDGERS / 2);
env.ledger().set_sequence_number(mid_window);
-
+
let status = client.get_upgrade_status();
assert!(status.rollback_available);
-
+
// Test rollback unavailability after window
env.ledger().set_sequence_number(expected_deadline + 1);
-
+
let status = client.get_upgrade_status();
assert!(!status.rollback_available);
}
@@ -371,25 +377,34 @@ mod upgrade_tests {
#[test]
fn test_multiple_upgrades() {
let (env, client, _admin) = setup_upgrade_test();
-
+
// First upgrade: 1.0.0 -> 1.1.0
let hash_v1_1 = test_wasm_hash(&env, 2);
let version_v1_1 = String::from_str(&env, "1.1.0");
- client.upgrade_contract(&hash_v1_1, &version_v1_1, &String::from_str(&env, "First upgrade"));
-
+ client.upgrade_contract(
+ &hash_v1_1,
+ &version_v1_1,
+ &String::from_str(&env, "First upgrade"),
+ );
+
let status = client.get_upgrade_status();
assert_eq!(status.current_version, version_v1_1);
assert!(status.rollback_available);
-
+
// Advance time to expire first rollback window
let current_seq = env.ledger().sequence();
- env.ledger().set_sequence_number(current_seq + upgrade_manager::ROLLBACK_WINDOW_LEDGERS + 1);
-
+ env.ledger()
+ .set_sequence_number(current_seq + upgrade_manager::ROLLBACK_WINDOW_LEDGERS + 1);
+
// Second upgrade: 1.1.0 -> 1.2.0
let hash_v1_2 = test_wasm_hash(&env, 3);
let version_v1_2 = String::from_str(&env, "1.2.0");
- client.upgrade_contract(&hash_v1_2, &version_v1_2, &String::from_str(&env, "Second upgrade"));
-
+ client.upgrade_contract(
+ &hash_v1_2,
+ &version_v1_2,
+ &String::from_str(&env, "Second upgrade"),
+ );
+
let status = client.get_upgrade_status();
assert_eq!(status.current_version, version_v1_2);
assert!(status.rollback_available); // New rollback window should be available
@@ -398,46 +413,45 @@ mod upgrade_tests {
#[test]
fn test_upgrade_events() {
let (env, client, admin) = setup_upgrade_test();
-
+
let new_hash = test_wasm_hash(&env, 2);
let new_version = String::from_str(&env, "1.1.0");
let description = String::from_str(&env, "Event test upgrade");
-
+
client.upgrade_contract(&new_hash, &new_version, &description);
-
+
let events = env.events().all();
-
+
// Should have at least the upgrade event
assert!(events.len() > 0);
-
+
// In a real implementation, we would check for specific event types:
// - ContractUpgradedEvent with correct data
// - PreUpgradeHookEvent
// - PostUpgradeHookEvent
-
+
// For now, just verify events were emitted
- let upgrade_events: Vec<_> = events.iter()
+ let upgrade_events: Vec<_> = events
+ .iter()
.filter(|(_, topics, _)| {
- topics.len() >= 2 &&
- topics.get(0).is_some() &&
- topics.get(1).is_some()
+ topics.len() >= 2 && topics.get(0).is_some() && topics.get(1).is_some()
})
.collect();
-
+
assert!(upgrade_events.len() > 0);
}
#[test]
fn test_gas_estimation_integration() {
let (env, client, _admin) = setup_upgrade_test();
-
+
// Create a migration plan
let target_version = String::from_str(&env, "2.0.0");
let migration_plan = client.get_migration_plan(&target_version).unwrap();
-
+
// Verify gas estimation is reasonable
assert!(migration_plan.estimated_data_items > 0);
-
+
// In a real implementation, we could test:
// - Gas estimation accuracy
// - Gas budget validation
@@ -447,18 +461,18 @@ mod upgrade_tests {
#[test]
fn test_version_compatibility_edge_cases() {
let (env, client, _admin) = setup_upgrade_test();
-
+
// Test same version
let same_version = String::from_str(&env, "1.0.0");
let result = client.check_upgrade_compatibility(&same_version);
// Should handle same version gracefully
-
+
// Test malformed version
let bad_version = String::from_str(&env, "not.a.version");
let result = client.try_check_upgrade_compatibility(&bad_version);
// Should return error for malformed version
assert!(result.is_err());
-
+
// Test very large version jump
let future_version = String::from_str(&env, "99.0.0");
let result = client.check_upgrade_compatibility(&future_version);
@@ -474,11 +488,11 @@ mod upgrade_tests {
#[cfg(test)]
mod upgrade_integration_tests {
use super::*;
- use upgrade_manager::{UpgradeManager, UpgradeManagerClient, MigrationPlan};
use soroban_sdk::{
testutils::{Address as _, Ledger as _},
Address, BytesN, Env, String, Vec,
};
+ use upgrade_manager::{MigrationPlan, UpgradeManager, UpgradeManagerClient};
fn setup_integration_test() -> (
Env,
@@ -488,40 +502,36 @@ mod upgrade_integration_tests {
) {
let env = Env::default();
env.mock_all_auths();
-
+
// Deploy both contracts
let registry_id = env.register(AgentRegistryContract, ());
let registry_client = AgentRegistryContractClient::new(&env, ®istry_id);
-
+
let upgrade_mgr_id = env.register(UpgradeManager, ());
let upgrade_client = UpgradeManagerClient::new(&env, &upgrade_mgr_id);
-
+
let admin = Address::generate(&env);
-
+
// Initialize both contracts
registry_client.initialize(&admin);
-
+
let initial_hash = BytesN::from_array(&env, &[1u8; 32]);
- upgrade_client.initialize(
- &admin,
- &String::from_str(&env, "1.0.0"),
- &initial_hash,
- );
-
+ upgrade_client.initialize(&admin, &String::from_str(&env, "1.0.0"), &initial_hash);
+
// Connect registry to upgrade manager
registry_client.set_upgrade_manager(&upgrade_mgr_id);
-
+
(env, registry_client, upgrade_client, admin)
}
#[test]
fn test_full_upgrade_flow_integration() {
let (env, registry, upgrade_mgr, _admin) = setup_integration_test();
-
+
let new_version = String::from_str(&env, "1.1.0");
let new_hash = BytesN::from_array(&env, &[2u8; 32]);
let description = String::from_str(&env, "Integration test upgrade");
-
+
// Create migration plan
let migration_plan = MigrationPlan {
pre_migration_checks: {
@@ -541,46 +551,45 @@ mod upgrade_integration_tests {
},
estimated_items: 50,
};
-
+
// Test the full upgrade flow through upgrade manager
- let result = upgrade_mgr.propose_upgrade(
- &new_version,
- &new_hash,
- &description,
- &migration_plan,
- );
+ let result =
+ upgrade_mgr.propose_upgrade(&new_version, &new_hash, &description, &migration_plan);
assert!(result.is_ok());
-
+
// Validate proposal
let gas_estimate = upgrade_mgr.validate_proposal();
assert!(gas_estimate.is_ok());
assert!(gas_estimate.unwrap() > 0);
-
+
// Execute upgrade
let result = upgrade_mgr.execute_upgrade();
assert!(result.is_ok());
-
+
// Verify upgrade was applied
let current_version = upgrade_mgr.get_current_version();
assert!(current_version.is_some());
assert_eq!(current_version.unwrap().version, new_version);
-
+
// Test rollback capability
assert!(upgrade_mgr.can_rollback());
-
+
let result = upgrade_mgr.rollback_upgrade();
assert!(result.is_ok());
-
+
// Verify rollback worked
let restored_version = upgrade_mgr.get_current_version();
assert!(restored_version.is_some());
- assert_eq!(restored_version.unwrap().version, String::from_str(&env, "1.0.0"));
+ assert_eq!(
+ restored_version.unwrap().version,
+ String::from_str(&env, "1.0.0")
+ );
}
#[test]
fn test_upgrade_manager_gas_estimation() {
let (env, _registry, upgrade_mgr, _admin) = setup_integration_test();
-
+
let migration_plan = MigrationPlan {
pre_migration_checks: Vec::new(&env),
data_transformations: {
@@ -592,34 +601,34 @@ mod upgrade_integration_tests {
post_migration_validations: Vec::new(&env),
estimated_items: 100,
};
-
+
let gas_estimate = upgrade_mgr.estimate_migration_gas(&migration_plan);
-
+
// Should include base cost + per-item cost + step overhead
- let expected_minimum = upgrade_manager::GAS_UPGRADE_BASE +
- (upgrade_manager::GAS_MIGRATION_PER_ITEM * 100) +
- (2 * 5000); // 2 transformation steps
-
+ let expected_minimum = upgrade_manager::GAS_UPGRADE_BASE
+ + (upgrade_manager::GAS_MIGRATION_PER_ITEM * 100)
+ + (2 * 5000); // 2 transformation steps
+
assert!(gas_estimate >= expected_minimum);
}
#[test]
fn test_cross_contract_upgrade_coordination() {
let (env, registry, upgrade_mgr, _admin) = setup_integration_test();
-
+
// Test that registry can initiate upgrades through the upgrade manager
let new_version = String::from_str(&env, "1.2.0");
let new_hash = BytesN::from_array(&env, &[3u8; 32]);
let description = String::from_str(&env, "Cross-contract upgrade test");
-
+
let result = registry.initiate_upgrade(&new_version, &new_hash, &description);
assert!(result.is_ok());
-
+
// Verify that the upgrade manager has the proposal
// In a real implementation, we would check the upgrade manager's state
// For now, just verify the call succeeded and events were emitted
-
+
let events = env.events().all();
assert!(events.len() > 0);
}
-}
\ No newline at end of file
+}
diff --git a/smart-contracts/contracts/upgrade-manager/src/events.rs b/smart-contracts/contracts/upgrade-manager/src/events.rs
index 2cf627e3..8962023c 100644
--- a/smart-contracts/contracts/upgrade-manager/src/events.rs
+++ b/smart-contracts/contracts/upgrade-manager/src/events.rs
@@ -73,4 +73,4 @@ pub struct MigrationCompleteEvent {
pub items_migrated: u32,
pub total_gas_used: u64,
pub success: bool,
-}
\ No newline at end of file
+}
diff --git a/smart-contracts/contracts/upgrade-manager/src/lib.rs b/smart-contracts/contracts/upgrade-manager/src/lib.rs
index b2cbb3ac..da6777ce 100644
--- a/smart-contracts/contracts/upgrade-manager/src/lib.rs
+++ b/smart-contracts/contracts/upgrade-manager/src/lib.rs
@@ -33,12 +33,12 @@ mod events;
mod migration;
pub mod upgradeable;
-pub use upgradeable::*;
use events::*;
use migration::*;
use soroban_sdk::{
contract, contractimpl, contracttype, symbol_short, Address, BytesN, Env, String, Vec,
};
+pub use upgradeable::*;
// ─── Constants ───────────────────────────────────────────────────────────────
@@ -247,7 +247,10 @@ impl UpgradeManager {
env.events().publish(
(symbol_short!("upgrade"), symbol_short!("adm_chng")),
- AdminChangedEvent { old_admin, new_admin },
+ AdminChangedEvent {
+ old_admin,
+ new_admin,
+ },
);
Ok(())
@@ -265,9 +268,7 @@ impl UpgradeManager {
/// Get version history for a specific version
pub fn get_version(env: Env, version: String) -> Option {
- env.storage()
- .persistent()
- .get(&DataKey::Version(version))
+ env.storage().persistent().get(&DataKey::Version(version))
}
/// Propose a new upgrade with validation
@@ -279,7 +280,7 @@ impl UpgradeManager {
migration_plan: MigrationPlan,
) -> Result<(), UpgradeError> {
let admin = require_admin(&env)?;
-
+
// Check if version is valid and newer
if let Some(current) = get_current_version(&env) {
if !is_version_newer(¤t.version.to_string(), &new_version.to_string()) {
@@ -299,7 +300,9 @@ impl UpgradeManager {
migration_plan,
};
- env.storage().persistent().set(&DataKey::Proposal, &proposal);
+ env.storage()
+ .persistent()
+ .set(&DataKey::Proposal, &proposal);
extend_ttl_for_key(&env, &DataKey::Proposal);
env.events().publish(
@@ -327,14 +330,16 @@ impl UpgradeManager {
// Execute pre-upgrade validation
let validation_result = execute_pre_upgrade_validation(&env, &proposal)?;
-
+
// Estimate gas costs
let estimated_gas = estimate_migration_gas(&env, &proposal.migration_plan);
-
+
proposal.validated = true;
proposal.estimated_gas = estimated_gas;
-
- env.storage().persistent().set(&DataKey::Proposal, &proposal);
+
+ env.storage()
+ .persistent()
+ .set(&DataKey::Proposal, &proposal);
extend_ttl_for_key(&env, &DataKey::Proposal);
env.events().publish(
@@ -368,7 +373,8 @@ impl UpgradeManager {
let rollback_deadline = env.ledger().sequence() + ROLLBACK_WINDOW_LEDGERS;
// Execute the upgrade
- env.deployer().update_current_contract_wasm(proposal.new_wasm_hash);
+ env.deployer()
+ .update_current_contract_wasm(proposal.new_wasm_hash);
// Create new version record
let new_version = ContractVersion {
@@ -384,9 +390,10 @@ impl UpgradeManager {
env.storage()
.persistent()
.set(&DataKey::CurrentVersion, &new_version);
- env.storage()
- .persistent()
- .set(&DataKey::Version(proposal.new_version.clone()), &new_version);
+ env.storage().persistent().set(
+ &DataKey::Version(proposal.new_version.clone()),
+ &new_version,
+ );
// Store rollback info if we had a previous version
if let Some(prev_version) = current_version {
@@ -413,7 +420,9 @@ impl UpgradeManager {
env.events().publish(
(symbol_short!("upgrade"), symbol_short!("applied")),
UpgradeAppliedEvent {
- old_version: current_version.map(|v| v.version).unwrap_or(String::from_str(&env, "none")),
+ old_version: current_version
+ .map(|v| v.version)
+ .unwrap_or(String::from_str(&env, "none")),
new_version: proposal.new_version,
wasm_hash: proposal.new_wasm_hash,
admin: new_version.admin,
@@ -476,8 +485,13 @@ impl UpgradeManager {
/// Check if rollback is still available
pub fn can_rollback(env: Env) -> bool {
- if let Some(rollback_record) = env.storage().persistent().get::(&DataKey::Rollback) {
- rollback_record.can_rollback && env.ledger().sequence() <= rollback_record.rollback_deadline
+ if let Some(rollback_record) = env
+ .storage()
+ .persistent()
+ .get::(&DataKey::Rollback)
+ {
+ rollback_record.can_rollback
+ && env.ledger().sequence() <= rollback_record.rollback_deadline
} else {
false
}
@@ -505,19 +519,20 @@ impl UpgradeManager {
fn estimate_migration_gas(env: &Env, migration_plan: &MigrationPlan) -> u64 {
let base_cost = GAS_UPGRADE_BASE;
let item_cost = GAS_MIGRATION_PER_ITEM * migration_plan.estimated_items as u64;
-
+
// Add overhead for each migration step
- let step_overhead = (migration_plan.pre_migration_checks.len() +
- migration_plan.data_transformations.len() +
- migration_plan.post_migration_validations.len()) as u64 * 5000;
-
+ let step_overhead = (migration_plan.pre_migration_checks.len()
+ + migration_plan.data_transformations.len()
+ + migration_plan.post_migration_validations.len()) as u64
+ * 5000;
+
base_cost + item_cost + step_overhead
}
#[cfg(test)]
mod tests {
use super::*;
- use soroban_sdk::{testutils::Address as _, Env, BytesN};
+ use soroban_sdk::{testutils::Address as _, BytesN, Env};
fn create_test_env() -> (Env, UpgradeManagerClient<'static>, Address) {
let env = Env::default();
@@ -538,16 +553,12 @@ mod tests {
fn test_initialize_upgrade_manager() {
let (env, client, admin) = create_test_env();
let initial_hash = test_wasm_hash(&env, 1);
-
- let result = client.initialize(
- &admin,
- &String::from_str(&env, "1.0.0"),
- &initial_hash,
- );
-
+
+ let result = client.initialize(&admin, &String::from_str(&env, "1.0.0"), &initial_hash);
+
assert!(result.is_ok());
assert_eq!(client.get_admin(), Some(admin));
-
+
let version = client.get_current_version().unwrap();
assert_eq!(version.version, String::from_str(&env, "1.0.0"));
assert_eq!(version.wasm_hash, initial_hash);
@@ -558,16 +569,16 @@ mod tests {
let (env, client, admin) = create_test_env();
let initial_hash = test_wasm_hash(&env, 1);
let new_hash = test_wasm_hash(&env, 2);
-
+
client.initialize(&admin, &String::from_str(&env, "1.0.0"), &initial_hash);
-
+
let migration_plan = MigrationPlan {
pre_migration_checks: Vec::new(&env),
data_transformations: Vec::new(&env),
post_migration_validations: Vec::new(&env),
estimated_items: 10,
};
-
+
// Propose upgrade
let result = client.propose_upgrade(
&String::from_str(&env, "2.0.0"),
@@ -576,16 +587,16 @@ mod tests {
&migration_plan,
);
assert!(result.is_ok());
-
+
// Validate proposal
let gas_estimate = client.validate_proposal();
assert!(gas_estimate.is_ok());
assert!(gas_estimate.unwrap() > 0);
-
+
// Execute upgrade
let result = client.execute_upgrade();
assert!(result.is_ok());
-
+
let new_version = client.get_current_version().unwrap();
assert_eq!(new_version.version, String::from_str(&env, "2.0.0"));
assert_eq!(new_version.wasm_hash, new_hash);
@@ -596,16 +607,16 @@ mod tests {
let (env, client, admin) = create_test_env();
let initial_hash = test_wasm_hash(&env, 1);
let new_hash = test_wasm_hash(&env, 2);
-
+
client.initialize(&admin, &String::from_str(&env, "1.0.0"), &initial_hash);
-
+
let migration_plan = MigrationPlan {
pre_migration_checks: Vec::new(&env),
data_transformations: Vec::new(&env),
post_migration_validations: Vec::new(&env),
estimated_items: 5,
};
-
+
// Perform upgrade
client.propose_upgrade(
&String::from_str(&env, "2.0.0"),
@@ -615,19 +626,19 @@ mod tests {
);
client.validate_proposal();
client.execute_upgrade();
-
+
// Check rollback is available
assert!(client.can_rollback());
-
+
// Perform rollback
let result = client.rollback_upgrade();
assert!(result.is_ok());
-
+
// Verify we're back to original version
let current = client.get_current_version().unwrap();
assert_eq!(current.version, String::from_str(&env, "1.0.0"));
assert_eq!(current.wasm_hash, initial_hash);
-
+
// Verify rollback is no longer available
assert!(!client.can_rollback());
}
@@ -637,16 +648,16 @@ mod tests {
let (env, client, admin) = create_test_env();
let initial_hash = test_wasm_hash(&env, 1);
let new_hash = test_wasm_hash(&env, 2);
-
+
client.initialize(&admin, &String::from_str(&env, "1.0.0"), &initial_hash);
-
+
let migration_plan = MigrationPlan {
pre_migration_checks: Vec::new(&env),
data_transformations: Vec::new(&env),
post_migration_validations: Vec::new(&env),
estimated_items: 5,
};
-
+
// Perform upgrade
client.propose_upgrade(
&String::from_str(&env, "2.0.0"),
@@ -656,11 +667,12 @@ mod tests {
);
client.validate_proposal();
client.execute_upgrade();
-
+
// Advance ledger past rollback deadline
let current_seq = env.ledger().sequence();
- env.ledger().set_sequence_number(current_seq + ROLLBACK_WINDOW_LEDGERS + 1);
-
+ env.ledger()
+ .set_sequence_number(current_seq + ROLLBACK_WINDOW_LEDGERS + 1);
+
// Rollback should fail
let result = client.try_rollback_upgrade();
assert_eq!(result, Err(Ok(UpgradeError::RollbackDeadlineExpired)));
@@ -669,21 +681,27 @@ mod tests {
#[test]
fn test_gas_estimation() {
let (env, client, admin) = create_test_env();
-
+
let mut migration_plan = MigrationPlan {
pre_migration_checks: Vec::new(&env),
data_transformations: Vec::new(&env),
post_migration_validations: Vec::new(&env),
estimated_items: 100,
};
-
- migration_plan.pre_migration_checks.push_back(String::from_str(&env, "check1"));
- migration_plan.data_transformations.push_back(String::from_str(&env, "transform1"));
- migration_plan.post_migration_validations.push_back(String::from_str(&env, "validate1"));
-
+
+ migration_plan
+ .pre_migration_checks
+ .push_back(String::from_str(&env, "check1"));
+ migration_plan
+ .data_transformations
+ .push_back(String::from_str(&env, "transform1"));
+ migration_plan
+ .post_migration_validations
+ .push_back(String::from_str(&env, "validate1"));
+
let gas_estimate = client.estimate_migration_gas(&migration_plan);
-
+
let expected = GAS_UPGRADE_BASE + (GAS_MIGRATION_PER_ITEM * 100) + (3 * 5000);
assert_eq!(gas_estimate, expected);
}
-}
\ No newline at end of file
+}
diff --git a/smart-contracts/contracts/upgrade-manager/src/migration.rs b/smart-contracts/contracts/upgrade-manager/src/migration.rs
index f71b363c..377bd709 100644
--- a/smart-contracts/contracts/upgrade-manager/src/migration.rs
+++ b/smart-contracts/contracts/upgrade-manager/src/migration.rs
@@ -1,5 +1,5 @@
+use crate::{events::*, MigrationPlan, UpgradeError, UpgradeProposal};
use soroban_sdk::{Env, String, Vec};
-use crate::{events::*, UpgradeError, UpgradeProposal, MigrationPlan};
/// Execute pre-upgrade validation checks
pub fn execute_pre_upgrade_validation(
@@ -7,24 +7,24 @@ pub fn execute_pre_upgrade_validation(
proposal: &UpgradeProposal,
) -> Result, UpgradeError> {
let mut results = Vec::new(env);
-
+
// Validate WASM hash format
if proposal.new_wasm_hash.len() != 32 {
results.push_back(String::from_str(env, "Invalid WASM hash length"));
return Err(UpgradeError::PreUpgradeValidationFailed);
}
-
+
// Check migration plan completeness
if proposal.migration_plan.estimated_items == 0 {
results.push_back(String::from_str(env, "Warning: No items to migrate"));
}
-
+
// Execute each pre-migration check
for check in proposal.migration_plan.pre_migration_checks.iter() {
let result = execute_validation_check(env, &check)?;
results.push_back(result);
}
-
+
results.push_back(String::from_str(env, "Pre-upgrade validation passed"));
Ok(results)
}
@@ -37,20 +37,23 @@ pub fn execute_post_upgrade_migration(
let total_items = migration_plan.estimated_items;
let mut processed_items = 0u32;
let mut total_gas_used = 0u64;
-
+
// Execute data transformations
for transformation in migration_plan.data_transformations.iter() {
let gas_before = env.ledger().protocol_version() as u64; // Placeholder for gas tracking
-
+
let items_in_batch = execute_data_transformation(env, &transformation)?;
processed_items += items_in_batch;
-
+
let gas_used = env.ledger().protocol_version() as u64 - gas_before; // Placeholder
total_gas_used += gas_used;
-
+
// Emit progress event
env.events().publish(
- (soroban_sdk::symbol_short!("upgrade"), soroban_sdk::symbol_short!("progress")),
+ (
+ soroban_sdk::symbol_short!("upgrade"),
+ soroban_sdk::symbol_short!("progress"),
+ ),
MigrationProgressEvent {
phase: transformation,
items_processed: processed_items,
@@ -59,15 +62,18 @@ pub fn execute_post_upgrade_migration(
},
);
}
-
+
// Execute post-migration validations
for validation in migration_plan.post_migration_validations.iter() {
execute_post_migration_validation(env, &validation)?;
}
-
+
// Emit completion event
env.events().publish(
- (soroban_sdk::symbol_short!("upgrade"), soroban_sdk::symbol_short!("complete")),
+ (
+ soroban_sdk::symbol_short!("upgrade"),
+ soroban_sdk::symbol_short!("complete"),
+ ),
MigrationCompleteEvent {
version: String::from_str(env, "migrated"), // Would be actual version
items_migrated: processed_items,
@@ -75,7 +81,7 @@ pub fn execute_post_upgrade_migration(
success: true,
},
);
-
+
Ok(())
}
@@ -83,29 +89,32 @@ pub fn execute_post_upgrade_migration(
fn execute_validation_check(env: &Env, check_name: &String) -> Result {
// In a real implementation, this would dispatch to specific validation functions
// based on the check name. For now, we simulate validation logic.
-
+
let check_str = check_name.to_string();
-
+
match check_str.as_str() {
"storage_format_compatibility" => {
// Check if new contract can read existing storage format
Ok(String::from_str(env, "Storage format compatible"))
- },
+ }
"data_integrity_check" => {
// Verify existing data integrity before migration
Ok(String::from_str(env, "Data integrity verified"))
- },
+ }
"gas_budget_validation" => {
// Ensure sufficient gas budget for migration
Ok(String::from_str(env, "Gas budget sufficient"))
- },
+ }
"dependency_compatibility" => {
// Check if new version is compatible with dependent contracts
Ok(String::from_str(env, "Dependencies compatible"))
- },
+ }
_ => {
// Unknown validation check
- Ok(String::from_str(env, &format!("Unknown check: {}", check_str)))
+ Ok(String::from_str(
+ env,
+ &format!("Unknown check: {}", check_str),
+ ))
}
}
}
@@ -114,26 +123,26 @@ fn execute_validation_check(env: &Env, check_name: &String) -> Result Result {
// In a real implementation, this would perform actual data transformations
// For now, we simulate different transformation types
-
+
let transform_str = transformation.to_string();
-
+
match transform_str.as_str() {
"migrate_agent_records" => {
// Simulate migrating agent records to new format
migrate_agent_records(env)
- },
+ }
"update_storage_keys" => {
// Simulate updating storage key formats
update_storage_keys(env)
- },
+ }
"convert_metadata_format" => {
// Simulate converting metadata to new format
convert_metadata_format(env)
- },
+ }
"rebuild_indexes" => {
// Simulate rebuilding capability indexes
rebuild_indexes(env)
- },
+ }
_ => {
// Unknown transformation
Ok(0)
@@ -144,24 +153,24 @@ fn execute_data_transformation(env: &Env, transformation: &String) -> Result Result<(), UpgradeError> {
let validation_str = validation.to_string();
-
+
match validation_str.as_str() {
"verify_data_integrity" => {
// Verify all data was migrated correctly
Ok(())
- },
+ }
"test_contract_functionality" => {
// Test that upgraded contract functions work correctly
Ok(())
- },
+ }
"validate_storage_consistency" => {
// Ensure storage is in a consistent state
Ok(())
- },
+ }
"check_index_completeness" => {
// Verify all indexes were rebuilt correctly
Ok(())
- },
+ }
_ => {
// Unknown validation - pass by default
Ok(())
@@ -178,7 +187,7 @@ fn migrate_agent_records(env: &Env) -> Result {
// 2. Transform them to new format
// 3. Write them back to storage
// 4. Clean up old format data if needed
-
+
// For simulation, assume we processed 10 agent records
Ok(10)
}
@@ -189,7 +198,7 @@ fn update_storage_keys(env: &Env) -> Result {
// 1. Reading data from old key format
// 2. Writing data to new key format
// 3. Removing old keys
-
+
// For simulation, assume we updated 25 storage keys
Ok(25)
}
@@ -201,7 +210,7 @@ fn convert_metadata_format(env: &Env) -> Result {
// 2. Converting to new schema
// 3. Validating converted data
// 4. Storing in new format
-
+
// For simulation, assume we converted 15 metadata entries
Ok(15)
}
@@ -213,7 +222,7 @@ fn rebuild_indexes(env: &Env) -> Result {
// 2. Reading all agent records
// 3. Rebuilding indexes from current data
// 4. Verifying index completeness
-
+
// For simulation, assume we rebuilt 5 indexes
Ok(5)
}
@@ -223,7 +232,7 @@ pub fn is_migration_reversible(migration_plan: &MigrationPlan) -> bool {
// Check if all transformations in the plan are reversible
for transformation in migration_plan.data_transformations.iter() {
let transform_str = transformation.to_string();
-
+
// These transformations are considered irreversible
match transform_str.as_str() {
"delete_deprecated_data" => return false,
@@ -232,21 +241,21 @@ pub fn is_migration_reversible(migration_plan: &MigrationPlan) -> bool {
_ => {} // Most transformations are reversible
}
}
-
+
true
}
/// Helper function to estimate migration complexity
pub fn estimate_migration_complexity(migration_plan: &MigrationPlan) -> u32 {
let mut complexity = 0u32;
-
+
// Base complexity from number of items
complexity += migration_plan.estimated_items;
-
+
// Add complexity for each transformation type
for transformation in migration_plan.data_transformations.iter() {
let transform_str = transformation.to_string();
-
+
let transform_complexity = match transform_str.as_str() {
"migrate_agent_records" => 2,
"update_storage_keys" => 3,
@@ -256,9 +265,9 @@ pub fn estimate_migration_complexity(migration_plan: &MigrationPlan) -> u32 {
"merge_duplicate_records" => 4,
_ => 1,
};
-
+
complexity += transform_complexity;
}
-
+
complexity
-}
\ No newline at end of file
+}
diff --git a/smart-contracts/contracts/upgrade-manager/src/upgradeable.rs b/smart-contracts/contracts/upgrade-manager/src/upgradeable.rs
index 29dc09c2..bb1f8cef 100644
--- a/smart-contracts/contracts/upgrade-manager/src/upgradeable.rs
+++ b/smart-contracts/contracts/upgrade-manager/src/upgradeable.rs
@@ -12,28 +12,39 @@ use soroban_sdk::{contracttype, Address, BytesN, Env, String, Vec};
pub trait Upgradeable {
/// Get the current contract version
fn get_version(env: Env) -> String;
-
+
/// Get the current WASM hash
fn get_wasm_hash(env: Env) -> BytesN<32>;
-
+
/// Check if the contract supports upgrades
fn is_upgradeable(env: Env) -> bool;
-
+
/// Get the upgrade manager contract address (if configured)
fn get_upgrade_manager(env: Env) -> Option;
-
+
/// Set the upgrade manager contract address (admin only)
fn set_upgrade_manager(env: Env, upgrade_manager: Address) -> Result<(), UpgradeableError>;
-
+
/// Execute pre-upgrade validation
- fn pre_upgrade_hook(env: Env, new_version: String, new_wasm_hash: BytesN<32>) -> Result, UpgradeableError>;
-
+ fn pre_upgrade_hook(
+ env: Env,
+ new_version: String,
+ new_wasm_hash: BytesN<32>,
+ ) -> Result, UpgradeableError>;
+
/// Execute post-upgrade migration
- fn post_upgrade_hook(env: Env, old_version: String, new_version: String) -> Result<(), UpgradeableError>;
-
+ fn post_upgrade_hook(
+ env: Env,
+ old_version: String,
+ new_version: String,
+ ) -> Result<(), UpgradeableError>;
+
/// Get migration plan for upgrading to a new version
- fn get_migration_plan(env: Env, target_version: String) -> Result;
-
+ fn get_migration_plan(
+ env: Env,
+ target_version: String,
+ ) -> Result;
+
/// Initiate upgrade through upgrade manager
fn initiate_upgrade(
env: Env,
@@ -110,8 +121,8 @@ impl From for soroban_sdk::Error {
/// Utility functions for version comparison and compatibility checking
pub mod version_utils {
+ use crate::{UpgradeableError, VersionCompatibility};
use soroban_sdk::{Env, String, Vec};
- use crate::{VersionCompatibility, UpgradeableError};
/// Simple version comparison for strings (semantic versioning approximation)
/// In production, you would use proper semver parsing
@@ -127,11 +138,11 @@ pub mod version_utils {
) -> Result {
let current_str = current.to_string();
let target_str = target.to_string();
-
+
let mut issues = Vec::new(env);
let mut is_compatible = true;
let mut migration_required = false;
-
+
// Simple version comparison - in practice would use proper semver
match current_str.cmp(&target_str) {
std::cmp::Ordering::Less => {
@@ -148,7 +159,7 @@ pub mod version_utils {
issues.push_back(String::from_str(env, "Downgrade not allowed"));
}
}
-
+
Ok(VersionCompatibility {
current_version: current,
target_version: target,
@@ -165,7 +176,7 @@ pub mod version_utils {
to_version: &str,
) -> Result, UpgradeableError> {
let mut steps = Vec::new(env);
-
+
// Simple version-based migration planning
match from_version.cmp(to_version) {
std::cmp::Ordering::Less => {
@@ -194,7 +205,7 @@ pub mod version_utils {
return Err(UpgradeableError::IncompatibleVersion);
}
}
-
+
Ok(steps)
}
}
@@ -249,16 +260,16 @@ macro_rules! impl_upgradeable_basics {
fn get_version(env: Env) -> String {
String::from_str(&env, $version)
}
-
+
fn is_upgradeable(_env: Env) -> bool {
true
}
-
+
fn get_wasm_hash(env: Env) -> BytesN<32> {
env.current_contract_address().into() // Placeholder
}
-
+
// Other methods need custom implementation
}
};
-}
\ No newline at end of file
+}
diff --git a/smart-contracts/docs/agent-bidding-security.md b/smart-contracts/docs/agent-bidding-security.md
new file mode 100644
index 00000000..01214cf8
--- /dev/null
+++ b/smart-contracts/docs/agent-bidding-security.md
@@ -0,0 +1,378 @@
+# Security review — `agent_bidding` commit-reveal auction
+
+**Contract**: `smart-contracts/contracts/agent_bidding`
+**Scope**: the sealed-bid commit-reveal flow — `create_auction`, `submit_bid`,
+`reveal_bid`, `reveal_bids`, `award_contract`, `abort_auction`.
+**Tracking issue**: [#350](https://github.com/Epta-Node/ai-net/issues/350)
+
+This document is the deliverable half of #350: it states the attack surface of
+the auction, the mitigation now in the contract for each attack, and — just as
+importantly — the guarantees the contract does **not** make, so integrators do
+not assume protection that is not there.
+
+Every mitigation below is covered by a named test in `src/lib.rs`; the test name
+is given so a reviewer can go straight from a claim to the code that proves it.
+
+---
+
+## 1. Threat model
+
+**Assets.** Bidder bonds (locked at `submit_bid`), the escrowed task price
+(locked at `award_contract`), and the *integrity of the award* — that the
+task goes to the bid that actually scored best.
+
+**Adversary.** Any account that can submit transactions. It can:
+
+- read all ledger state, including every sealed commitment and every reveal,
+ the instant it lands;
+- observe pending transactions before they are included, and submit its own
+ transaction in the same or an earlier ledger (front-running);
+- create unlimited Stellar accounts (Sybil), bounded only by the XLM each one
+ must post as a bond;
+- choose to stay silent at any point in the flow.
+
+It cannot forge signatures, break SHA-256, or rewrite history.
+
+**Trust assumptions.** The task creator is trusted to fund the escrow
+off-chain; bidder-reported `reputation` is *self-declared* and not verified by
+this contract (see §4.1). Ledger timestamps are trusted to within the usual
+validator drift, which is why every window is minutes-to-hours, never seconds.
+
+---
+
+## 2. Auction timeline
+
+```text
+create_auction deadline reveal_deadline
+ │ │ │
+ ├────── bidding window ────┤ │
+ │ submit_bid accepted │ │
+ │ ├───── reveal window ──────┤
+ │ │ reveal_bid accepted │
+ │ │ ├──► reveal_bids
+ │ │ │ award_contract
+ │ │ │ (or abort_auction)
+ │ │ │
+ │ └── reveal_bids also allowed early,
+ │ but only once revealed_count == bid_count
+```
+
+Both windows are bounded by `MIN_PHASE_DURATION_SECS` (60 s) and
+`MAX_PHASE_DURATION_SECS` (30 days). A window shorter than a minute is not
+reliably reachable across ledger close times, so allowing it would hand the
+creator a censorship tool; a window longer than a month would let one call lock
+bonds effectively forever.
+
+---
+
+## 3. Attack surface and mitigations
+
+### A-1 — Front-running the finalisation (critical)
+
+**Attack.** `reveal_bids` is permissionless and computes the winner from
+whatever has been revealed *so far*. In the original design it became callable
+the instant the bidding deadline passed. An attacker could therefore, in a
+single ledger: reveal their own (deliberately poor) bid, then call
+`reveal_bids`. Selection would run over a field of exactly one — theirs — and
+every honest bidder who had not yet gotten a reveal transaction included would
+be scored out of the auction entirely. The attacker wins at their own asking
+price, having beaten no one.
+
+This is the sharpest form of the problem: it needs no capital beyond one bond,
+no Sybils, and no cryptographic work, only transaction ordering.
+
+**Mitigation.** A bounded reveal window, plus a finalisation gate:
+
+```rust
+if now < auction.reveal_deadline && auction.revealed_count < auction.bid_count {
+ return Err(Error::RevealPeriodActive);
+}
+```
+
+`reveal_bids` is refused while the window is still open *and* any sealed bid
+remains unrevealed. The attacker cannot compress the reveal window; every
+bidder gets the full window to reveal. Once `revealed_count == bid_count` there
+is nothing left to race, so the auction may be finalised early — this is a
+liveness optimisation that cannot be abused, because an attacker cannot make
+`revealed_count` reach `bid_count` while an honest bid is still sealed.
+
+*Tests*: `reveal_bids_cannot_be_front_run_while_reveals_are_outstanding`,
+`reveal_bids_finalises_early_when_every_bid_is_revealed`,
+`reveal_bids_before_deadline_fails`.
+
+### A-2 — The free "last look" option (high)
+
+**Attack.** Reveals are public as they land. A bidder who has not yet revealed
+can read every price already disclosed and only then decide whether to open
+their own bid. If non-reveal costs nothing, a sealed bid is a free option: bid
+aggressively, and if the revealed field shows the bid was a mistake, simply
+never reveal and walk away whole. Systematically exercised, this destroys the
+information content of the sealed-bid mechanism.
+
+**Mitigation.** Non-reveal is priced. `award_contract` now settles bonds
+asymmetrically: bidders who revealed are marked `refunded`, bidders who did not
+are marked `forfeited`. The `forfeited` flag is a distinct field from
+`refunded`, so an indexer can never confuse "got their bond back" with "lost
+it".
+
+The option is not eliminated — it cannot be, since no contract can compel a
+signature — it is *priced at the bond*. Creators should therefore set `bond`
+at or above the value they estimate the last-look option to be worth for their
+task size. A bond of dust re-opens this attack, and no code change can fix
+that; it is a configuration duty, called out again in §5.
+
+*Tests*: `award_contract_forfeits_bonds_of_non_revealers`,
+`award_contract_refunds_all_revealed_bidders`.
+
+### A-3 — Commitment replay (high)
+
+**Attack.** The original pre-image was `SHA-256(bidder ‖ price ‖ terms ‖ salt)`
+— bound to the bidder, but to nothing else. Two consequences:
+
+1. *Cross-auction replay.* The same bidder's commitment for price P is byte-
+ identical on every auction. Once they reveal on auction A, the plaintext of
+ their still-sealed bid on auction B is public knowledge to anyone who
+ compares the two commitments. The seal on B is gone.
+2. *Cross-deployment replay.* The same commitment is valid against any
+ deployment of this contract, so a testnet reveal unseals a mainnet bid.
+
+**Mitigation.** Domain separation. The pre-image is now:
+
+```text
+SHA-256( domain ‖ contract_id ‖ task_id ‖ bidder ‖ price ‖ terms ‖ salt )
+```
+
+with `domain = COMMITMENT_DOMAIN = "ai-net:agent_bidding:v2:bid"`. Identical
+plaintext produces a different digest on every `(deployment, auction, bidder)`
+triple, so a commitment is only ever meaningful in the one place it was built
+for.
+
+Copying a *rival's* commitment verbatim was already useless — their address is
+in the pre-image — and now costs the copier their bond, since they can never
+produce a reveal that verifies and are settled as a non-revealer under A-2.
+
+Off-chain tooling should not re-implement this layout. The contract exposes
+`commitment_of(...)`, which is literally the function `reveal_bid` verifies
+against, so the two cannot drift. **Compute it locally** — calling it against a
+public RPC endpoint hands the plaintext price to whoever operates that node,
+which defeats the seal just as thoroughly as publishing it.
+
+*Tests*: `commitment_cannot_be_replayed_across_auctions`,
+`commitment_cannot_be_replayed_by_another_bidder`,
+`commitment_of_matches_what_reveal_verifies`.
+
+### A-4 — Late reveal / re-reveal (medium)
+
+**Attack.** Two variants: revealing after the winner has been computed in order
+to displace them, and re-revealing an already-open bid at a different price.
+
+**Mitigation.** `reveal_bid` enforces `deadline <= now < reveal_deadline`
+(`BiddingPeriodActive` / `RevealPeriodEnded`), and refuses a second reveal
+(`BidAlreadyRevealed`). After `reveal_bids` the auction leaves the `Bidding`
+phase, so every further reveal fails on the phase check. Selection therefore
+runs exactly once over a set that is frozen before it runs.
+
+The re-reveal guard also protects the A-1 gate: `revealed_count` must not be
+inflatable by replaying a reveal, or an attacker could drive it to `bid_count`
+artificially and unlock early finalisation.
+
+*Tests*: `reveal_bid_after_reveal_deadline_fails`, `reveal_bid_twice_fails`,
+`late_reveal_cannot_displace_an_already_selected_winner`,
+`revealed_bid_cannot_be_reopened_at_a_new_price`, `reveal_bids_twice_fails`.
+
+### A-5 — Double commit / commitment overwrite (medium)
+
+**Attack.** If a bidder could submit a second commitment, the first would not
+be binding: they could re-commit late in the bidding window, or hold two
+commitments and open whichever the revealed field favoured.
+
+**Mitigation.** One bid per `(task_id, bidder)`. A second `submit_bid` is
+`BidAlreadyExists`, whether or not the commitment differs from the first. The
+originally stored commitment is the one that stands.
+
+*Tests*: `submit_bid_duplicate_fails`,
+`submit_bid_second_different_commitment_fails`.
+
+### A-6 — Unbounded position size (medium)
+
+**Attack.** Nothing bounded the revealed price, so a winning bid could commit
+the creator to an arbitrarily large escrow. Nothing bounded `terms`, so a
+bidder could park unbounded bytes in contract storage. Nothing bounded the
+bidder list, so `reveal_bids` and `award_contract` — both of which iterate it —
+could be pushed past the transaction resource limit, permanently wedging the
+auction and stranding every bond.
+
+**Mitigation.** Three caps:
+
+| Cap | Constant | Enforced at |
+|---|---|---|
+| Price ceiling per auction | `AuctionConfig.max_price` (`0` → `MAX_BID_PRICE`) | `reveal_bid` → `InvalidPrice` |
+| Global price ceiling | `MAX_BID_PRICE` = 10¹⁷ stroops | `create_auction` → `InvalidPrice` / `InvalidPriceRange` |
+| Bidders per auction | `MAX_BIDDERS` = 100 | `submit_bid` → `AuctionFull` |
+| `terms` length | `MAX_TERMS_LEN` = 512 bytes | `reveal_bid` → `TermsTooLong` |
+
+The price cap is enforced at *reveal*, not at commit — the contract cannot see
+a sealed price, which is the entire point of the mechanism. An over-cap bidder
+therefore burns their bond discovering their bid was inadmissible, which is the
+correct incentive.
+
+`MAX_BID_PRICE` also keeps the scoring arithmetic away from `i128` overflow:
+the largest intermediate is `SCORE_SCALE * price ≈ 10²⁰`, some 18 orders of
+magnitude below `i128::MAX`. The arithmetic is nonetheless written with
+`checked_*` throughout, returning `ArithmeticOverflow` rather than panicking, so
+a future edit that loosens the cap degrades to a clean error instead of a
+wedged auction.
+
+`get_bidders` is paginated and clamps `limit` to 50, so no view can be asked to
+materialise an unbounded vector either.
+
+*Tests*: `submit_bid_rejects_beyond_max_bidders`,
+`reveal_bid_rejects_price_above_cap`, `reveal_bid_rejects_price_below_reserve`,
+`reveal_bid_rejects_oversized_terms`,
+`create_auction_rejects_inverted_price_range`,
+`create_auction_rejects_price_above_global_ceiling`,
+`get_bidders_pages_and_clamps_limit`.
+
+### A-7 — Stranded bonds on a dead auction (medium)
+
+**Attack.** Not an attack so much as a liveness hole that an attacker can
+trigger: if nobody reveals, `reveal_bids` returns `NotEnoughBids` forever, the
+auction never leaves `Bidding`, and every bond is locked permanently. A griefer
+who bids on many auctions and never reveals imposes exactly this on every
+counterparty.
+
+**Mitigation.** `abort_auction` — callable by anyone (authenticated) once
+`now >= reveal_deadline` and `revealed_count == 0`. It moves the auction to
+`Cancelled` and releases every bond.
+
+Bonds are *refunded* here, not forfeited: with no winner there is no
+counterparty the forfeiture would compensate, so burning them would destroy
+value without deterring anything. Forfeiture in A-2 is meaningful precisely
+because there *is* a winner who was harmed by the withdrawal.
+
+The path is deliberately permissionless — restricting it to the creator would
+let a vanished creator strand other people's bonds. It is also strictly gated:
+if even one bid was revealed, `abort_auction` returns `AuctionNotAbortable` and
+the auction must be finalised through `reveal_bids`, so it can never be used to
+discard an auction someone legitimately won.
+
+*Tests*: `abort_auction_releases_bonds_when_nobody_reveals`,
+`abort_auction_rejected_while_reveal_window_open`,
+`abort_auction_rejected_when_a_bid_was_revealed`,
+`cancelled_auction_accepts_no_further_calls`.
+
+### A-8 — Unauthenticated state mutation (medium)
+
+**Attack.** `reveal_bids` and `award_contract` originally took no caller and
+performed no `require_auth()`, contrary to the repository invariant that every
+on-chain mutation authenticates. `award_contract` in particular could be
+triggered by a complete stranger, fixing the escrow terms between two parties
+neither of whom asked for it at that moment.
+
+**Mitigation.** Both now take a `caller: Address` and call
+`caller.require_auth()`.
+
+- `reveal_bids` stays *permissionless but attributable*: any authenticated
+ caller may finalise, because the outcome is a pure function of frozen on-chain
+ state, so who calls it cannot change what it decides.
+- `award_contract` additionally requires `caller == creator || caller == winner`
+ — the two parties the escrow actually binds. Anyone else gets `Unauthorized`.
+
+*Tests*: `award_contract_rejects_unrelated_caller`, `award_contract_twice_fails`.
+
+### A-9 — Terminal-phase re-entry (low)
+
+**Attack.** Calling into an auction that has already settled, hoping a stale
+code path re-runs a refund or re-creates an escrow.
+
+**Mitigation.** `require_live` rejects any mutating call on an `Awarded` or
+`Cancelled` auction with `AuctionClosed`; `award_contract` guards `Awarded`
+explicitly with `AlreadyAwarded` and re-checks `escrow_created`. Bond settlement
+skips any bid already marked `refunded` or `forfeited`, so even a hypothetical
+double-settlement cannot double-count.
+
+*Tests*: `cancelled_auction_accepts_no_further_calls`,
+`award_contract_twice_fails`.
+
+---
+
+## 4. Residual risk — what this contract does *not* defend against
+
+These are real limitations. They are listed so integrators plan around them
+rather than discover them.
+
+### 4.1 Reputation is self-declared
+
+`submit_bid` takes `reputation` as a caller-supplied `u32` and validates only
+that it is in `[0, 100]`. Nothing stops every bidder from claiming 100. Since
+reputation carries 40 % of the composite score, a marketplace that cares about
+the score being meaningful must source reputation from an attested oracle or the
+`agent_registry` contract rather than from the bidder. **Until then, treat the
+score as price-driven with an advisory reputation tiebreak.**
+
+### 4.2 Reveals are public as they land
+
+Bids revealed earlier in the window are visible to bidders who have not revealed
+yet. Their commitments are already fixed, so they cannot *change* a bid — but
+they retain the walk-away option that A-2 prices rather than removes. Only a
+scheme with encrypted reveals or threshold decryption removes it outright; that
+is out of scope here.
+
+### 4.3 Sybil bidding
+
+Bond cost is the only Sybil resistance. An adversary willing to post `N × bond`
+can occupy N of the `MAX_BIDDERS` slots and crowd out honest bidders. Bond
+sizing is again the lever.
+
+### 4.4 Bonds and escrow are state, not custody
+
+`SealedBid.bond` and `Escrow.amount` model the *accounting* of locked value.
+This contract does not itself move XLM or invoke a token contract; an escrow
+contract or off-chain relayer must honour the flags. **A `refunded` /
+`forfeited` / `released` flag is an instruction to that component, not proof
+that value moved.** Any integration must settle real funds against these flags,
+or the incentives described above do not exist economically.
+
+### 4.5 Timestamp granularity
+
+All windows use `env.ledger().timestamp()`, which validators can nudge within a
+small drift. `MIN_PHASE_DURATION_SECS` of 60 s keeps that drift immaterial
+relative to window length. Do not build a workflow that depends on second-level
+precision at a window boundary.
+
+---
+
+## 5. Guidance for creators
+
+1. **Size the bond against the last-look option (§A-2), not against spam.** The
+ bond is the entire price of walking away after seeing the field. A token bond
+ restores the free option that A-2 exists to remove.
+2. **Set `max_price` deliberately.** Leaving it `0` normalises to `MAX_BID_PRICE`
+ (10¹⁰ XLM) — technically safe for the arithmetic, but no real cap. Set it to
+ the largest position you are prepared to escrow.
+3. **Give the reveal window room.** It must comfortably exceed the time an agent
+ needs to notice the bidding deadline and land a transaction. An hour is the
+ default for a reason.
+4. **Compute commitments locally** with `commitment_of` semantics — never by
+ invoking the view against a third-party RPC endpoint (§A-3).
+5. **Wire `forfeited` into settlement.** If the settlement component treats
+ `forfeited` as `refunded`, A-2's mitigation silently disappears (§4.4).
+
+---
+
+## 6. Error-code reference for the hardening
+
+| Code | Variant | Raised when |
+|---|---|---|
+| 18 | `RevealPeriodEnded` | `reveal_bid` after `reveal_deadline` |
+| 19 | `RevealPeriodActive` | `reveal_bids`/`abort_auction` while reveals are still possible |
+| 20 | `AuctionFull` | `submit_bid` beyond `MAX_BIDDERS` |
+| 21 | `InvalidDuration` | phase duration outside `[MIN, MAX]_PHASE_DURATION_SECS` |
+| 22 | `TermsTooLong` | revealed `terms` exceeds `MAX_TERMS_LEN` |
+| 23 | `InvalidPriceRange` | `max_price < reserve_price`, or above `MAX_BID_PRICE` |
+| 24 | `AuctionClosed` | any mutation on an `Awarded`/`Cancelled` auction |
+| 25 | `AuctionNotAbortable` | `abort_auction` when a bid was revealed |
+| 26 | `ArithmeticOverflow` | checked arithmetic failed during scoring |
+
+Codes `1..=17` are unchanged and keep their original meaning. Per the contract's
+own rule, no existing variant was renumbered.