{
  "name": "Burzo",
  "contract": "BurzoSpendDesk",
  "deployments": [
    {
      "chain": "Robinhood Chain",
      "id": 4663,
      "rpc": "https://rpc.mainnet.chain.robinhood.com",
      "explorer": "https://robinhoodchain.blockscout.com",
      "address": null,
      "deployedBlock": null
    },
    {
      "chain": "Robinhood Chain Testnet",
      "id": 46630,
      "rpc": "https://rpc.testnet.chain.robinhood.com",
      "explorer": "https://explorer.testnet.chain.robinhood.com",
      "address": null,
      "deployedBlock": null
    }
  ],
  "abi": [
    {
      "type": "function",
      "name": "AGENT_FROZEN",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "FLEET_FROZEN",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "MAX_BATCH",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "MAX_FLEET",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "MAX_NAME",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "MAX_OPEN_REQUESTS",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "MAX_PROVIDERS",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "MAX_TOKENS",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "NEEDS_APPROVAL",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "OVER_AUTO_LIMIT",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "OVER_DAILY_WINDOW",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "OVER_PAYMENT_CAP",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "PASS",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "PROVIDER_NOT_ALLOWED",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "REQUEST_TTL",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "RETIRED",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "TOKEN_NOT_BUDGETED",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "TOO_MANY_OPEN",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "UNKNOWN_AGENT",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "ZERO_AMOUNT",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "agent",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "v",
          "type": "tuple",
          "internalType": "struct BurzoSpendDesk.AgentView",
          "components": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "owner",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "key",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "registeredAt",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "frozen",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "fleetFrozen",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "retired",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "openRequests",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "tokens",
              "type": "address[]",
              "internalType": "address[]"
            },
            {
              "name": "providers",
              "type": "address[]",
              "internalType": "address[]"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "agentCount",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "approveRequest",
      "inputs": [
        {
          "name": "requestId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "budget",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "v",
          "type": "tuple",
          "internalType": "struct BurzoSpendDesk.BudgetView",
          "components": [
            {
              "name": "enabled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "dailyLimit",
              "type": "uint128",
              "internalType": "uint128"
            },
            {
              "name": "paymentCap",
              "type": "uint128",
              "internalType": "uint128"
            },
            {
              "name": "approvalThreshold",
              "type": "uint128",
              "internalType": "uint128"
            },
            {
              "name": "autoDailyLimit",
              "type": "uint128",
              "internalType": "uint128"
            },
            {
              "name": "spentToday",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "leftToday",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "autoSpentToday",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "autoLeftToday",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "resetsAt",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "cancelRequest",
      "inputs": [
        {
          "name": "requestId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "check",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "provider",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "c",
          "type": "tuple",
          "internalType": "struct BurzoSpendDesk.Check",
          "components": [
            {
              "name": "code",
              "type": "uint8",
              "internalType": "uint8"
            },
            {
              "name": "allowanceRead",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "allowance",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "balanceRead",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "balance",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "closeExpired",
      "inputs": [
        {
          "name": "requestId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "fleetFrozen",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "fleetIdsOf",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256[]",
          "internalType": "uint256[]"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "fleetOf",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "list",
          "type": "tuple[]",
          "internalType": "struct BurzoSpendDesk.AgentView[]",
          "components": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "owner",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "key",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "registeredAt",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "frozen",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "fleetFrozen",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "retired",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "openRequests",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "tokens",
              "type": "address[]",
              "internalType": "address[]"
            },
            {
              "name": "providers",
              "type": "address[]",
              "internalType": "address[]"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "freezeAgent",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "frozen",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "freezeFleet",
      "inputs": [
        {
          "name": "frozen",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "isProvider",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "provider",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "openRequestsOf",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "list",
          "type": "tuple[]",
          "internalType": "struct BurzoSpendDesk.OpenRequest[]",
          "components": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "request",
              "type": "tuple",
              "internalType": "struct BurzoSpendDesk.Request",
              "components": [
                {
                  "name": "agentId",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "provider",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "token",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "amount",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "jobId",
                  "type": "bytes32",
                  "internalType": "bytes32"
                },
                {
                  "name": "createdAt",
                  "type": "uint64",
                  "internalType": "uint64"
                },
                {
                  "name": "expiresAt",
                  "type": "uint64",
                  "internalType": "uint64"
                },
                {
                  "name": "status",
                  "type": "uint8",
                  "internalType": "enum BurzoSpendDesk.RequestStatus"
                }
              ]
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pay",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "provider",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "jobId",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "outputs": [
        {
          "name": "paid",
          "type": "bool",
          "internalType": "bool"
        },
        {
          "name": "requestId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "registerAgent",
      "inputs": [
        {
          "name": "name",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "key",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "rejectRequests",
      "inputs": [
        {
          "name": "requestIds",
          "type": "uint256[]",
          "internalType": "uint256[]"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "removeBudget",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "request",
      "inputs": [
        {
          "name": "requestId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "tuple",
          "internalType": "struct BurzoSpendDesk.Request",
          "components": [
            {
              "name": "agentId",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "provider",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "amount",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "jobId",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "createdAt",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "expiresAt",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "status",
              "type": "uint8",
              "internalType": "enum BurzoSpendDesk.RequestStatus"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "requestCount",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "retireAgent",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "rotateKey",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "key",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setBudget",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "dailyLimit",
          "type": "uint128",
          "internalType": "uint128"
        },
        {
          "name": "paymentCap",
          "type": "uint128",
          "internalType": "uint128"
        },
        {
          "name": "approvalThreshold",
          "type": "uint128",
          "internalType": "uint128"
        },
        {
          "name": "autoDailyLimit",
          "type": "uint128",
          "internalType": "uint128"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setProviders",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "providers",
          "type": "address[]",
          "internalType": "address[]"
        },
        {
          "name": "allowed",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "today",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint40",
          "internalType": "uint40"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "event",
      "name": "AgentFrozen",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "frozen",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "AgentRegistered",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "name",
          "type": "string",
          "indexed": false,
          "internalType": "string"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "AgentRetired",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "BudgetRemoved",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "BudgetSet",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "dailyLimit",
          "type": "uint128",
          "indexed": false,
          "internalType": "uint128"
        },
        {
          "name": "paymentCap",
          "type": "uint128",
          "indexed": false,
          "internalType": "uint128"
        },
        {
          "name": "approvalThreshold",
          "type": "uint128",
          "indexed": false,
          "internalType": "uint128"
        },
        {
          "name": "autoDailyLimit",
          "type": "uint128",
          "indexed": false,
          "internalType": "uint128"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "FleetFrozen",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "frozen",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "KeyRotated",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "Paid",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "provider",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "jobId",
          "type": "bytes32",
          "indexed": false,
          "internalType": "bytes32"
        },
        {
          "name": "token",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "requestId",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "ProviderSet",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "provider",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "allowed",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "RequestClosed",
      "inputs": [
        {
          "name": "requestId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "agentId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "by",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "status",
          "type": "uint8",
          "indexed": false,
          "internalType": "enum BurzoSpendDesk.RequestStatus"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "RequestOpened",
      "inputs": [
        {
          "name": "requestId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "agentId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "jobId",
          "type": "bytes32",
          "indexed": false,
          "internalType": "bytes32"
        },
        {
          "name": "provider",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "token",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "expiresAt",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "AgentIsRetired",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "BadKey",
      "inputs": [
        {
          "name": "key",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "BadLimits",
      "inputs": []
    },
    {
      "type": "error",
      "name": "BadName",
      "inputs": []
    },
    {
      "type": "error",
      "name": "BadProvider",
      "inputs": [
        {
          "name": "provider",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "BatchTooLarge",
      "inputs": []
    },
    {
      "type": "error",
      "name": "FleetFull",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotAToken",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "NotAgentKey",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "NotOwner",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "Reentered",
      "inputs": []
    },
    {
      "type": "error",
      "name": "Refused",
      "inputs": [
        {
          "name": "code",
          "type": "uint8",
          "internalType": "uint8"
        }
      ]
    },
    {
      "type": "error",
      "name": "RequestHasExpired",
      "inputs": [
        {
          "name": "requestId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "RequestNotPending",
      "inputs": [
        {
          "name": "requestId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "RequestStillOpen",
      "inputs": [
        {
          "name": "requestId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "TokenCallFailed",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "TokenHasNoBudget",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "TooManyProviders",
      "inputs": []
    },
    {
      "type": "error",
      "name": "TooManyTokens",
      "inputs": []
    },
    {
      "type": "error",
      "name": "TransferMismatch",
      "inputs": [
        {
          "name": "expected",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "left",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "arrived",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "UnknownAgent",
      "inputs": [
        {
          "name": "agentId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    }
  ],
  "notes": "No owner, no admin, no fee, no upgrade. The desk holds no balance: each payment moves from the agent owner's wallet to the provider in one call."
}