{
  "network": "testnet",
  "version": "v3.2.0",
  "deploymentInfo": {
    "gitCommit": "24032569d97b9200005994f40dfdd75d7d1d5bab"
  },
  "previousRegistry": {
    "version": "24032569d97b9200005994f40dfdd75d7d1d5bab",
    "ipfsHash": "bafybeiaz4o2wnygycmmek2vpidypy42wrri3c4pzejct36ext6yyjitdhm"
  },
  "chains": {
    "998": {
      "network": {
        "chainId": 998,
        "centrifugeId": 9,
        "protocolAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "opsAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "baseRpcUrl": "https://hyperliquid-testnet.g.alchemy.com/v2/"
      },
      "adapters": {
        "layerZero": {
          "endpoint": "0xf9e1815F151024bDE4B7C10BAC10e8Ba9F6b53E1",
          "layerZeroEid": 40362,
          "blockConfirmations": 5,
          "requiredDVNs": [
            "0x91E698871030D0e1b6c9268C20bB57E2720618Dd"
          ],
          "optionalDVNs": [],
          "optionalDVNThreshold": 0
        }
      },
      "contracts": {
        "oracleValuation": {
          "address": "0xE3ccDAA87F3655a0071b2bA84354aB5baf3F04b9",
          "blockNumber": 55234449,
          "txHash": "0x67243f4e8a8de4e3e4cee57aae260fdb3c816e3d38f945d7e91e2da67385a455"
        },
        "accountingToken": {
          "address": "0x5ba3F068ceFa1e84aDAFcB7191bf4C02C3b724f8",
          "blockNumber": 51997501,
          "txHash": "0xc7823414515deb1d9d6b337b1616f2d1490c93e2444e78283cfe4645c207b632"
        },
        "scriptHelpers": {
          "address": "0xba5f99EbFAde72174b41137EEe0714F7099fa806",
          "blockNumber": 51997501,
          "txHash": "0xff20d3d55a730e19184faec521f22068552c1ae4ee4cc4568da1b3d93a1d4c11"
        },
        "onchainPMFactory": {
          "address": "0xF3c808e6D7C25B19c97a9597CaAcFB8Ba780a580",
          "blockNumber": 51997501,
          "txHash": "0x36f89ac0b319f13110e76e1b18fe42de251772ffec42af7b0884a980466385bf"
        },
        "flashLoanHelper": {
          "address": "0xB106e8Ad482df0088E28E7bD268AC1ea9609716c",
          "blockNumber": 51997501,
          "txHash": "0x352970c6321893f658d52d3b7353a1056f4968efe793f59a8d40b4e6a024e0c3"
        },
        "onOffRampFactory": {
          "address": "0x6Af53A7f79c32c09C73b745c591058Cdd97457DB",
          "blockNumber": 52074971,
          "txHash": "0xb9e822996b790e1762d704015b3255e1a7a4f6c839e91f1f82d189301b0ef7cd"
        },
        "approvalGuard": {
          "address": "0x6defAA1a96cc1e23F55Bac13E88C122ccE7F871f",
          "blockNumber": 53833378,
          "txHash": "0x1c338be3551cb8964716c4053a8e2caa51b6313d12b4fe58f8a36e6bcb03720f"
        },
        "circuitBreakerGuard": {
          "address": "0xdCAE75D1fb9c43eCc96fC0Cb194Ee8E808EB3437",
          "blockNumber": 53833439,
          "txHash": "0x293fb78537dc02646883465b13bf20c4b10a0ffea17e3c3bdeaa27231e96f16a"
        },
        "slippageGuard": {
          "address": "0x9D39c45595eC7cE584269B63a39e60684E5D6771",
          "blockNumber": 54081661,
          "txHash": "0x2d340d03bd6569a4dada6209a2d1f88a390575473d6b3ba0d45ce64dc74a3cb0"
        }
      },
      "deployment": {
        "deployedAt": 1768981500,
        "startBlock": 43580227
      }
    },
    "84532": {
      "network": {
        "chainId": 84532,
        "centrifugeId": 2,
        "catapultaNetwork": "baseSepolia",
        "etherscanUrl": "https://api-sepolia.basescan.org/api",
        "protocolAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "opsAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "baseRpcUrl": "https://base-sepolia.g.alchemy.com/v2/"
      },
      "adapters": {
        "hyperlane": {
          "hyperlaneId": 84532,
          "mailbox": "0x6966b0E55883d49BFB24539356a2f8A673E02039",
          "ism": "0x0000000000000000000000000000000000000000"
        },
        "axelar": {
          "axelarId": "base-sepolia",
          "gateway": "0xe432150cce91c13a887f7D836923d5597adD8E31",
          "gasService": "0xbE406F0189A0B4cf3A05C286473D23791Dd44Cc6"
        },
        "layerZero": {
          "endpoint": "0x6EDCE65403992e310A62460808c4b910D972f10f",
          "layerZeroEid": 40245,
          "blockConfirmations": 5,
          "requiredDVNs": [
            "0xe1a12515F9AB2764b887bF60B923Ca494EBbB2d6"
          ],
          "optionalDVNs": [],
          "optionalDVNThreshold": 0
        },
        "chainlink": {
          "chainSelector": 10344971235874465080,
          "ccipRouter": "0xD3b06cEbF099CE7DA4AcCf578aaebFDBd6e88a93"
        }
      },
      "contracts": {
        "oracleValuation": {
          "address": "0xE3ccDAA87F3655a0071b2bA84354aB5baf3F04b9",
          "blockNumber": 42359155,
          "txHash": "0xd1f5b4b1797f0d9f02d92bab898f345e56bbc5afd0d9ba80cbbf4a7913f38716"
        },
        "accountingToken": {
          "address": "0x5ba3F068ceFa1e84aDAFcB7191bf4C02C3b724f8",
          "blockNumber": 40764452,
          "txHash": "0x4431ced15b986495500e3510f46ac19f6d3f2d40dc85f00d60d27f26eeb276d9"
        },
        "scriptHelpers": {
          "address": "0xba5f99EbFAde72174b41137EEe0714F7099fa806",
          "blockNumber": 40764452,
          "txHash": "0x45af471495e56dc25d6ad69c1fa7d763e1bb33356530e0ffe1de3d18a7a782a1"
        },
        "onchainPMFactory": {
          "address": "0xF3c808e6D7C25B19c97a9597CaAcFB8Ba780a580",
          "blockNumber": 40764452,
          "txHash": "0xd3898572e01d77fb61412c5f90e063a86d5688c48cdc63cfb620dd3e78013342"
        },
        "flashLoanHelper": {
          "address": "0xB106e8Ad482df0088E28E7bD268AC1ea9609716c",
          "blockNumber": 40764452,
          "txHash": "0xec4e3fa4f0c971f4b65b92ba4bd62550b4411bd246fb5bfebb3e583c8b8943e5"
        },
        "onOffRampFactory": {
          "address": "0x6Af53A7f79c32c09C73b745c591058Cdd97457DB",
          "blockNumber": 40802741,
          "txHash": "0xe6a7fdc5567f6bfd7d5f44a30c80bf02debd559acf5c0b2da12d09be7ed51f76"
        },
        "approvalGuard": {
          "address": "0x6defAA1a96cc1e23F55Bac13E88C122ccE7F871f",
          "blockNumber": 41669314,
          "txHash": "0x655e66c69ac36ec797131a5623b5b50756386969f31809cacd6f53afc9387459"
        },
        "circuitBreakerGuard": {
          "address": "0xdCAE75D1fb9c43eCc96fC0Cb194Ee8E808EB3437",
          "blockNumber": 41669315,
          "txHash": "0x6bcaadcc14df8c89f1e67aa5e015870007e8f4c9626e453e74b284abd2e69e78"
        },
        "slippageGuard": {
          "address": "0x9D39c45595eC7cE584269B63a39e60684E5D6771",
          "blockNumber": 41790976,
          "txHash": "0x688e029d3ec2e8c84c4ddfdbf0b51a8673cd6621c9bf715876260e8fcff3a523"
        }
      },
      "deployment": {
        "deployedAt": 1769612967,
        "startBlock": 36922335
      }
    },
    "421614": {
      "network": {
        "chainId": 421614,
        "centrifugeId": 3,
        "network": "arbitrum",
        "catapultaNetwork": "arbitrumSepolia",
        "protocolAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "opsAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "baseRpcUrl": "https://arb-sepolia.g.alchemy.com/v2/"
      },
      "adapters": {
        "hyperlane": {
          "hyperlaneId": 421614,
          "mailbox": "0x598facE78a4302f11E3de0bee1894Da0b2Cb71F8",
          "ism": "0x0000000000000000000000000000000000000000"
        },
        "axelar": {
          "axelarId": "arbitrum-sepolia",
          "gateway": "0xe1cE95479C84e9809269227C7F8524aE051Ae77a",
          "gasService": "0xbE406F0189A0B4cf3A05C286473D23791Dd44Cc6"
        },
        "layerZero": {
          "endpoint": "0x6EDCE65403992e310A62460808c4b910D972f10f",
          "layerZeroEid": 40231,
          "blockConfirmations": 5,
          "requiredDVNs": [
            "0x53f488E93b4f1b60E8E83aa374dBe1780A1EE8a8"
          ],
          "optionalDVNs": [],
          "optionalDVNThreshold": 0
        },
        "chainlink": {
          "chainSelector": 3478487238524512106,
          "ccipRouter": "0x2a9C5afB0d0e4BAb2BCdaE109EC4b0c4Be15a165"
        }
      },
      "contracts": {
        "oracleValuation": {
          "address": "0xE3ccDAA87F3655a0071b2bA84354aB5baf3F04b9",
          "blockNumber": 273432101,
          "txHash": "0x2e8203055f1c73830354dae3ac4ec0266edf07d99eb72facf1608ec33d37b8ff"
        },
        "accountingToken": {
          "address": "0x5ba3F068ceFa1e84aDAFcB7191bf4C02C3b724f8",
          "blockNumber": 263305171,
          "txHash": "0x56758cedc8b31fe041e0e37f0ae7f1dc4454ae468eff5361f92c5ebc360dfc61"
        },
        "scriptHelpers": {
          "address": "0xba5f99EbFAde72174b41137EEe0714F7099fa806",
          "blockNumber": 263305174,
          "txHash": "0xfcfef710c5e9b878ee221a3e526a1db21f882e5eb89bbcb24304cd221ced4189"
        },
        "onchainPMFactory": {
          "address": "0xF3c808e6D7C25B19c97a9597CaAcFB8Ba780a580",
          "blockNumber": 263305177,
          "txHash": "0x0411e5049f39575de47f3fca7adebe7ccfc8700510095873719d02026f8cd718"
        },
        "flashLoanHelper": {
          "address": "0xB106e8Ad482df0088E28E7bD268AC1ea9609716c",
          "blockNumber": 263305179,
          "txHash": "0x7bef184b9c83b9bcf0c773a31060f6103c005e0e130c2b882d352bde21a475c0"
        },
        "onOffRampFactory": {
          "address": "0x6Af53A7f79c32c09C73b745c591058Cdd97457DB",
          "blockNumber": 263540516,
          "txHash": "0x4b2f4a9998430a6049a3cf1e8a29cedb4ceea2f93cb3ff74840a684e4c1d60ba"
        },
        "approvalGuard": {
          "address": "0x6defAA1a96cc1e23F55Bac13E88C122ccE7F871f",
          "blockNumber": 269314781,
          "txHash": "0x3f41e6246fdef4b0157cf5cb39c0e4d02d869ca0a20ad9d5d1825c22024ddbb5"
        },
        "circuitBreakerGuard": {
          "address": "0xdCAE75D1fb9c43eCc96fC0Cb194Ee8E808EB3437",
          "blockNumber": 269314783,
          "txHash": "0x6d1c44e71d63855ba822a8771eea03daa957e73d6a016aac949b301b39a561fd"
        },
        "slippageGuard": {
          "address": "0x9D39c45595eC7cE584269B63a39e60684E5D6771",
          "blockNumber": 269876222,
          "txHash": "0x4792f57bc8d10072c6cbe472473d33ab86798a8759058e5f9498a50e950a9ffc"
        }
      },
      "deployment": {
        "deployedAt": 1769614959,
        "startBlock": 237622348
      }
    },
    "11155111": {
      "network": {
        "chainId": 11155111,
        "centrifugeId": 1,
        "protocolAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "opsAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "baseRpcUrl": "https://eth-sepolia.g.alchemy.com/v2/"
      },
      "adapters": {
        "hyperlane": {
          "hyperlaneId": 11155111,
          "mailbox": "0xfFAEF09B3cd11D9b20d1a19bECca54EEC2884766",
          "ism": "0x0000000000000000000000000000000000000000"
        },
        "axelar": {
          "axelarId": "ethereum-sepolia",
          "gateway": "0xe432150cce91c13a887f7D836923d5597adD8E31",
          "gasService": "0xbE406F0189A0B4cf3A05C286473D23791Dd44Cc6"
        },
        "layerZero": {
          "endpoint": "0x6edce65403992e310a62460808c4b910d972f10f",
          "layerZeroEid": 40161,
          "blockConfirmations": 5,
          "requiredDVNs": [
            "0x8eebf8b423B73bFCa51a1Db4B7354AA0bFCA9193"
          ],
          "optionalDVNs": [],
          "optionalDVNThreshold": 0
        },
        "chainlink": {
          "chainSelector": 16015286601757825753,
          "ccipRouter": "0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59"
        }
      },
      "contracts": {
        "oracleValuation": {
          "address": "0xE3ccDAA87F3655a0071b2bA84354aB5baf3F04b9",
          "blockNumber": 10981104,
          "txHash": "0xed82755d4edebe8612caa3a6fdf1e266d7374b31109833822ac186748ed3db9c"
        },
        "accountingToken": {
          "address": "0x5ba3F068ceFa1e84aDAFcB7191bf4C02C3b724f8",
          "blockNumber": 10742867,
          "txHash": "0x5204ebcb9828a5dea91162b48b9035488c9f69e9a46e0e3b836bc20a9622ce6e"
        },
        "scriptHelpers": {
          "address": "0xba5f99EbFAde72174b41137EEe0714F7099fa806",
          "blockNumber": 10742867,
          "txHash": "0xe4a1fe8f90e3b5d43887e72268c4e737e9c2843fcf41c4c18d703b49c4e217e2"
        },
        "flashLoanHelper": {
          "address": "0xB106e8Ad482df0088E28E7bD268AC1ea9609716c",
          "blockNumber": 10742867,
          "txHash": "0x65b539ff63ccc075cd64c1f85e16607c14d7be91d542259c01737a07fbaacaec"
        },
        "onchainPMFactory": {
          "address": "0xF3c808e6D7C25B19c97a9597CaAcFB8Ba780a580",
          "blockNumber": 10742867,
          "txHash": "0x7f52e8161460427ed2d80a8cb7d78d0c68db35fa2a56124b3731776cfd9c8c8b"
        },
        "onOffRampFactory": {
          "address": "0x6Af53A7f79c32c09C73b745c591058Cdd97457DB",
          "blockNumber": 10748684,
          "txHash": "0xb4959012a835e032eac2605ce176bfd00eae5db1e92ac0a001daad89d5e15f50"
        },
        "approvalGuard": {
          "address": "0x6defAA1a96cc1e23F55Bac13E88C122ccE7F871f",
          "blockNumber": 10873919,
          "txHash": "0x2faed2f32bdbbdbb6d0c71ce8353c53140ff4b5e7a6f707db7d478765ee5100a"
        },
        "circuitBreakerGuard": {
          "address": "0xdCAE75D1fb9c43eCc96fC0Cb194Ee8E808EB3437",
          "blockNumber": 10873920,
          "txHash": "0xedb0af7ce66957255f65084c2538202a04fc6b2eb0c214442c8a2f82e0c144f3"
        },
        "slippageGuard": {
          "address": "0x9D39c45595eC7cE584269B63a39e60684E5D6771",
          "blockNumber": 10890581,
          "txHash": "0xa01d673405d7762e9c571534ca28276fa30d4b91c7b9d002c8e6154b3037ecf9"
        }
      },
      "deployment": {
        "deployedAt": 1769611653,
        "startBlock": 10142072
      }
    }
  },
  "abis": {
    "OracleValuation": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "hub_",
            "type": "address",
            "internalType": "contract IHub"
          },
          {
            "name": "hubRegistry_",
            "type": "address",
            "internalType": "contract IHubRegistry"
          },
          {
            "name": "contractUpdater_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "LOCAL",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "contractUpdater",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "feeder",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "getPrice",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "getQuote",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "baseAmount",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [
          {
            "name": "quoteAmount",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "hub",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHub"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "hubRegistry",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubRegistry"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pricePoolPerAsset",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "base",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "value",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "isValid",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "setPrice",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "newPrice",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "untrustedCall",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "sender",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateFeeder",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "feeder_",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "canFeed",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "UpdateFeeder",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "feeder",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "canFeed",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdatePrice",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "newPrice",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "MulDiv_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotFeeder",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotHubManager",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PriceNotSet",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      }
    ],
    "AccountingToken": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "contractUpdater_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "allowance",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "spender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "approve",
        "inputs": [
          {
            "name": "spender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "id",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "balanceOf",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "burn",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "contractUpdater",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "decimals",
        "inputs": [
          {
            "name": "id",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isLiability",
        "inputs": [
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "mint",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "minters",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "who",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "name",
        "inputs": [
          {
            "name": "id",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "string",
            "internalType": "string"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "symbol",
        "inputs": [
          {
            "name": "id",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "string",
            "internalType": "string"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "toTokenId",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "liability",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "transfer",
        "inputs": [
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "id",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "transferFrom",
        "inputs": [
          {
            "name": "sender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "id",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "trustedCall",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "Approval",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "spender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Burn",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Mint",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Transfer",
        "inputs": [
          {
            "name": "caller",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "from",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateMinter",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "minter",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "canMint",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "EmptyAmount",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EmptyOwner",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InsufficientAllowance",
        "inputs": [
          {
            "name": "sender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "type": "error",
        "name": "InsufficientBalance",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "type": "error",
        "name": "InvalidTokenId",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotMinter",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ZeroAddress",
        "inputs": []
      }
    ],
    "ScriptHelpers": [
      {
        "type": "function",
        "name": "abs",
        "inputs": [
          {
            "name": "value",
            "type": "int256",
            "internalType": "int256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "add",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "addBps",
        "inputs": [
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "bps",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "and",
        "inputs": [
          {
            "name": "x",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "y",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "blockTimestamp",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "blockTimestampOffset",
        "inputs": [
          {
            "name": "offset",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "bytesConcat",
        "inputs": [
          {
            "name": "a",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "b",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "clamp",
        "inputs": [
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "low",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "high",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "div",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "encodeAddress",
        "inputs": [
          {
            "name": "value",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "encodeBool",
        "inputs": [
          {
            "name": "value",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "encodeBytes32",
        "inputs": [
          {
            "name": "value",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "encodeUint128",
        "inputs": [
          {
            "name": "value",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "encodeUint256",
        "inputs": [
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "eq",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "extractElement",
        "inputs": [
          {
            "name": "tuple",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "index",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "result",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "gt",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "gte",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "lt",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "lte",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "max",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "min",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "mul",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "mulDiv",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "c",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "rounding",
            "type": "uint8",
            "internalType": "enum MathLib.Rounding"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "not",
        "inputs": [
          {
            "name": "x",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "or",
        "inputs": [
          {
            "name": "x",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "y",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "revertIfFalse",
        "inputs": [
          {
            "name": "condition",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "revertIfTrue",
        "inputs": [
          {
            "name": "condition",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "scaleDecimals",
        "inputs": [
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "fromDecimals",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "toDecimals",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "rounding",
            "type": "uint8",
            "internalType": "enum MathLib.Rounding"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "sub",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "subBps",
        "inputs": [
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "bps",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "subSaturating",
        "inputs": [
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "ternary",
        "inputs": [
          {
            "name": "condition",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "a",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "b",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "ternary",
        "inputs": [
          {
            "name": "condition",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "a",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "b",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "toAddress",
        "inputs": [
          {
            "name": "value",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "toBytes32",
        "inputs": [
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "toBytes32",
        "inputs": [
          {
            "name": "value",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "toInt256",
        "inputs": [
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "int256",
            "internalType": "int256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "toUint256",
        "inputs": [
          {
            "name": "value",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "toUint256",
        "inputs": [
          {
            "name": "value",
            "type": "int256",
            "internalType": "int256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "error",
        "name": "CastOverflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ConditionFalse",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ConditionTrue",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidBps",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MulDiv_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "OutOfBounds",
        "inputs": []
      }
    ],
    "OnchainPMFactory": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "contractUpdater_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "balanceSheet_",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          },
          {
            "name": "gateway_",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "contractUpdater",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "gateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "getAddress",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "newOnchainPM",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IOnchainPM"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "DeployOnchainPM",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "onchainPM",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "InvalidPoolId",
        "inputs": []
      }
    ],
    "OnchainPM": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "contractUpdater_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "gateway_",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "receive",
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "activeStrategist",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "callbackIdx",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "computeScriptHash",
        "inputs": [
          {
            "name": "commands",
            "type": "bytes32[]",
            "internalType": "bytes32[]"
          },
          {
            "name": "state",
            "type": "bytes[]",
            "internalType": "bytes[]"
          },
          {
            "name": "stateBitmap",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "callbacks",
            "type": "tuple[]",
            "internalType": "struct IOnchainPM.Callback[]",
            "components": [
              {
                "name": "hash",
                "type": "bytes32",
                "internalType": "bytes32"
              },
              {
                "name": "caller",
                "type": "address",
                "internalType": "address"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "contractUpdater",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "execute",
        "inputs": [
          {
            "name": "commands",
            "type": "bytes32[]",
            "internalType": "bytes32[]"
          },
          {
            "name": "state",
            "type": "bytes[]",
            "internalType": "bytes[]"
          },
          {
            "name": "stateBitmap",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "callbacks",
            "type": "tuple[]",
            "internalType": "struct IOnchainPM.Callback[]",
            "components": [
              {
                "name": "hash",
                "type": "bytes32",
                "internalType": "bytes32"
              },
              {
                "name": "caller",
                "type": "address",
                "internalType": "address"
              }
            ]
          },
          {
            "name": "proof",
            "type": "bytes32[]",
            "internalType": "bytes32[]"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "executeCallback",
        "inputs": [
          {
            "name": "commands",
            "type": "bytes32[]",
            "internalType": "bytes32[]"
          },
          {
            "name": "state",
            "type": "bytes[]",
            "internalType": "bytes[]"
          },
          {
            "name": "stateBitmap",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "executeMulticall",
        "inputs": [
          {
            "name": "data",
            "type": "bytes[]",
            "internalType": "bytes[]"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "gateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "multicall",
        "inputs": [
          {
            "name": "data",
            "type": "bytes[]",
            "internalType": "bytes[]"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "policy",
        "inputs": [
          {
            "name": "strategist",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "root",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "trustedCall",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "ExecuteCallback",
        "inputs": [
          {
            "name": "strategist",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "scriptHash",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "ExecuteScript",
        "inputs": [
          {
            "name": "strategist",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "scriptHash",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdatePolicy",
        "inputs": [
          {
            "name": "strategist",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "oldRoot",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "newRoot",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyBatching",
        "inputs": []
      },
      {
        "type": "error",
        "name": "AlreadyExecuting",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CallFailedWithEmptyRevert",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CallbackExhausted",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ETHRefundFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ExecutionFailed",
        "inputs": [
          {
            "name": "command_index",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "message",
            "type": "string",
            "internalType": "string"
          }
        ]
      },
      {
        "type": "error",
        "name": "IndexOutOfBounds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidBitmap",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidCallback",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidCallbackCaller",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidPoolId",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidProof",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAStrategist",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotInExecution",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SelfCallForbidden",
        "inputs": []
      },
      {
        "type": "error",
        "name": "StateLengthOverflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnauthorizedSender",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnconsumedCallbacks",
        "inputs": []
      }
    ],
    "FlashLoanHelper": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "factory_",
            "type": "address",
            "internalType": "contract IOnchainPMFactory"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "executeOperation",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "premium",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "initiator",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "params",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "factory",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IOnchainPMFactory"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "requestFlashLoan",
        "inputs": [
          {
            "name": "pool",
            "type": "address",
            "internalType": "contract IAaveV3Pool"
          },
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "onchainPM",
            "type": "address",
            "internalType": "contract IOnchainPM"
          },
          {
            "name": "callbackData",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "FlashLoan",
        "inputs": [
          {
            "name": "pool",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "onchainPM",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyActive",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotActive",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotInitiator",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotOnchainPM",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotPool",
        "inputs": []
      },
      {
        "type": "error",
        "name": "WrappedError",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "selector",
            "type": "bytes4",
            "internalType": "bytes4"
          },
          {
            "name": "reason",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "details",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      }
    ],
    "OnOffRampFactory": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "contractUpdater_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "balanceSheet_",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          },
          {
            "name": "accountingToken_",
            "type": "address",
            "internalType": "contract IAccountingToken"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "accountingToken",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAccountingToken"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "contractUpdater",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "newManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IOnOffRamp"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "DeployOnOffRamp",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "manager",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      }
    ],
    "OnOffRamp": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "contractUpdater_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "balanceSheet_",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          },
          {
            "name": "accountingToken_",
            "type": "address",
            "internalType": "contract IAccountingToken"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "accountingToken",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAccountingToken"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "contractUpdater",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deposit",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "offramp",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "isEnabled",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "onramp",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "relayer",
        "inputs": [
          {
            "name": "relayer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "scId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "supportsInterface",
        "inputs": [
          {
            "name": "interfaceId",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "trustedCall",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "withdraw",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "TrustedWithdraw",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateOfframp",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "isEnabled",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateOnramp",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "isEnabled",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateRelayer",
        "inputs": [
          {
            "name": "relayer",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "isEnabled",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "ERC6909NotSupported",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidOfframpDestination",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidPoolId",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidShareClassId",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAllowedOnrampAsset",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotContractUpdater",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotRelayer",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownTrustedCall",
        "inputs": []
      },
      {
        "type": "error",
        "name": "WrappedError",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "selector",
            "type": "bytes4",
            "internalType": "bytes4"
          },
          {
            "name": "reason",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "details",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      }
    ],
    "ApprovalGuard": [
      {
        "type": "function",
        "name": "checkZeroAllowances",
        "inputs": [
          {
            "name": "entries",
            "type": "tuple[]",
            "internalType": "struct ApprovalEntry[]",
            "components": [
              {
                "name": "token",
                "type": "address",
                "internalType": "address"
              },
              {
                "name": "spender",
                "type": "address",
                "internalType": "address"
              }
            ]
          }
        ],
        "outputs": [],
        "stateMutability": "view"
      },
      {
        "type": "error",
        "name": "NonZeroAllowance",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "spender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "remaining",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "CircuitBreakerGuard": [
      {
        "type": "function",
        "name": "cumulative",
        "inputs": [
          {
            "name": "caller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "key",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "window",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "total",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "windowStart",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "delta",
        "inputs": [
          {
            "name": "key",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "currentValue",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "newValue",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxDeltaBps",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "window",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "refs",
        "inputs": [
          {
            "name": "caller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "key",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "window",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "anchor",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "windowStart",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "tally",
        "inputs": [
          {
            "name": "key",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "max",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "window",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "error",
        "name": "ExceedsCumulativeLimit",
        "inputs": [
          {
            "name": "key",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "max",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "window",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "type": "error",
        "name": "ExceedsDeltaLimit",
        "inputs": [
          {
            "name": "key",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "currentValue",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "newValue",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxDeltaBps",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "window",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ZeroAnchor",
        "inputs": []
      }
    ],
    "SlippageGuard": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "spoke_",
            "type": "address",
            "internalType": "contract ISpoke"
          },
          {
            "name": "balanceSheet_",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          },
          {
            "name": "contractUpdater_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "onchainPMFactory_",
            "type": "address",
            "internalType": "contract IOnchainPMFactory"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "close",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "maxSlippageBps",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "config",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "maxPeriodLoss",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "periodDuration",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "contractUpdater",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "onchainPMFactory",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IOnchainPMFactory"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "open",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assets",
            "type": "tuple[]",
            "internalType": "struct AssetEntry[]",
            "components": [
              {
                "name": "asset",
                "type": "address",
                "internalType": "address"
              },
              {
                "name": "tokenId",
                "type": "uint256",
                "internalType": "uint256"
              }
            ]
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "period",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "cumulativeLoss",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "periodStart",
            "type": "uint48",
            "internalType": "uint48"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "spoke",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpoke"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "trustedCall",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "SetConfig",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "maxPeriodLoss",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "periodDuration",
            "type": "uint32",
            "indexed": false,
            "internalType": "uint32"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "ContextMismatch",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EmptyAssets",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InProgress",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MulDiv_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotOpen",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotOpener",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PeriodLossExceeded",
        "inputs": [
          {
            "name": "accumulated",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "maxPeriodLoss",
            "type": "uint128",
            "internalType": "uint128"
          }
        ]
      },
      {
        "type": "error",
        "name": "SlippageExceeded",
        "inputs": [
          {
            "name": "withdrawn",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "deposited",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxBps",
            "type": "uint16",
            "internalType": "uint16"
          }
        ]
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ZeroPrice",
        "inputs": []
      }
    ]
  }
}