| 1 | { |
| 2 | "nbformat": 4, |
| 3 | "nbformat_minor": 5, |
| 4 | "metadata": { |
| 5 | "kernelspec": { |
| 6 | "display_name": "Python 3", |
| 7 | "language": "python", |
| 8 | "name": "python3" |
| 9 | }, |
| 10 | "language_info": { |
| 11 | "name": "python", |
| 12 | "pygments_lexer": "ipython3" |
| 13 | } |
| 14 | }, |
| 15 | "cells": [ |
| 16 | { |
| 17 | "cell_type": "markdown", |
| 18 | "metadata": {}, |
| 19 | "source": [ |
| 20 | "# Local x402 simulation (Omnipay)\n", |
| 21 | "\n", |
| 22 | "Local-only. No AWS, no live funds, no Bedrock. Synthetic proofs only.\n", |
| 23 | "`value_transferred=false`." |
| 24 | ] |
| 25 | }, |
| 26 | { |
| 27 | "cell_type": "code", |
| 28 | "execution_count": null, |
| 29 | "metadata": {}, |
| 30 | "outputs": [], |
| 31 | "source": [ |
| 32 | "from datetime import UTC, datetime, timedelta\n", |
| 33 | "from decimal import Decimal\n", |
| 34 | "\n", |
| 35 | "from omnipay_x402 import VALUE_TRANSFERRED, live_agentcore_status\n", |
| 36 | "from omnipay_x402.demo import build_demo\n", |
| 37 | "from omnipay_x402.merchant import RESOURCE_URL\n", |
| 38 | "from omnipay_x402.models import ApprovalGrant, PurchaseRequest\n", |
| 39 | "\n", |
| 40 | "assert VALUE_TRANSFERRED is False\n", |
| 41 | "print(live_agentcore_status())\n", |
| 42 | "\n", |
| 43 | "now = datetime.now(UTC)\n", |
| 44 | "app, merchant, payments = build_demo(now)\n", |
| 45 | "purchase = PurchaseRequest(\n", |
| 46 | " request_id=\"request-001\",\n", |
| 47 | " resource_url=RESOURCE_URL,\n", |
| 48 | " purpose=\"supplier_due_diligence\",\n", |
| 49 | " idempotency_key=\"purchase-001\",\n", |
| 50 | ")\n", |
| 51 | "grant = ApprovalGrant(\n", |
| 52 | " approval_id=\"approval-001\",\n", |
| 53 | " request_id=purchase.request_id,\n", |
| 54 | " resource_url=purchase.resource_url,\n", |
| 55 | " purpose=purchase.purpose,\n", |
| 56 | " maximum_amount=Decimal(\"0.25\"),\n", |
| 57 | " approved_by=\"synthetic-reviewer\",\n", |
| 58 | " approved_at=now,\n", |
| 59 | " expires_at=now + timedelta(minutes=10),\n", |
| 60 | ")\n", |
| 61 | "result = app.purchase(purchase, approval=grant, now=now)\n", |
| 62 | "print(result.status, result.receipt.receipt_id)\n", |
| 63 | "print([e.event_type for e in result.audit_events])" |
| 64 | ] |
| 65 | } |
| 66 | ] |
| 67 | } |