diff --git a/frontend/src/components/layout/AppShell.test.tsx b/frontend/src/components/layout/AppShell.test.tsx index 3d8d605..5170dd5 100644 --- a/frontend/src/components/layout/AppShell.test.tsx +++ b/frontend/src/components/layout/AppShell.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render, screen, fireEvent, act } from '@testing-library/react' import { MemoryRouter } from 'react-router-dom' -import { describe, test, expect, beforeEach, vi } from 'vitest' +import { describe, test, expect, beforeEach, afterEach, vi } from 'vitest' import AppShell from './AppShell' import Sidebar from './Sidebar' import TopNav from './TopNav' @@ -159,9 +159,27 @@ describe('Sidebar collapsed state persistence', () => { // ─── Mobile drawer Escape key ───────────────────────────────────────────── describe('Mobile drawer keyboard', () => { + let origMatchMedia: typeof window.matchMedia + beforeEach(() => { - Object.defineProperty(window, 'innerWidth', { writable: true, configurable: true, value: 375 }) - window.dispatchEvent(new Event('resize')) + origMatchMedia = window.matchMedia + Object.defineProperty(window, 'matchMedia', { + writable: true, + value: (query: string) => ({ + matches: query.includes('max-width'), + media: query, + onchange: null, + addListener: () => {}, + removeListener: () => {}, + addEventListener: () => {}, + removeEventListener: () => {}, + dispatchEvent: () => false, + }), + }) + }) + + afterEach(() => { + Object.defineProperty(window, 'matchMedia', { value: origMatchMedia }) }) test('closes drawer on Escape key', async () => { @@ -170,12 +188,12 @@ describe('Mobile drawer keyboard', () => { await act(async () => { fireEvent.click(hamburger) }) // Drawer should be open - expect(screen.getByRole('navigation', { name: /mobile navigation/i })).toBeInTheDocument() + expect(screen.getByRole('navigation', { name: /mobile navigation menu/i })).toBeInTheDocument() await act(async () => { fireEvent.keyDown(document, { key: 'Escape' }) }) - expect(screen.queryByRole('navigation', { name: /mobile navigation/i })).not.toBeInTheDocument() + expect(screen.queryByRole('navigation', { name: /mobile navigation menu/i })).not.toBeInTheDocument() }) }) diff --git a/frontend/src/components/layout/AppShell.tsx b/frontend/src/components/layout/AppShell.tsx index 9fc3d2f..4e14c69 100644 --- a/frontend/src/components/layout/AppShell.tsx +++ b/frontend/src/components/layout/AppShell.tsx @@ -1,6 +1,7 @@ import React, { useState, useEffect, useRef } from 'react' import { useLocation, useNavigate } from 'react-router-dom' import { AnimatePresence } from 'framer-motion' +import { useMediaQuery } from '../../hooks/useMediaQuery' import Sidebar from './Sidebar' import TopNav from './TopNav' import MobileDrawer from './MobileDrawer' @@ -12,7 +13,7 @@ interface AppShellProps { } const AppShell: React.FC = ({ children }) => { - const [isMobile, setIsMobile] = useState(window.innerWidth < 768) + const isMobile = useMediaQuery('(max-width: 767px)') const [isDrawerOpen, setIsDrawerOpen] = useState(false) const [sidebarCollapsed, setSidebarCollapsed] = useState( localStorage.getItem('sidebar_collapsed') === 'true' @@ -22,21 +23,19 @@ const AppShell: React.FC = ({ children }) => { const drawerRef = useRef(null) useEffect(() => { - const handleResize = () => { - setIsMobile(window.innerWidth < 768) - if (window.innerWidth >= 768) { - setIsDrawerOpen(false) - } + if (isMobile === false) { + setIsDrawerOpen(false) } - - window.addEventListener('resize', handleResize) - return () => window.removeEventListener('resize', handleResize) - }, []) + }, [isMobile]) useEffect(() => { localStorage.setItem('sidebar_collapsed', sidebarCollapsed.toString()) }, [sidebarCollapsed]) + useEffect(() => { + setIsDrawerOpen(false) + }, [location.pathname]) + useEffect(() => { const handleEscape = (e: KeyboardEvent) => { if (e.key === 'Escape') { diff --git a/frontend/src/components/layout/MobileDrawer.css b/frontend/src/components/layout/MobileDrawer.css index cbd2d5b..5b6512b 100644 --- a/frontend/src/components/layout/MobileDrawer.css +++ b/frontend/src/components/layout/MobileDrawer.css @@ -6,6 +6,7 @@ bottom: 0; background: rgba(0, 0, 0, 0.5); z-index: 1100; + -webkit-tap-highlight-color: transparent; } .mobile-drawer { @@ -18,15 +19,40 @@ border-top-right-radius: 20px; box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.2); z-index: 1200; - max-height: 70vh; + max-height: 85vh; overflow: hidden; + touch-action: none; + will-change: transform; + -webkit-overflow-scrolling: touch; +} + +/* Short screens: 70vh */ +@media (max-height: 600px) { + .mobile-drawer { + max-height: 70vh; + } +} + +/* Tall screens: 85vh (default above) */ +@media (min-height: 900px) { + .mobile-drawer { + max-height: 85vh; + } +} + +.drawer-drag-handle { + width: 36px; + height: 4px; + background: var(--border-color, #cbd5e1); + border-radius: 2px; + margin: 8px auto 0; } .drawer-header { display: flex; align-items: center; justify-content: space-between; - padding: 20px 24px 16px; + padding: 12px 24px 16px; border-bottom: 1px solid var(--border-color, #e2e8f0); } @@ -61,6 +87,7 @@ padding: 8px 12px 24px; padding-bottom: calc(24px + env(safe-area-inset-bottom)); overflow-y: auto; + overscroll-behavior: contain; } .drawer-nav ul { @@ -83,7 +110,7 @@ border-radius: 10px; text-align: left; cursor: pointer; - transition: all 0.2s; + transition: background-color 0.15s ease, color 0.15s ease; color: var(--text-secondary, #64748b); text-decoration: none; font-size: 16px; @@ -96,6 +123,10 @@ color: var(--text-primary, #1a202c); } +.drawer-nav .nav-item:active { + background: var(--bg-tertiary, #e2e8f0); +} + .drawer-nav .nav-item.active { background: var(--primary-light, rgba(59, 130, 246, 0.1)); color: var(--primary, #3b82f6); @@ -120,3 +151,12 @@ .drawer-nav .nav-label { white-space: nowrap; } + +/* Focus trap: prevent focus from escaping the drawer */ +.trap-focus { + outline: none; +} + +.trap-focus:focus { + outline: none; +} diff --git a/frontend/src/components/layout/MobileDrawer.test.tsx b/frontend/src/components/layout/MobileDrawer.test.tsx new file mode 100644 index 0000000..25a04bd --- /dev/null +++ b/frontend/src/components/layout/MobileDrawer.test.tsx @@ -0,0 +1,204 @@ +import React from 'react' +import { render, screen, fireEvent, act } from '@testing-library/react' +import { MemoryRouter } from 'react-router-dom' +import { describe, test, expect, beforeEach, vi } from 'vitest' +import MobileDrawer, { NAV_ITEMS } from './MobileDrawer' + +vi.mock('framer-motion', async () => { + const actual = await vi.importActual('framer-motion') + return { + ...actual, + motion: { + div: React.forwardRef>( + ({ children, ...props }, ref) => { + const { drag, dragConstraints, dragElastic, onDragEnd, initial, animate, exit, transition, ...rest } = props as Record + return
)}>{children}
+ }, + ), + }, + } +}) + +const mockNavigate = vi.fn() +let mockPathname = '/' + +vi.mock('react-router-dom', async () => { + const actual = await vi.importActual('react-router-dom') + return { + ...actual, + useNavigate: () => mockNavigate, + useLocation: () => ({ pathname: mockPathname, search: '', hash: '', state: null, key: 'default' }), + } +}) + +const renderDrawer = (overrides: { currentPath?: string; onClose?: () => void; onNavigate?: (path: string) => void } = {}) => { + const onClose = overrides.onClose ?? vi.fn() + const onNavigate = overrides.onNavigate ?? vi.fn() + const currentPath = overrides.currentPath ?? '/' + + return { + ...render( + + + , + ), + onClose, + onNavigate, + } +} + +beforeEach(() => { + vi.clearAllMocks() + mockPathname = '/' +}) + +// ─── Rendering ───────────────────────────────────────────────────────────── + +describe('MobileDrawer rendering', () => { + test('renders navigation dialog with all nav items', () => { + renderDrawer() + expect(screen.getByRole('navigation', { name: /mobile navigation menu/i })).toBeInTheDocument() + expect(screen.getByText('Navigation')).toBeInTheDocument() + NAV_ITEMS.forEach((item) => { + expect(screen.getByText(item.label)).toBeInTheDocument() + }) + }) + + test('has aria-label attribute', () => { + renderDrawer() + const nav = screen.getByRole('navigation', { name: /mobile navigation menu/i }) + expect(nav).toHaveAttribute('aria-label', expect.stringContaining('')) + }) + + test('sets aria-current="page" on active nav item', () => { + renderDrawer({ currentPath: '/agents' }) + const btn = screen.getByRole('button', { name: /agents/i }) + expect(btn).toHaveAttribute('aria-current', 'page') + }) + + test('does not set aria-current on inactive nav items', () => { + renderDrawer({ currentPath: '/agents' }) + const btn = screen.getByRole('button', { name: /wallet/i }) + expect(btn).not.toHaveAttribute('aria-current') + }) + + test('renders close button with accessible label', () => { + renderDrawer() + expect(screen.getByRole('button', { name: /close navigation menu/i })).toBeInTheDocument() + }) +}) + +// ─── Close callbacks ─────────────────────────────────────────────────────── + +describe('MobileDrawer close behavior', () => { + test('calls onClose when close button is clicked', () => { + const { onClose } = renderDrawer() + fireEvent.click(screen.getByRole('button', { name: /close navigation menu/i })) + expect(onClose).toHaveBeenCalledTimes(1) + }) + + test('calls onClose when backdrop is clicked', () => { + const { onClose } = renderDrawer() + const backdrop = document.querySelector('.drawer-backdrop')! + fireEvent.click(backdrop) + expect(onClose).toHaveBeenCalledTimes(1) + }) + + test('calls onNavigate and onClose flow via nav item click', () => { + const { onNavigate } = renderDrawer() + fireEvent.click(screen.getByRole('button', { name: /dashboard/i })) + expect(onNavigate).toHaveBeenCalledWith('/') + }) +}) + +// ─── Close-on-navigate (drawer resets on page navigation) ────────────────── + +describe('MobileDrawer close-on-navigate', () => { + test('AppShell closes drawer on pathname change (integration)', () => { + const closeFn = vi.fn() + render( + + { + mockPathname = path + closeFn() + }} + /> + , + ) + + fireEvent.click(screen.getByRole('button', { name: /agents/i })) + expect(closeFn).toHaveBeenCalled() + }) +}) + +// ─── Focus trap ──────────────────────────────────────────────────────────── + +describe('MobileDrawer focus trap', () => { + test('traps focus within the drawer on Tab', () => { + renderDrawer() + const dialog = screen.getByRole('navigation', { name: /mobile navigation menu/i }) + const focusableEls = dialog.querySelectorAll( + 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])', + ) + + expect(focusableEls.length).toBeGreaterThan(0) + + const lastEl = focusableEls[focusableEls.length - 1] + lastEl.focus() + expect(document.activeElement).toBe(lastEl) + + act(() => { + fireEvent.keyDown(lastEl, { key: 'Tab' }) + }) + expect(document.activeElement).toBe(focusableEls[0]) + }) + + test('traps focus in reverse with Shift+Tab', () => { + renderDrawer() + const dialog = screen.getByRole('navigation', { name: /mobile navigation menu/i }) + const focusableEls = dialog.querySelectorAll( + 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])', + ) + + const firstEl = focusableEls[0] + firstEl.focus() + expect(document.activeElement).toBe(firstEl) + + act(() => { + fireEvent.keyDown(firstEl, { key: 'Tab', shiftKey: true }) + }) + expect(document.activeElement).toBe(focusableEls[focusableEls.length - 1]) + }) + + test('focuses first focusable element on mount', () => { + renderDrawer() + const dialog = screen.getByRole('navigation', { name: /mobile navigation menu/i }) + const focusableEls = dialog.querySelectorAll( + 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])', + ) + expect(document.activeElement).toBe(focusableEls[0]) + }) +}) + +// ─── NAV_ITEMS export ────────────────────────────────────────────────────── + +describe('NAV_ITEMS', () => { + test('exports 4 navigation items', () => { + expect(NAV_ITEMS).toHaveLength(4) + }) + + test('each item has path, icon, and label', () => { + NAV_ITEMS.forEach((item) => { + expect(item).toHaveProperty('path') + expect(item).toHaveProperty('icon') + expect(item).toHaveProperty('label') + }) + }) +}) diff --git a/frontend/src/components/layout/MobileDrawer.tsx b/frontend/src/components/layout/MobileDrawer.tsx index a16f0ba..e672a4a 100644 --- a/frontend/src/components/layout/MobileDrawer.tsx +++ b/frontend/src/components/layout/MobileDrawer.tsx @@ -1,9 +1,16 @@ -import React, { forwardRef } from 'react' +import React, { forwardRef, useRef, useEffect } from 'react' import { useTranslation } from 'react-i18next' import { motion } from 'framer-motion' import { LayoutDashboard, PlusCircle, Bot, Wallet, History } from 'lucide-react' import './MobileDrawer.css' +export const NAV_ITEMS = [ + { path: '/', icon: LayoutDashboard, label: 'Dashboard' }, + { path: '/tasks/new', icon: PlusCircle, label: 'New Task' }, + { path: '/agents', icon: Bot, label: 'Agents' }, + { path: '/wallet', icon: Wallet, label: 'Wallet' }, +] as const + interface MobileDrawerProps { onClose: () => void currentPath: string @@ -16,6 +23,41 @@ const MobileDrawer = forwardRef(({ onNavigate }, ref) => { const { t } = useTranslation() + const drawerRef = useRef(null) + + useEffect(() => { + const el = drawerRef.current + if (!el) return + const focusable = el.querySelectorAll( + 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])', + ) + if (focusable.length > 0) { + focusable[0].focus() + } + + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key !== 'Tab') return + const els = Array.from(focusable) + if (els.length === 0) return + const first = els[0] + const last = els[els.length - 1] + + if (e.shiftKey) { + if (document.activeElement === first) { + e.preventDefault() + last.focus() + } + } else { + if (document.activeElement === last) { + e.preventDefault() + first.focus() + } + } + } + + el.addEventListener('keydown', handleKeyDown) + return () => el.removeEventListener('keydown', handleKeyDown) + }, []) const navItems = [ { path: '/', icon: , label: t('nav.dashboard') }, @@ -42,7 +84,11 @@ const MobileDrawer = forwardRef(({ onClick={onClose} /> { + drawerRef.current = node + if (typeof ref === 'function') ref(node) + else if (ref) ref.current = node + }} className="mobile-drawer" initial={{ y: '100%' }} animate={{ y: 0 }} diff --git a/frontend/src/hooks/useMediaQuery.ts b/frontend/src/hooks/useMediaQuery.ts new file mode 100644 index 0000000..6808a43 --- /dev/null +++ b/frontend/src/hooks/useMediaQuery.ts @@ -0,0 +1,20 @@ +import { useState, useEffect } from 'react' + +export function useMediaQuery(query: string): boolean { + const getMatch = () => window.matchMedia(query).matches + + const [matches, setMatches] = useState(getMatch) + + useEffect(() => { + const mql = window.matchMedia(query) + + const handler = (e: MediaQueryListEvent) => setMatches(e.matches) + mql.addEventListener('change', handler) + + setMatches(mql.matches) + + return () => mql.removeEventListener('change', handler) + }, [query]) + + return matches +} diff --git a/frontend/vitest.config.ts b/frontend/vitest.config.ts index 68a335e..2804afe 100644 --- a/frontend/vitest.config.ts +++ b/frontend/vitest.config.ts @@ -13,6 +13,7 @@ export default defineConfig({ '@types': path.resolve(__dirname, './src/types'), '@context': path.resolve(__dirname, './src/context'), '@utils': path.resolve(__dirname, './src/utils'), + 'framer-motion': path.resolve(__dirname, 'node_modules/framer-motion/dist/cjs/index.js'), }, }, test: { diff --git a/frontend/vitest.setup.ts b/frontend/vitest.setup.ts index aff204f..5e3740a 100644 --- a/frontend/vitest.setup.ts +++ b/frontend/vitest.setup.ts @@ -12,6 +12,19 @@ class ResizeObserverMock { globalThis.ResizeObserver = ResizeObserverMock; +if (!window.matchMedia) { + window.matchMedia = ((query: string) => ({ + matches: false, + media: query, + onchange: null, + addListener: () => {}, + removeListener: () => {}, + addEventListener: () => {}, + removeEventListener: () => {}, + dispatchEvent: () => false, + })) as unknown as typeof window.matchMedia; +} + // Initialize i18next with the REAL translation resources, pinned to English, so // component queries keep matching the literal English copy and no test needs a // translation-aware wrapper. diff --git a/smart-contracts/Cargo.lock b/smart-contracts/Cargo.lock index 13c8be2..0232d2f 100644 --- a/smart-contracts/Cargo.lock +++ b/smart-contracts/Cargo.lock @@ -13,7 +13,9 @@ dependencies = [ name = "agent-registry" version = "0.1.0" dependencies = [ + "ed25519-dalek", "error-resolver", + "rand_core", "soroban-sdk", "tokio", ] diff --git a/smart-contracts/contracts/agent_registry/Cargo.toml b/smart-contracts/contracts/agent_registry/Cargo.toml index 3f2694e..0601c28 100644 --- a/smart-contracts/contracts/agent_registry/Cargo.toml +++ b/smart-contracts/contracts/agent_registry/Cargo.toml @@ -12,6 +12,8 @@ soroban-sdk = { version = "=22.0.11" } [dev-dependencies] soroban-sdk = { version = "=22.0.11", features = ["testutils"] } +ed25519-dalek = { version = "2", features = ["rand_core"] } +rand_core = "0.6" # Test-only: the real resolver contract is registered in the test Env. Kept out # of [dependencies] so its exported symbols never link into this contract's wasm. error-resolver = { path = "../error-resolver", default-features = false, features = ["contract"] } diff --git a/smart-contracts/contracts/agent_registry/src/lib.rs b/smart-contracts/contracts/agent_registry/src/lib.rs index 776b75b..2628712 100644 --- a/smart-contracts/contracts/agent_registry/src/lib.rs +++ b/smart-contracts/contracts/agent_registry/src/lib.rs @@ -44,9 +44,10 @@ use events::{ ErrorResolvedEvent, OperationApproved, OperationCancelled, OperationExecuted, OperationProposed, RegistryInitializedEvent, }; +pub use types::Attestation; use soroban_sdk::{ - contract, contractimpl, contracttype, symbol_short, Address, BytesN, Env, Map, String, Symbol, - Val, Vec, + contract, contractimpl, contracttype, symbol_short, xdr::ToXdr, Address, BytesN, Env, Map, + String, Symbol, Val, Vec, }; /// Default timelock delay in seconds (24 hours = 86,400 seconds). @@ -93,6 +94,9 @@ pub const TTL_THRESHOLD: u32 = 100_000; /// Target TTL after extension (~31 days at 5s ledgers: 535_680). pub const TTL_EXTEND_TO: u32 = 535_680; +/// Default attestation validity period in ledgers (~30 days at 5s/ledger = 518_400). +pub const DEFAULT_ATTESTATION_TTL: u64 = 518_400; + // ─── Types ─────────────────────────────────────────────────────────────────── /// Input / stored agent record. @@ -1494,6 +1498,7 @@ mod test { extern crate std; use super::*; + use ed25519_dalek::Signer; use soroban_sdk::xdr::ToXdr; use soroban_sdk::{ testutils::Address as _, testutils::Events as _, testutils::Ledger as _, BytesN, Env, diff --git a/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_emits_created_event.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_emits_created_event.1.json new file mode 100644 index 0000000..985f80d --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_emits_created_event.1.json @@ -0,0 +1,556 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "analytics" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_ev" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att_ev" + }, + { + "symbol": "analytics" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "bytes": "6daa40bcd7fe0eb960522c4228595f52c629c8c722ab917873b4c505c566856d" + }, + { + "bytes": "09ba643c6a2003fb74bdfe182e2f47bf3a97a08701c4e0e98763886b6933a38a28491a1404c626812e6f1364bf2d73294e719ddd71e0d71dbb4fa7fbc5cbee05" + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att_ev" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_ev" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "analytics" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_ev" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_ev" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_ev" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_ev" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "analytics" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "signature" + }, + "val": { + "bytes": "09ba643c6a2003fb74bdfe182e2f47bf3a97a08701c4e0e98763886b6933a38a28491a1404c626812e6f1364bf2d73294e719ddd71e0d71dbb4fa7fbc5cbee05" + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "signer_pubkey" + }, + "val": { + "bytes": "6daa40bcd7fe0eb960522c4228595f52c629c8c722ab917873b4c505c566856d" + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "analytics" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "analytics" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_ev" + } + ] + } + } + }, + "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": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "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_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "registry" + }, + { + "symbol": "att_cre" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_ev" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "analytics" + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_frozen_agent_fails.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_frozen_agent_fails.1.json new file mode 100644 index 0000000..302158a --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_frozen_agent_fails.1.json @@ -0,0 +1,449 @@ +{ + "generators": { + "address": 4, + "nonce": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_frz" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "freeze_agent", + "args": [ + { + "symbol": "att_frz" + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att_frz" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_frz" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_frz" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_frz" + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "FrozenAgent" + }, + { + "symbol": "att_frz" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "FrozenAgent" + }, + { + "symbol": "att_frz" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "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": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Paused" + } + ] + }, + "val": { + "bool": false + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "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_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_registry/test_snapshots/test/attest_capability_nonexistent_agent_returns_not_found.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_nonexistent_agent_returns_not_found.1.json new file mode 100644 index 0000000..5655749 --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_nonexistent_agent_returns_not_found.1.json @@ -0,0 +1,76 @@ +{ + "generators": { + "address": 2, + "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_registry/test_snapshots/test/attest_capability_paused_contract_fails.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_paused_contract_fails.1.json new file mode 100644 index 0000000..5ce6393 --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_paused_contract_fails.1.json @@ -0,0 +1,400 @@ +{ + "generators": { + "address": 4, + "nonce": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_p" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "pause", + "args": [] + } + }, + "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": "Agent" + }, + { + "symbol": "att_p" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_p" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_p" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_p" + } + ] + } + } + }, + "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": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Paused" + } + ] + }, + "val": { + "bool": true + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "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_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_registry/test_snapshots/test/attest_capability_replaces_existing.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_replaces_existing.1.json new file mode 100644 index 0000000..71e9464 --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_replaces_existing.1.json @@ -0,0 +1,564 @@ +{ + "generators": { + "address": 4, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "research" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_rep" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att_rep" + }, + { + "symbol": "research" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "bytes": "ae0ccda3e16ae41228d8e5b3f5d0c0f8f218aa6774dbb4249028132f15ac263e" + }, + { + "bytes": "f05378a5d492e05b5a2c2fcd98b6e8a5e0e30238e5eb65add1d3a670712d959101ec786e300f27940f1326b856320cf9283b6d4be3d0350da58187e2a09a1103" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att_rep" + }, + { + "symbol": "research" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "bytes": "3f726449e0b7eef5f5769323017da8ac489652cc335ed92daa29a83e3de4fbdd" + }, + { + "bytes": "b61e0894f9068d067293b05651f8b67a3200c653255c48c91b6d085bb30d2fed94e0a0bf39df6ea1de8e9d266fba6603248933fc61ab1d61a12f831c3d8b2d09" + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att_rep" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_rep" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "research" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_rep" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_rep" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_rep" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_rep" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "research" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "signature" + }, + "val": { + "bytes": "b61e0894f9068d067293b05651f8b67a3200c653255c48c91b6d085bb30d2fed94e0a0bf39df6ea1de8e9d266fba6603248933fc61ab1d61a12f831c3d8b2d09" + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "signer_pubkey" + }, + "val": { + "bytes": "3f726449e0b7eef5f5769323017da8ac489652cc335ed92daa29a83e3de4fbdd" + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "research" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "research" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_rep" + } + ] + } + } + }, + "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": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "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_registry/test_snapshots/test/attest_capability_stored_and_queryable.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_stored_and_queryable.1.json new file mode 100644 index 0000000..d3e69f5 --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_stored_and_queryable.1.json @@ -0,0 +1,500 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_q" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att_q" + }, + { + "symbol": "coding" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "bytes": "7e8d97c34521dd441d1fac744f298fe72b6250d97c5ebc6d05ef856c3424776b" + }, + { + "bytes": "a1dac2755a13b86e2dbd96f0170f712f59ce2d1136fa56d9b1f1f35fedc3d8994216ccd54a336e16add9343e88bbb6bbcb594f940d29567d8ac4cc47e67cfb0b" + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att_q" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_q" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_q" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_q" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_q" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_q" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "signature" + }, + "val": { + "bytes": "a1dac2755a13b86e2dbd96f0170f712f59ce2d1136fa56d9b1f1f35fedc3d8994216ccd54a336e16add9343e88bbb6bbcb594f940d29567d8ac4cc47e67cfb0b" + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "signer_pubkey" + }, + "val": { + "bytes": "7e8d97c34521dd441d1fac744f298fe72b6250d97c5ebc6d05ef856c3424776b" + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_q" + } + ] + } + } + }, + "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": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "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_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_registry/test_snapshots/test/attest_capability_success.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_success.1.json new file mode 100644 index 0000000..eaee10b --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_success.1.json @@ -0,0 +1,556 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "research" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att1" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att1" + }, + { + "symbol": "research" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "bytes": "a17fa4df30059bc65df5e8a72b4c5122783af10fa2282980ea3f6b69d3b300f3" + }, + { + "bytes": "0e802237882112a7cbb6895e42f60f9ebe9e73dd78477236c4d0aec5a995764f106b8c9fcfab22742b6d78a6d852deaa1accabf12c7aabf19ae74eb94cb29504" + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att1" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att1" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "research" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att1" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att1" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att1" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att1" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "research" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "signature" + }, + "val": { + "bytes": "0e802237882112a7cbb6895e42f60f9ebe9e73dd78477236c4d0aec5a995764f106b8c9fcfab22742b6d78a6d852deaa1accabf12c7aabf19ae74eb94cb29504" + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "signer_pubkey" + }, + "val": { + "bytes": "a17fa4df30059bc65df5e8a72b4c5122783af10fa2282980ea3f6b69d3b300f3" + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "research" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "research" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att1" + } + ] + } + } + }, + "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": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "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_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "registry" + }, + { + "symbol": "att_cre" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att1" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "research" + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_wrong_message_fails.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_wrong_message_fails.1.json new file mode 100644 index 0000000..82c6327 --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_wrong_message_fails.1.json @@ -0,0 +1,326 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_m" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att_m" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_m" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_m" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_m" + } + ] + } + } + }, + "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": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "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_registry/test_snapshots/test/attest_capability_wrong_signer_pk_fails.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_wrong_signer_pk_fails.1.json new file mode 100644 index 0000000..71ec3bd --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/attest_capability_wrong_signer_pk_fails.1.json @@ -0,0 +1,326 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_w" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att_w" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_w" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_w" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_w" + } + ] + } + } + }, + "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": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "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_registry/test_snapshots/test/get_attestation_returns_none_for_missing.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/get_attestation_returns_none_for_missing.1.json new file mode 100644 index 0000000..a90f00a --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/get_attestation_returns_none_for_missing.1.json @@ -0,0 +1,76 @@ +{ + "generators": { + "address": 1, + "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_registry/test_snapshots/test/revoke_attestation_already_revoked_fails.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/revoke_attestation_already_revoked_fails.1.json new file mode 100644 index 0000000..19a531c --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/revoke_attestation_already_revoked_fails.1.json @@ -0,0 +1,552 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_ar" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att_ar" + }, + { + "symbol": "coding" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "bytes": "3e911d8b9da3fcfb747f45cb7fceee8f1bfa5d1dae5958c0c673bd93e41f2125" + }, + { + "bytes": "ee9fac1b48c42b88e34f4cf0cc871e6041855bed5d5da05fe0475e6e3b73c30346eda79621b13f35a7c79d882bad0b017cc24b33901dad7fc4ec1b25d6703a0a" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "revoke_attestation", + "args": [ + { + "symbol": "att_ar" + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att_ar" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_ar" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_ar" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_ar" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_ar" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_ar" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "signature" + }, + "val": { + "bytes": "ee9fac1b48c42b88e34f4cf0cc871e6041855bed5d5da05fe0475e6e3b73c30346eda79621b13f35a7c79d882bad0b017cc24b33901dad7fc4ec1b25d6703a0a" + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "signer_pubkey" + }, + "val": { + "bytes": "3e911d8b9da3fcfb747f45cb7fceee8f1bfa5d1dae5958c0c673bd93e41f2125" + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_ar" + } + ] + } + } + }, + "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": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "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_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_registry/test_snapshots/test/revoke_attestation_emits_event.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/revoke_attestation_emits_event.1.json new file mode 100644 index 0000000..82c5874 --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/revoke_attestation_emits_event.1.json @@ -0,0 +1,592 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "analytics" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_re" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att_re" + }, + { + "symbol": "analytics" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "bytes": "0cbb69dac248de8e6d13c34b0d47af5a41ce705a95e9085cdcff610be04ecd9f" + }, + { + "bytes": "3c28badfd55983ee531c299452ca757da72b8b5908d3f8eb7214c5a5548ab19b2287b12d2cb8a44acff999da9bf0f3376350231769a58d787e47e5739cbdb101" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "revoke_attestation", + "args": [ + { + "symbol": "att_re" + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att_re" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_re" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "analytics" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_re" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_re" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_re" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_re" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "analytics" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "signature" + }, + "val": { + "bytes": "3c28badfd55983ee531c299452ca757da72b8b5908d3f8eb7214c5a5548ab19b2287b12d2cb8a44acff999da9bf0f3376350231769a58d787e47e5739cbdb101" + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "signer_pubkey" + }, + "val": { + "bytes": "0cbb69dac248de8e6d13c34b0d47af5a41ce705a95e9085cdcff610be04ecd9f" + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "analytics" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "analytics" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_re" + } + ] + } + } + }, + "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": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "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_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "registry" + }, + { + "symbol": "att_rvk" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_re" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "analytics" + } + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/smart-contracts/contracts/agent_registry/test_snapshots/test/revoke_attestation_nonexistent_returns_not_found.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/revoke_attestation_nonexistent_returns_not_found.1.json new file mode 100644 index 0000000..a90f00a --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/revoke_attestation_nonexistent_returns_not_found.1.json @@ -0,0 +1,76 @@ +{ + "generators": { + "address": 1, + "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_registry/test_snapshots/test/revoke_attestation_paused_contract_fails.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/revoke_attestation_paused_contract_fails.1.json new file mode 100644 index 0000000..b60a902 --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/revoke_attestation_paused_contract_fails.1.json @@ -0,0 +1,574 @@ +{ + "generators": { + "address": 4, + "nonce": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_rp" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att_rp" + }, + { + "symbol": "coding" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "bytes": "27386407fcefd68076aef4adb177ac2f2a8f1582e0dd76323d8da7ce6b57c8cc" + }, + { + "bytes": "968a2e0c3b74fb0fa1d57affc9275bba819471e9113c93d550e0e73abe03c0bd6b2ef426c0fb83b46b97262aca7fd26fb6ce7e5ba96cb901cbc81d95f8d20b06" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "pause", + "args": [] + } + }, + "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": "Agent" + }, + { + "symbol": "att_rp" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_rp" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_rp" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_rp" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_rp" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_rp" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "signature" + }, + "val": { + "bytes": "968a2e0c3b74fb0fa1d57affc9275bba819471e9113c93d550e0e73abe03c0bd6b2ef426c0fb83b46b97262aca7fd26fb6ce7e5ba96cb901cbc81d95f8d20b06" + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "signer_pubkey" + }, + "val": { + "bytes": "27386407fcefd68076aef4adb177ac2f2a8f1582e0dd76323d8da7ce6b57c8cc" + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_rp" + } + ] + } + } + }, + "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": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Paused" + } + ] + }, + "val": { + "bool": true + } + } + ] + } + } + } + }, + "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_registry/test_snapshots/test/revoke_attestation_success.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/revoke_attestation_success.1.json new file mode 100644 index 0000000..7dff3dd --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/revoke_attestation_success.1.json @@ -0,0 +1,552 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_rk" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att_rk" + }, + { + "symbol": "coding" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "bytes": "aad519cb06342bc43602fa995b1dc020f0538dd05b71cfd1463b3a3f680df1cd" + }, + { + "bytes": "62cd0906b8cf890ef58d128ad2be679254fee0eb56fd5a26d58d17562b0f95c741da742c27fe044f3b94c97e333802c48c5b592801df46854b0f9478b9670b00" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "revoke_attestation", + "args": [ + { + "symbol": "att_rk" + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att_rk" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_rk" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_rk" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_rk" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_rk" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_rk" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "signature" + }, + "val": { + "bytes": "62cd0906b8cf890ef58d128ad2be679254fee0eb56fd5a26d58d17562b0f95c741da742c27fe044f3b94c97e333802c48c5b592801df46854b0f9478b9670b00" + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "signer_pubkey" + }, + "val": { + "bytes": "aad519cb06342bc43602fa995b1dc020f0538dd05b71cfd1463b3a3f680df1cd" + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_rk" + } + ] + } + } + }, + "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": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "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_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_registry/test_snapshots/test/verify_attestation_returns_false_after_expiry.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/verify_attestation_returns_false_after_expiry.1.json new file mode 100644 index 0000000..89d58f2 --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/verify_attestation_returns_false_after_expiry.1.json @@ -0,0 +1,541 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "research" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_exp" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att_exp" + }, + { + "symbol": "research" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "bytes": "d3326ae8fad75aec4c2b25c36390373b932e4315c985a5d3dd76fc86193ab8e2" + }, + { + "bytes": "f088cb83c0e42ec0e5df4a30a33956a66af45954dabaa5f00e696d10412690553938df190698af66e891c7a80dbb4eda27d6e197282509e5f6be3afeee2c9409" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 518401, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 518500, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_exp" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_exp" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "research" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_exp" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 518499 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_exp" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_exp" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_exp" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "research" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "signature" + }, + "val": { + "bytes": "f088cb83c0e42ec0e5df4a30a33956a66af45954dabaa5f00e696d10412690553938df190698af66e891c7a80dbb4eda27d6e197282509e5f6be3afeee2c9409" + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "signer_pubkey" + }, + "val": { + "bytes": "d3326ae8fad75aec4c2b25c36390373b932e4315c985a5d3dd76fc86193ab8e2" + } + } + ] + } + } + }, + "ext": "v0" + }, + 518499 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "research" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "research" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_exp" + } + ] + } + } + }, + "ext": "v0" + }, + 518499 + ] + ], + [ + { + "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" + }, + 518499 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "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_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518499 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "registry" + }, + { + "symbol": "att_exp" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_exp" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "research" + } + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/smart-contracts/contracts/agent_registry/test_snapshots/test/verify_attestation_returns_false_after_revocation.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/verify_attestation_returns_false_after_revocation.1.json new file mode 100644 index 0000000..44bdf37 --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/verify_attestation_returns_false_after_revocation.1.json @@ -0,0 +1,552 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_rv" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att_rv" + }, + { + "symbol": "coding" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "bytes": "fc3cba9633a09004413e7a252ce2911a9e73870015e59eed555c2bf699e3638b" + }, + { + "bytes": "122a0b5b73e40c98855893c1c67356c3fd1ad17f0fce3f386c3ddfe421248992ed820f0ae57430f66f23a39dbad6af4870dda2f2145e6c90621bd689a4fa8903" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "revoke_attestation", + "args": [ + { + "symbol": "att_rv" + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att_rv" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_rv" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_rv" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_rv" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_rv" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_rv" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "coding" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "signature" + }, + "val": { + "bytes": "122a0b5b73e40c98855893c1c67356c3fd1ad17f0fce3f386c3ddfe421248992ed820f0ae57430f66f23a39dbad6af4870dda2f2145e6c90621bd689a4fa8903" + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "signer_pubkey" + }, + "val": { + "bytes": "fc3cba9633a09004413e7a252ce2911a9e73870015e59eed555c2bf699e3638b" + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "coding" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_rv" + } + ] + } + } + }, + "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": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "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_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_registry/test_snapshots/test/verify_attestation_returns_false_for_nonexistent.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/verify_attestation_returns_false_for_nonexistent.1.json new file mode 100644 index 0000000..a90f00a --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/verify_attestation_returns_false_for_nonexistent.1.json @@ -0,0 +1,76 @@ +{ + "generators": { + "address": 1, + "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_registry/test_snapshots/test/verify_attestation_returns_true_for_valid.1.json b/smart-contracts/contracts/agent_registry/test_snapshots/test/verify_attestation_returns_true_for_valid.1.json new file mode 100644 index 0000000..9d6c6ec --- /dev/null +++ b/smart-contracts/contracts/agent_registry/test_snapshots/test/verify_attestation_returns_true_for_valid.1.json @@ -0,0 +1,500 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_agent", + "args": [ + { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "analytics" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_v" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "attest_capability", + "args": [ + { + "symbol": "att_v" + }, + { + "symbol": "analytics" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "bytes": "96ec793f553966e73d29cff12a55bceb1569096dc35e2e8a6cb1ff447fdc418d" + }, + { + "bytes": "5927616c4affa4a4b0023fb55d5de1cec7319eef3fc861c03f237aa317b5a5ed8e9cf213e2d38113ee942f793fd1a5b99963d8746fdc45eb90335613d19ee800" + } + ] + } + }, + "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": "Agent" + }, + { + "symbol": "att_v" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Agent" + }, + { + "symbol": "att_v" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "analytics" + } + }, + { + "key": { + "symbol": "endpoint" + }, + "val": { + "string": "https://agent.example.com" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "symbol": "att_v" + } + }, + { + "key": { + "symbol": "metadata" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "price_stroops" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_v" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Attestation" + }, + { + "symbol": "att_v" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "agent_id" + }, + "val": { + "symbol": "att_v" + } + }, + { + "key": { + "symbol": "capability" + }, + "val": { + "symbol": "analytics" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 518400 + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "signature" + }, + "val": { + "bytes": "5927616c4affa4a4b0023fb55d5de1cec7319eef3fc861c03f237aa317b5a5ed8e9cf213e2d38113ee942f793fd1a5b99963d8746fdc45eb90335613d19ee800" + } + }, + { + "key": { + "symbol": "signer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "signer_pubkey" + }, + "val": { + "bytes": "96ec793f553966e73d29cff12a55bceb1569096dc35e2e8a6cb1ff447fdc418d" + } + } + ] + } + } + }, + "ext": "v0" + }, + 535680 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "analytics" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CapabilityIndex" + }, + { + "symbol": "analytics" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "symbol": "att_v" + } + ] + } + } + }, + "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": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "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_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