{
  "network": "mainnet",
  "version": null,
  "deploymentInfo": {
    "gitCommit": "4eecc7a749d9a461c5681092b84bd937585c4832"
  },
  "previousRegistry": {
    "version": "v3.2.0",
    "ipfsHash": "bafkreieqn3l4y22x34m6urpoilpfpe6ppnbt4hpy5p645oncggtnjjuuqe"
  },
  "chains": {
    "196": {
      "network": {
        "chainId": 196,
        "centrifugeId": 13,
        "protocolAdmin": "0x9711730060C73Ee7Fcfe1890e8A0993858a7D225",
        "opsAdmin": "0xd21413291444C5c104F1b5918cA0D2f6EC91Ad16",
        "batchLimit": 15,
        "baseRpcUrl": "https://rpc.xlayer.tech",
        "verifier": "oklink",
        "verifierUrl": "https://www.oklink.com/api/v5/explorer/xlayer/api"
      },
      "adapters": {
        "layerZero": {
          "endpoint": "0x1a44076050125825900e736c501f859c50fE728c",
          "layerZeroEid": 30274,
          "blockConfirmations": 15,
          "requiredDVNs": [
            "0x047d9DBe4fC6B5c916F37237F547f9F42809935a",
            "0x6667966D9fF99375156cbd554f74075D4f19d19f"
          ],
          "optionalDVNs": [
            "0x28af4dADbc5066e994986E8bb105240023dC44B6",
            "0xA32b5c9fc4daB9F647229F04b2F1456e042d9cbD",
            "0xa415A8C7Fb53DDAcBC5BcC3E0Be6a400E9bd0DF5"
          ],
          "optionalDVNThreshold": 2
        },
        "chainlink": {
          "chainSelector": 3016212468291539606,
          "ccipRouter": "0xF2b6Cb7867EB5502C3249dD37D7bc1Cc148e5232"
        }
      },
      "contracts": {
        "root": {
          "address": "0xdc9456e7e20f15029C8231Ec433a20F404b7235E",
          "blockNumber": 67075302,
          "txHash": "0x02caed00ad239422ae46126ad7881d502587b2c467f2a5b52f75bba38068b7e7"
        },
        "gateway": {
          "address": "0x19a524D03aA94ECEe41a80341537BCFCb47D3172",
          "blockNumber": 67075319,
          "txHash": "0xcb70c655067eddaaa4becb7f9afa10d206cc0ea4a7026d9975b3c3fdc30cb71a"
        },
        "multiAdapter": {
          "address": "0x35C837F0A54B715a23D193E1476BFC9BC30073BE",
          "blockNumber": 67075330,
          "txHash": "0x189c8d8c1910ea18143f9f7473c56ae1a5a81273362d839cf03128f03c9c6eb6"
        },
        "contractUpdater": {
          "address": "0x3B150B19245D2C366bc8f18c775b725DFB298F71",
          "blockNumber": 67075345,
          "txHash": "0xd6f6b3d129bd1f92dfe47ba0eed02c95516501d18e57fa0cebae38ad1511dc57"
        },
        "gasService": {
          "address": "0xbEbef21D686a957decECCe6a58455fA0F16754Be",
          "blockNumber": 67075387,
          "txHash": "0x985bc4890a1217bd419c6fda09340b17262441a2ff8f4ec0a645579c2306042a"
        },
        "messageProcessor": {
          "address": "0x97cc7e9Dafdd725Cc23B25eeBC93c4384B4Fe30A",
          "blockNumber": 67075398,
          "txHash": "0x7b77725d00de547faeeb5d03ea1c06b8b24bb0a74debeaf20c43b8baa9882f2e"
        },
        "messageDispatcher": {
          "address": "0xf837a22883e004f705E0D7e1deE08e295Df30B27",
          "blockNumber": 67075409,
          "txHash": "0x9cf9c992603ee9b81603ceb99fc1c0cdce9b7b8a3c15fb188706845f9d07534c"
        },
        "tokenFactory": {
          "address": "0xcE1616505F93215751FBb41Efac618b631997c38",
          "blockNumber": 67075420,
          "txHash": "0x9f1dd3fa5f4a99e5063dda703635b1cf7c7ecd8fc4027562e7b45b546f186930"
        },
        "spoke": {
          "address": "0xEC3582fcDc34078a4B7a8c75a5a3AE46f48525aB",
          "blockNumber": 67075432,
          "txHash": "0x122f3d3300da3141932e41ca3d7f8abd381a4072d116d7bcae415b5b6fddaf82"
        },
        "balanceSheet": {
          "address": "0x12a110cE5f0FC871cC72Bc7ECaF35cf39DD0f43e",
          "blockNumber": 67075445,
          "txHash": "0x34332c45656f80650c1e8367d756f3bf02ea417ec1492bb3730c720be7c6f0b3"
        },
        "vaultRegistry": {
          "address": "0xd9531AC47928c3386346f82d9A2478960bf2CA7B",
          "blockNumber": 67075458,
          "txHash": "0xddab1946848ee84150a372021ea5dc827fd8c72738f482218ab70adc61fb44c5"
        },
        "poolEscrowFactory": {
          "address": "0x5187A505c485E22f0b8a5FBdF69eF1c29C478CE3",
          "blockNumber": 67075468,
          "txHash": "0x58a184e867d77552e014412da52c20a0d00661759972ec79f163d1b231e9539d"
        },
        "hubRegistry": {
          "address": "0x19f46D8130e610C6C0f0116EA40Fb781dEFaDE93",
          "blockNumber": 67075478,
          "txHash": "0xc2af3ba56270b313e0463c7048bc0fbc33c1330e7bbfc9d095d2afe9d0eb06db"
        },
        "accounting": {
          "address": "0x050206c38f06e4710C4a37D39F75Ddc5c16a7396",
          "blockNumber": 67075570,
          "txHash": "0x7a7ee2671b89663f2acaca632f6e28bb7949c9db43c5bc70322324cf1d6d2a60"
        },
        "holdings": {
          "address": "0x3f0c8D8d2637881c3f6d8531F51a47c2094C918d",
          "blockNumber": 67075581,
          "txHash": "0x92fa30db93e0928bdee3cd48307265e74f14ff9572642640204d108ca46167b0"
        },
        "shareClassManager": {
          "address": "0xaFFC269c8fe18EE9C7DDb22301AC2c2507d69BEf",
          "blockNumber": 67075592,
          "txHash": "0x94ff3861482060c677c821fd2c3d87a434918ae3df3318273e011c04018dba3e"
        },
        "hub": {
          "address": "0xA4A7Bb3831958463b3FE3E27A6a160F764341953",
          "blockNumber": 67075770,
          "txHash": "0x98585032936a2f0d0b790fe03607db53fc7b78c6400278732af5a7bae2b4d831"
        },
        "hubHandler": {
          "address": "0x0dEFb429B1663698da4bAe3278393F6844c3392C",
          "blockNumber": 67075786,
          "txHash": "0x4e476d83fc46e05cc01631e86d1c8d6f134abcf3fb9ae1811b150abce3d96cdd"
        },
        "tokenRecoverer": {
          "address": "0x1E70530e9555711f8DF4838Ab940b97c039B4037",
          "blockNumber": 67075834,
          "txHash": "0x7f65e165a1d3471d7982a0957898b83ec5034ab4449530ce4b2d3c6701201ea5"
        },
        "protocolGuardian": {
          "address": "0xCEb7eD5d5B3bAD3088f6A1697738B60d829635c6",
          "blockNumber": 67075921,
          "txHash": "0x82a17ace852cd02b180e30083addb8a98b6545f8a838bf4a41bff98fdea42c1f"
        },
        "opsGuardian": {
          "address": "0x055589229506Ee89645EF08ebE9B9a863486d0dE",
          "blockNumber": 67075947,
          "txHash": "0xc034a3bb08e7a820df23352b911814578801d3d9b58df933089a189370157d54"
        },
        "refundEscrowFactory": {
          "address": "0xC4f9A1DCF2E05eb55AbB30BaA7070838D3Fd3D5B",
          "blockNumber": 67076335,
          "txHash": "0xa125a269ad6d115463e5c12dc98d4ef620c82d68141a6f8a6afefebd7eef4885"
        },
        "subsidyManager": {
          "address": "0xBFC7B60684880457030C08AceE2E675CbcB9d646",
          "blockNumber": 67076347,
          "txHash": "0xe1861d3e0d2ef618849e692a15338aeeb62f305151c109cc44d84992d103f3c1"
        },
        "asyncRequestManager": {
          "address": "0xF48256AbDDf96EcDDc4B3DbD23E8C1921f9761Ae",
          "blockNumber": 67076411,
          "txHash": "0xd60d5e80135f472e4843887025caade81eee0faf5bd93f33c3cd793dc4ddfd36"
        },
        "syncManager": {
          "address": "0xFf8Ed1862f6aC3a8e89B81C75507c225E36e273D",
          "blockNumber": 67076594,
          "txHash": "0x9d8fd414a49df798dcc28b776db8a451bddbfd67d32af3c717afb08b46713a73"
        },
        "vaultRouter": {
          "address": "0xF684014771C01e50B8B526968B3a1e33acDA63f6",
          "blockNumber": 67076612,
          "txHash": "0x65ae788a3b976d09f7404a46686838ab8041d4055d79a096f5a7f8157af96450"
        },
        "asyncVaultFactory": {
          "address": "0x55cde53B7dbc24336E34FFE233AF8DF10f72F0Be",
          "blockNumber": 67076676,
          "txHash": "0x7bfbca24b22a2c0ecbc3b84e3e00e3a64c9cce4dee53ae33cbc96f54c2b3aeda"
        },
        "syncDepositVaultFactory": {
          "address": "0xdb9C27762045Addd713182521C0580C68BDF700A",
          "blockNumber": 67076846,
          "txHash": "0xd1944aa78ff5c768b1f5b9db99702773745f25e2fdec8ddd5b95c5ff682f670b"
        },
        "freezeOnlyHook": {
          "address": "0xd5B243F05b2906F1f6C80c6096945faADa0731C1",
          "blockNumber": 67076858,
          "txHash": "0x5dcb50eebae6aee9c18b28531770085a10f18e530700c4a0db547eb8c3c1d638"
        },
        "fullRestrictionsHook": {
          "address": "0x8E680873b4C77e6088b4Ba0aBD59d100c3D224a4",
          "blockNumber": 67076897,
          "txHash": "0xc106a36d0b769122491e2fd0a188eaee0d0ac0399905e1a7925a1e9e67168917"
        },
        "freelyTransferableHook": {
          "address": "0x2a9B9C14851Baf7AD19f26607C9171CA1E7a1A61",
          "blockNumber": 67076941,
          "txHash": "0x544b9bde6ee126ef130845b533f42cfa985395c266578df2437c71c634358ad6"
        },
        "redemptionRestrictionsHook": {
          "address": "0xE5423eD8602Fa0F263e17b6212d88Efe42317f06",
          "blockNumber": 67076961,
          "txHash": "0x4aa2f7773a16a96183a6f458dd8d31bd3ecaafc7f8b503072dca17c5664939bf"
        },
        "queueManager": {
          "address": "0x971ACA9b4AB4895F400bA042Fd10A31c7918D220",
          "blockNumber": 67077120,
          "txHash": "0xb4e51e887d9d2d0096ea54c4536113c56097c385812b0e68f1b8d2da956e85dc"
        },
        "accountingToken": {
          "address": "0x15a5D180A4b8da06268260b7B4f89ee7d239B6c5",
          "blockNumber": 67081714,
          "txHash": "0xb054dd67b144afa5cb0f8b9141906cbeedc52cc3092bf72ce90725ecbc8691b3"
        },
        "scriptHelpers": {
          "address": "0x052bb2c1F1551D7CC5373c39c3bC00dCD1F2154C",
          "blockNumber": 67081724,
          "txHash": "0x87553c7ed6f1537d88a3cef4469aa2de20a9c75825766bfb54f4a8eda806fcc3"
        },
        "onchainPMFactory": {
          "address": "0x916bf6cdBE63aC01F4a9A4bb0f0f97Cc212733F6",
          "blockNumber": 67081734,
          "txHash": "0x1bc7ba26d2cf161e547c73b6229a0a4fcffa587710a217548119034d80ef1709"
        },
        "flashLoanHelper": {
          "address": "0x0EA533Edfb5e837f40756FF3b0A8654f062c6F3e",
          "blockNumber": 67081743,
          "txHash": "0xf961908e910d559ac66f7c4b92a48302018b820efa68cf3687e96efa98095b35"
        },
        "onOffRampFactory": {
          "address": "0x22E2f679669D69b6b6f22CC9C1731035a3Fa0296",
          "blockNumber": 67081753,
          "txHash": "0x7251f6cf2f4196e79e4a8a44760ffbb8b7aae9991385c901d2e074b656e7fed8"
        },
        "batchRequestManager": {
          "address": "0xc52Bd1Bdfa0135147D3F01a0B6D6cd0A831dFe77",
          "blockNumber": 67077465,
          "txHash": "0xfd6a20fd5991e5bea0ac3d0dd04881a6c6fd62cc118aecc571d558d33d6925d9"
        },
        "identityValuation": {
          "address": "0x05e22C20B21c1314a0c93d34855358B9B96133CF",
          "blockNumber": 67077475,
          "txHash": "0xc93f4411c97d045799c2bb3e66d18c6e6c0f5d55780b68754f7f4f3860d96d9c"
        },
        "oracleValuation": {
          "address": "0x8c3E9f3cF2dD057d6a2eA33d979faa0061b42c12",
          "blockNumber": 67081888,
          "txHash": "0x190df329e22f93a31941cdc720a4a7102a39a765d620503aa395e6a5d2659c87"
        },
        "navManager": {
          "address": "0x493b6C8ccC7BfD43c5a20C4F2C648701f74E9130",
          "blockNumber": 67077841,
          "txHash": "0x144b25779e9112db18e88c770ba221e231fbf733ef542d7a456b30d1ec61718e"
        },
        "simplePriceManager": {
          "address": "0x280C94eB440A8a75c2F8f6cA8c6FaFf907000823",
          "blockNumber": 67077852,
          "txHash": "0x754c71907f90459b6fa1b452e57bbac50a5f6ac371f4ba4ac6356bf5658645c5"
        },
        "layerZeroAdapter": {
          "address": "0xD517BC7ba17271a8D87BE7355B2523bF5c750295",
          "blockNumber": 67077881,
          "txHash": "0x365d9b66723dd36d582e1d93e00c5282ec099c397e6f5b7a39e23887fec7a934"
        },
        "chainlinkAdapter": {
          "address": "0x39CF679Eb0Ac9075CFb5f94930A367Ba1557D955",
          "blockNumber": 67077903,
          "txHash": "0x68f0f7138a2ab85856264fc5d5abbfaa413888296a8734e167029fea90aa309e"
        },
        "approvalGuard": {
          "address": "0x06522CA52ad905b025B2863F84BF433672d65820",
          "blockNumber": 67081789,
          "txHash": "0x518a183416f51419b048273f202cbd2ce7b476a5b27c6cbd940f4f2ed1ef0605"
        },
        "circuitBreakerGuard": {
          "address": "0x6466899918602f6FC5Bf5c010Ddef417Df7057EA",
          "blockNumber": 67081868,
          "txHash": "0x58c21c537b12966c9ea628c55413634b71d6542b2b9a87088d6c588c0820e484"
        },
        "slippageGuard": {
          "address": "0x069385B688b1764B15E39E93ADFe12B768C8Bf95",
          "blockNumber": 67081879,
          "txHash": "0x2581c5daa87caa17f626e28a52eba5a54dd493b67e8f1e7f5d09d466456f64fe"
        }
      },
      "deployment": {
        "deployedAt": 1785844168,
        "startBlock": 67075070
      }
    }
  },
  "abis": {
    "Root": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "_delay",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "cancelRely",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "delay",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "denyContract",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "endorse",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "endorsed",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "endorsements",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "executeScheduledRely",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "pause",
        "inputs": [],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "paused",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "relyContract",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "schedule",
        "inputs": [
          {
            "name": "relyTarget",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "timestamp",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "scheduleRely",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "unpause",
        "inputs": [],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "veto",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "CancelRely",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "DenyContract",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Endorse",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Pause",
        "inputs": [],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "RelyContract",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "ScheduleRely",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "scheduledTime",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Unpause",
        "inputs": [],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Veto",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "DelayTooLong",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TargetNotReady",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TargetNotScheduled",
        "inputs": []
      }
    ],
    "Gateway": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "localCentrifugeId_",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "pauser_",
            "type": "address",
            "internalType": "contract IProtocolPauser"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "BATCH_LOCATORS_SLOT",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "adapter",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAdapter"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "blockOutgoing",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "isBlocked",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "failedMessages",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "messageHash",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "instance",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "handle",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "batch",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "isBatching",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isOutgoingBlocked",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "localCentrifugeId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "lockCallback",
        "inputs": [],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "manager",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "messageProperties",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IMessageProperties"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pauser",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IProtocolPauser"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "processor",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IMessageHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "repay",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "batch",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "retry",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "message",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "send",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "message",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "unpaidMode",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "underpaid",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "batchHash",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "gasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "counter",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "who",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "withBatch",
        "inputs": [
          {
            "name": "data",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "withBatch",
        "inputs": [
          {
            "name": "data",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "callbackValue",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "event",
        "name": "BlockOutgoing",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": false,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": false,
            "internalType": "PoolId"
          },
          {
            "name": "isBlocked",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "DepositSubsidy",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "ExecuteMessage",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "messageHash",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "FailMessage",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "messageHash",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "error",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "addr",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "PrepareMessage",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": false,
            "internalType": "PoolId"
          },
          {
            "name": "message",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "RepayBatch",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "batch",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetRefundAddress",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": false,
            "internalType": "PoolId"
          },
          {
            "name": "refund",
            "type": "address",
            "indexed": false,
            "internalType": "contract IRecoverable"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UnderpaidBatch",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "batch",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          },
          {
            "name": "batchHash",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": false,
            "internalType": "PoolId"
          },
          {
            "name": "who",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "WithdrawSubsidy",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "BatchTooExpensive",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CallFailedWithEmptyRevert",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CallbackIsLocked",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CallbackWasNotFromSender",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CallbackWasNotLocked",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CannotRefund",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EmptyMessage",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MalformedBatch",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoBatched",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotEnoughGas",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotEnoughValueForCallback",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotFailedMessage",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotPayable",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotUnderpaidBatch",
        "inputs": []
      },
      {
        "type": "error",
        "name": "OutgoingBlocked",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Paused",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ReentrantBatchCreation",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SafeTransferEthFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOutOfBounds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOverflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TooLongMessage",
        "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"
          }
        ]
      }
    ],
    "MultiAdapter": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "localCentrifugeId_",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "gateway_",
            "type": "address",
            "internalType": "contract IMessageHandler"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "GLOBAL_POOL",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "activeSessionId",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "adapters",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAdapter"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "estimate",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "gasLimit",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "total",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "instance",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "gateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IMessageHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "handle",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "inbound",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "payloadHash",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "sessionId",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "localCentrifugeId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "messageProperties",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IMessageProperties"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "quorum",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "recoveryIndex",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "send",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "gasLimit",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "setAdapters",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "addresses",
            "type": "address[]",
            "internalType": "contract IAdapter[]"
          },
          {
            "name": "threshold_",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "recoveryIndex_",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "threshold",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "votes",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "payloadHash",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "int16[8]",
            "internalType": "int16[8]"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "addr",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "HandlePayload",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "payloadId",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "payload",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          },
          {
            "name": "adapter",
            "type": "address",
            "indexed": false,
            "internalType": "contract IAdapter"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SendPayload",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "payloadId",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "payload",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          },
          {
            "name": "adapter",
            "type": "address",
            "indexed": false,
            "internalType": "contract IAdapter"
          },
          {
            "name": "adapterData",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "gasLimit",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "gasPaid",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "refund",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetAdapters",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": false,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": false,
            "internalType": "PoolId"
          },
          {
            "name": "adapters",
            "type": "address[]",
            "indexed": false,
            "internalType": "contract IAdapter[]"
          },
          {
            "name": "threshold",
            "type": "uint8",
            "indexed": false,
            "internalType": "uint8"
          },
          {
            "name": "recoveryIndex",
            "type": "uint8",
            "indexed": false,
            "internalType": "uint8"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "EmptyAdapterSet",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ExceedsMax",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidAdapter",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoDuplicatesAllowed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotEntrypoint",
        "inputs": []
      },
      {
        "type": "error",
        "name": "RecoveryIndexHigherThanQuorum",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ThresholdHigherThanQuorum",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint8_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownChainId",
        "inputs": []
      }
    ],
    "ContractUpdater": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "trustedCall",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "update",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "untrustedCall",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "update",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "sender",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "TrustedContractUpdate",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "target",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "payload",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UntrustedContractUpdate",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "target",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "payload",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": false,
            "internalType": "uint16"
          },
          {
            "name": "sender",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      }
    ],
    "GasService": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "txLimits",
            "type": "uint8[32]",
            "internalType": "uint8[32]"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "BASE_COST",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "DEFAULT_SUPPORTED_TX_LIMIT",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "RECOVERY_TOKEN_EXTRA_COST",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "cancelUpgrade",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "executeTransferShares",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "initiateTransferShares",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxAssetPriceAge",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxBatchGasLimit",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxSharePriceAge",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "messageLength",
        "inputs": [
          {
            "name": "message",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "messageOverallGasLimit",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "message",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "messagePoolId",
        "inputs": [
          {
            "name": "message",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "messageProcessingGasLimit",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "message",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "notifyPool",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "notifyPricePoolPerAsset",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "notifyPricePoolPerShare",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "notifyShareClass",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "notifyShareMetadata",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "registerAsset",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "request",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "requestCallback",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "scheduleUpgrade",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "setPoolAdapters",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "setRequestManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "trustedContractUpdate",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "txLimitsPerCentrifugeId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "untrustedContractUpdate",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateBalanceSheetManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateGatewayManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateHoldingAmount",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateRestriction",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateShareHook",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateShares",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateVaultDeployAndLink",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateVaultLink",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateVaultUnlink",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "error",
        "name": "InvalidMessageType",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOutOfBounds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownMessageType",
        "inputs": []
      }
    ],
    "MessageProcessor": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "scheduleAuth_",
            "type": "address",
            "internalType": "contract IScheduleAuth"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "MAINNET_CENTRIFUGE_ID",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheetGatewayHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "contractUpdater",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IContractUpdateGatewayHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "gateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "handle",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "message",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "hubHandler",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubGatewayHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "multiAdapter",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IMultiAdapter"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "scheduleAuth",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IScheduleAuth"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "spoke",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpokeGatewayHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "tokenRecoverer",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ITokenRecoverer"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "vaultRegistry",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IVaultRegistryGatewayHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "addr",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidMessage",
        "inputs": [
          {
            "name": "code",
            "type": "uint8",
            "internalType": "uint8"
          }
        ]
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "OnlyFromMainnet",
        "inputs": []
      },
      {
        "type": "error",
        "name": "OnlyFromSource",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SizeNot128",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOutOfBounds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOverflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownMessageType",
        "inputs": []
      }
    ],
    "MessageDispatcher": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "localCentrifugeId_",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "scheduleAuth_",
            "type": "address",
            "internalType": "contract IScheduleAuth"
          },
          {
            "name": "gateway_",
            "type": "address",
            "internalType": "contract IGateway"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheetGatewayHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "contractUpdater",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IContractUpdateGatewayHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "gateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "hubHandler",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubGatewayHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "localCentrifugeId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "multiAdapter",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IMultiAdapter"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "scheduleAuth",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IScheduleAuth"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "sendCancelUpgrade",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "target",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendExecuteTransferShares",
        "inputs": [
          {
            "name": "originCentrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "targetCentrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "receiver",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendInitiateTransferShares",
        "inputs": [
          {
            "name": "targetCentrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "receiver",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "remoteExtraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendNotifyPool",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendNotifyPricePoolPerAsset",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendNotifyPricePoolPerShare",
        "inputs": [
          {
            "name": "chainId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "pricePoolPerShare",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "computedAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendNotifyShareClass",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "name",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "decimals",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "salt",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "hook",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendNotifyShareMetadata",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "name",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendRecoverTokens",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "target",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "token",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "to",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendRegisterAsset",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "decimals",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendRequest",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "unpaidMode",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendRequestCallback",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "unpaidMode",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendScheduleUpgrade",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "target",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendSetMaxAssetPriceAge",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "maxPriceAge",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendSetMaxSharePriceAge",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "maxPriceAge",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendSetPoolAdapters",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "adapters",
            "type": "bytes32[]",
            "internalType": "bytes32[]"
          },
          {
            "name": "threshold",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "recoveryIndex",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendSetRequestManager",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "manager",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendTrustedContractUpdate",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "target",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendUntrustedContractUpdate",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "target",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "sender",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendUpdateBalanceSheetManager",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "who",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "canManage",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendUpdateGatewayManager",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "who",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "canManage",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendUpdateHoldingAmount",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "data",
            "type": "tuple",
            "internalType": "struct ISpokeMessageSender.UpdateData",
            "components": [
              {
                "name": "netAmount",
                "type": "uint128",
                "internalType": "uint128"
              },
              {
                "name": "isIncrease",
                "type": "bool",
                "internalType": "bool"
              },
              {
                "name": "isSnapshot",
                "type": "bool",
                "internalType": "bool"
              },
              {
                "name": "nonce",
                "type": "uint64",
                "internalType": "uint64"
              }
            ]
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendUpdateRestriction",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendUpdateShareHook",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "hook",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendUpdateShares",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "data",
            "type": "tuple",
            "internalType": "struct ISpokeMessageSender.UpdateData",
            "components": [
              {
                "name": "netAmount",
                "type": "uint128",
                "internalType": "uint128"
              },
              {
                "name": "isIncrease",
                "type": "bool",
                "internalType": "bool"
              },
              {
                "name": "isSnapshot",
                "type": "bool",
                "internalType": "bool"
              },
              {
                "name": "nonce",
                "type": "uint64",
                "internalType": "uint64"
              }
            ]
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sendUpdateVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "vaultOrFactory",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "kind",
            "type": "uint8",
            "internalType": "enum VaultUpdateKind"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "spoke",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpokeGatewayHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "tokenRecoverer",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ITokenRecoverer"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "vaultRegistry",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IVaultRegistryGatewayHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "addr",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "CannotBeSentLocally",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CannotRefund",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOutOfBounds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOverflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint16_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint64_Overflow",
        "inputs": []
      }
    ],
    "TokenFactory": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "_root",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address[]",
            "internalType": "address[]"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "getAddress",
        "inputs": [
          {
            "name": "decimals",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "salt",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "newToken",
        "inputs": [
          {
            "name": "name",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "decimals",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "salt",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IShareToken"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "tokenWards",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "addr",
            "type": "address[]",
            "indexed": false,
            "internalType": "address[]"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      }
    ],
    "ShareToken": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "decimals_",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "DOMAIN_SEPARATOR",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "PERMIT_TYPEHASH",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "allowance",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "approve",
        "inputs": [
          {
            "name": "spender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "authTransferFrom",
        "inputs": [
          {
            "name": "sender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "success",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "balanceOf",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "burn",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "checkTransferRestriction",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "decimals",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deploymentChainId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "detectTransferRestriction",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "string",
            "internalType": "string"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "hook",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "hookDataOf",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes16",
            "internalType": "bytes16"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "messageForTransferRestriction",
        "inputs": [
          {
            "name": "restrictionCode",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "string",
            "internalType": "string"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "mint",
        "inputs": [
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "name",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "string",
            "internalType": "string"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "nonces",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "permit",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "spender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "deadline",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "signature",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "permit",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "spender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "deadline",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setHookData",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "bytes16",
            "internalType": "bytes16"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "supportsInterface",
        "inputs": [
          {
            "name": "interfaceId",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "symbol",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "string",
            "internalType": "string"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "totalSupply",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "transfer",
        "inputs": [
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "success",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "transferFrom",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "success",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateVault",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "vault_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "vault",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Approval",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "spender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "string",
            "indexed": false,
            "internalType": "string"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetHookData",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "data",
            "type": "bytes16",
            "indexed": false,
            "internalType": "bytes16"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Transfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "VaultUpdate",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "vault",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "ExceedsMaxSupply",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InsufficientAllowance",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InsufficientBalance",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidAddress",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidPermit",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidSigner",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorizedOrHook",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PermitExpired",
        "inputs": []
      },
      {
        "type": "error",
        "name": "RestrictionsFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      }
    ],
    "Spoke": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "tokenFactory_",
            "type": "address",
            "internalType": "contract ITokenFactory"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "addPool",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "addShareClass",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "name",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "decimals",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "salt",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "hook",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "assetToId",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "crosschainTransferShares",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "receiver",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "remoteExtraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "crosschainTransferShares",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "receiver",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "remoteExtraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "executeTransferShares",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "receiver",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "gateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "idToAsset",
        "inputs": [
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isPoolActive",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "linkToken",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "shareToken_",
            "type": "address",
            "internalType": "contract IShareToken"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "markersPricePoolPerAsset",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "computedAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "maxAge",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "markersPricePoolPerShare",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "computedAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "maxAge",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pool",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "createdAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolEscrowFactory",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IPoolEscrowFactory"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pricePoolPerAsset",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "checkValidity",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "price",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pricePoolPerShare",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "checkValidity",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "price",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pricesPoolPer",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "checkValidity",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "pricePoolPerAsset_",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "pricePoolPerShare_",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "registerAsset",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "request",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "unpaid",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "requestCallback",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "requestManager",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRequestManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "sender",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpokeMessageSender"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "setMaxAssetPriceAge",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "maxPriceAge",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setMaxSharePriceAge",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "maxPriceAge",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setRequestManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "manager",
            "type": "address",
            "internalType": "contract IRequestManager"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setShareTokenVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "vault",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "shareClass",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "shareToken",
            "type": "address",
            "internalType": "contract IShareToken"
          },
          {
            "name": "pricePoolPerShare",
            "type": "tuple",
            "internalType": "struct Price",
            "components": [
              {
                "name": "price",
                "type": "uint128",
                "internalType": "D18"
              },
              {
                "name": "computedAt",
                "type": "uint64",
                "internalType": "uint64"
              },
              {
                "name": "maxAge",
                "type": "uint64",
                "internalType": "uint64"
              }
            ]
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "shareToken",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IShareToken"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "shareTokenDetails",
        "inputs": [
          {
            "name": "shareToken_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "tokenFactory",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ITokenFactory"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateContract",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "target",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updatePricePoolPerAsset",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "price",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "computedAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updatePricePoolPerShare",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "price",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "computedAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateRestriction",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "update",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateShareHook",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "hook",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateShareMetadata",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "name",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "internalType": "string"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "AddPool",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "AddShareClass",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "token",
            "type": "address",
            "indexed": false,
            "internalType": "contract IShareToken"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "DeployVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "factory",
            "type": "address",
            "indexed": false,
            "internalType": "contract IVaultFactory"
          },
          {
            "name": "vault",
            "type": "address",
            "indexed": false,
            "internalType": "contract IVault"
          },
          {
            "name": "kind",
            "type": "uint8",
            "indexed": false,
            "internalType": "enum VaultKind"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "ExecuteTransferShares",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "InitiateTransferShares",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": false,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "destinationAddress",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "LinkVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "vault",
            "type": "address",
            "indexed": false,
            "internalType": "contract IVault"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "RegisterAsset",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": false,
            "internalType": "uint16"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "name",
            "type": "string",
            "indexed": false,
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "indexed": false,
            "internalType": "string"
          },
          {
            "name": "decimals",
            "type": "uint8",
            "indexed": false,
            "internalType": "uint8"
          },
          {
            "name": "isInitialization",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetRequestManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "manager",
            "type": "address",
            "indexed": false,
            "internalType": "contract IRequestManager"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UnlinkVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "vault",
            "type": "address",
            "indexed": false,
            "internalType": "contract IVault"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UntrustedContractUpdate",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "target",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "payload",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateAssetPrice",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "price",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "computedAt",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateMaxAssetPriceAge",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "maxPriceAge",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateMaxSharePriceAge",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "maxPriceAge",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateSharePrice",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "price",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "computedAt",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyLinkedVault",
        "inputs": []
      },
      {
        "type": "error",
        "name": "AlreadyUnlinkedVault",
        "inputs": []
      },
      {
        "type": "error",
        "name": "AssetMissingDecimals",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CannotSetOlderPrice",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CrossChainTransferNotAllowed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidFactory",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidHook",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidManager",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidPool",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidPrice",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidRequestManager",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidVault",
        "inputs": []
      },
      {
        "type": "error",
        "name": "LocalTransferNotAllowed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MalformedVaultUpdateMessage",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "OldHook",
        "inputs": []
      },
      {
        "type": "error",
        "name": "OldMetadata",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PoolAlreadyAdded",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "RequestManagerNotSet",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SafeTransferEthFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareClassAlreadyRegistered",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareTokenDoesNotExist",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareTokenTransferFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TooFewDecimals",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TooManyDecimals",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TransferFromFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnauthorizedSender",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownAsset",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownVault",
        "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"
          }
        ]
      }
    ],
    "BalanceSheet": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "endorsements_",
            "type": "address",
            "internalType": "contract IEndorsements"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "availableBalanceOf",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deposit",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "endorsements",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IEndorsements"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "escrow",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IPoolEscrow"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "executeMulticall",
        "inputs": [
          {
            "name": "data",
            "type": "bytes[]",
            "internalType": "bytes[]"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "gateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "issue",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "shares",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "manager",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "multicall",
        "inputs": [
          {
            "name": "data",
            "type": "bytes[]",
            "internalType": "bytes[]"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "noteDeposit",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "updateEscrow",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "pricePoolPerAsset_",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "noteDeposit",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [
          {
            "name": "pricePoolPerAsset_",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "noteWithdraw",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "updateEscrow",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "pricePoolPerAsset_",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "noteWithdraw",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [
          {
            "name": "pricePoolPerAsset_",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "overridePricePoolPerAsset",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "value",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "overridePricePoolPerShare",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "value",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "poolEscrowProvider",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IPoolEscrowProvider"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "queuedAssets",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "deposits",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "withdrawals",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "queuedShares",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "delta",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "isPositive",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "queuedAssetCounter",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "nonce",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "reserve",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "reserver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "reason",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "resetPricePoolPerAsset",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "resetPricePoolPerShare",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "revoke",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "shares",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sender",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpokeMessageSender"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "spoke",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpoke"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "submitQueuedAssets",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "submitQueuedShares",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "transferSharesFrom",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "sender_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "unreserve",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "reserver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "reason",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "who",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "withdraw",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "withdraw",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "mode",
            "type": "uint8",
            "internalType": "enum WithdrawMode"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deposit",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Issue",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "pricePoolPerShare",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "shares",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "NoteDeposit",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "NoteWithdraw",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Revoke",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "from",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "pricePoolPerShare",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "shares",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SubmitQueuedAssets",
        "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": "data",
            "type": "tuple",
            "indexed": false,
            "internalType": "struct ISpokeMessageSender.UpdateData",
            "components": [
              {
                "name": "netAmount",
                "type": "uint128",
                "internalType": "uint128"
              },
              {
                "name": "isIncrease",
                "type": "bool",
                "internalType": "bool"
              },
              {
                "name": "isSnapshot",
                "type": "bool",
                "internalType": "bool"
              },
              {
                "name": "nonce",
                "type": "uint64",
                "internalType": "uint64"
              }
            ]
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SubmitQueuedShares",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "data",
            "type": "tuple",
            "indexed": false,
            "internalType": "struct ISpokeMessageSender.UpdateData",
            "components": [
              {
                "name": "netAmount",
                "type": "uint128",
                "internalType": "uint128"
              },
              {
                "name": "isIncrease",
                "type": "bool",
                "internalType": "bool"
              },
              {
                "name": "isSnapshot",
                "type": "bool",
                "internalType": "bool"
              },
              {
                "name": "nonce",
                "type": "uint64",
                "internalType": "uint64"
              }
            ]
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "TransferSharesFrom",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "from",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "who",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Withdraw",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyBatching",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CallFailedWithEmptyRevert",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CannotTransferFromEndorsedContract",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SafeTransferEthFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnauthorizedSender",
        "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"
          }
        ]
      }
    ],
    "VaultRegistry": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "initialWard",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deployVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "factory",
            "type": "address",
            "internalType": "contract IVaultFactory"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IVault"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "isLinked",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IVault"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "linkVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IVault"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "registerVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "factory",
            "type": "address",
            "internalType": "contract IVaultFactory"
          },
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IVault"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "spoke",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpoke"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "unlinkVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IVault"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "vaultOrFactory",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "kind",
            "type": "uint8",
            "internalType": "enum VaultUpdateKind"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "vault",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRequestManager"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IVault"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "vaultDetails",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IVault"
          }
        ],
        "outputs": [
          {
            "name": "details",
            "type": "tuple",
            "internalType": "struct VaultDetails",
            "components": [
              {
                "name": "assetId",
                "type": "uint128",
                "internalType": "AssetId"
              },
              {
                "name": "asset",
                "type": "address",
                "internalType": "address"
              },
              {
                "name": "tokenId",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "isLinked",
                "type": "bool",
                "internalType": "bool"
              }
            ]
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "DeployVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "factory",
            "type": "address",
            "indexed": false,
            "internalType": "contract IVaultFactory"
          },
          {
            "name": "vault",
            "type": "address",
            "indexed": false,
            "internalType": "contract IVault"
          },
          {
            "name": "kind",
            "type": "uint8",
            "indexed": false,
            "internalType": "enum VaultKind"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "LinkVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "vault",
            "type": "address",
            "indexed": false,
            "internalType": "contract IVault"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UnlinkVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "vault",
            "type": "address",
            "indexed": false,
            "internalType": "contract IVault"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyLinkedVault",
        "inputs": []
      },
      {
        "type": "error",
        "name": "AlreadyUnlinkedVault",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidRequestManager",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidVault",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MalformedVaultUpdateMessage",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SafeTransferEthFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownVault",
        "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"
          }
        ]
      }
    ],
    "PoolEscrowFactory": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "root_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "escrow",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IPoolEscrow"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "newEscrow",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IPoolEscrow"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "DeployPoolEscrow",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "escrow",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "EscrowAlreadyDeployed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      }
    ],
    "PoolEscrow": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "authTransferTo",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "availableBalanceOf",
        "inputs": [
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deposit",
        "inputs": [
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "value",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "holding",
        "inputs": [
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "total",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "reserved",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "reserve",
        "inputs": [
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "value",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "caller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "reason",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "reservedBy",
        "inputs": [
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "reserver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "reason",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "unreserve",
        "inputs": [
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "value",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "caller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "reason",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "withdraw",
        "inputs": [
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "AuthTransferTo",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "DecreaseReserve",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "caller",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "reason",
            "type": "uint32",
            "indexed": false,
            "internalType": "uint32"
          },
          {
            "name": "delta",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "value",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deposit",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "value",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "IncreaseReserve",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "caller",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "reason",
            "type": "uint32",
            "indexed": false,
            "internalType": "uint32"
          },
          {
            "name": "delta",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "value",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "ReceiveNativeTokens",
        "inputs": [
          {
            "name": "who",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Withdraw",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "InsufficientBalance",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "balance",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "type": "error",
        "name": "InsufficientDeposit",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InsufficientReserve",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SafeTransferEthFailed",
        "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"
          }
        ]
      }
    ],
    "HubRegistry": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "currency",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "decimals",
        "inputs": [
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "decimals_",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "decimals",
        "inputs": [
          {
            "name": "asset_",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "decimals_",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "decimals",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "decimals_",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "dependency",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "exists",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "hubRequestManager",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubRequestManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRegistered",
        "inputs": [
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "manager",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "metadata",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolId",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "postfix",
            "type": "uint48",
            "internalType": "uint48"
          }
        ],
        "outputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "registerAsset",
        "inputs": [
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "decimals_",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "registerPool",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "manager_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "currency_",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setHubRequestManager",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "manager_",
            "type": "address",
            "internalType": "contract IHubRequestManager"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setMetadata",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "metadata_",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateCurrency",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "currency_",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateDependency",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "dependency_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateManager",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "manager_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "NewAsset",
        "inputs": [
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "decimals",
            "type": "uint8",
            "indexed": false,
            "internalType": "uint8"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "NewPool",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": false,
            "internalType": "PoolId"
          },
          {
            "name": "manager",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "currency",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetHubRequestManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "manager",
            "type": "address",
            "indexed": false,
            "internalType": "contract IHubRequestManager"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetMetadata",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "metadata",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateCurrency",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "currency",
            "type": "uint128",
            "indexed": false,
            "internalType": "AssetId"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateDependency",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "dependency",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "manager",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AssetAlreadyRegistered",
        "inputs": []
      },
      {
        "type": "error",
        "name": "AssetNotFound",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EmptyAccount",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EmptyCurrency",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EmptyShareClassManager",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NonExistingPool",
        "inputs": [
          {
            "name": "id",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ]
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PoolAlreadyRegistered",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      }
    ],
    "Accounting": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "accountValue",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "account",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "accounts",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "outputs": [
          {
            "name": "totalDebit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "totalCredit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "isDebitNormal",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "lastUpdated",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "metadata",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "addCredit",
        "inputs": [
          {
            "name": "account",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "value",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "addDebit",
        "inputs": [
          {
            "name": "account",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "value",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "addJournal",
        "inputs": [
          {
            "name": "debits",
            "type": "tuple[]",
            "internalType": "struct JournalEntry[]",
            "components": [
              {
                "name": "value",
                "type": "uint128",
                "internalType": "uint128"
              },
              {
                "name": "accountId",
                "type": "uint256",
                "internalType": "AccountId"
              }
            ]
          },
          {
            "name": "credits",
            "type": "tuple[]",
            "internalType": "struct JournalEntry[]",
            "components": [
              {
                "name": "value",
                "type": "uint128",
                "internalType": "uint128"
              },
              {
                "name": "accountId",
                "type": "uint256",
                "internalType": "AccountId"
              }
            ]
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "createAccount",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "account",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "isDebitNormal",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "credited",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "debited",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "exists",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "account",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "lock",
        "inputs": [],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setAccountMetadata",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "account",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "metadata",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "unlock",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "CreateAccount",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "account",
            "type": "uint256",
            "indexed": true,
            "internalType": "AccountId"
          },
          {
            "name": "isDebitNormal",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Credit",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "account",
            "type": "uint256",
            "indexed": true,
            "internalType": "AccountId"
          },
          {
            "name": "value",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Debit",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "account",
            "type": "uint256",
            "indexed": true,
            "internalType": "AccountId"
          },
          {
            "name": "value",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "EndJournalId",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "journalId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetAccountMetadata",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "account",
            "type": "uint256",
            "indexed": true,
            "internalType": "AccountId"
          },
          {
            "name": "metadata",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "StartJournalId",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "journalId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AccountDoesNotExist",
        "inputs": []
      },
      {
        "type": "error",
        "name": "AccountExists",
        "inputs": []
      },
      {
        "type": "error",
        "name": "AccountingAlreadyUnlocked",
        "inputs": []
      },
      {
        "type": "error",
        "name": "AccountingLocked",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Unbalanced",
        "inputs": []
      }
    ],
    "Holdings": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "hubRegistry_",
            "type": "address",
            "internalType": "contract IHubRegistry"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "accountId",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "kind",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "amount",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "amount_",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "callOnSyncSnapshot",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "callOnTransferSnapshot",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "originCentrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "targetCentrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "amount_",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "decrease",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "amount_",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [
          {
            "name": "amountValueUnclamped",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "holding",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "assetAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "assetAmountValue",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "valuation",
            "type": "address",
            "internalType": "contract IValuation"
          },
          {
            "name": "isLiability",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "hubRegistry",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubRegistry"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "increase",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "amount_",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [
          {
            "name": "amountValue",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "initialize",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "valuation_",
            "type": "address",
            "internalType": "contract IValuation"
          },
          {
            "name": "isLiability_",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "accounts",
            "type": "tuple[]",
            "internalType": "struct HoldingAccount[]",
            "components": [
              {
                "name": "accountId",
                "type": "uint256",
                "internalType": "AccountId"
              },
              {
                "name": "kind",
                "type": "uint8",
                "internalType": "uint8"
              }
            ]
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "isInitialized",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isLiability",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setAccountId",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "kind",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "accountId_",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setSnapshot",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "isSnapshot",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "nonce",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setSnapshotHook",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "hook",
            "type": "address",
            "internalType": "contract ISnapshotHook"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "snapshot",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "isSnapshot",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "nonce",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "snapshotHook",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISnapshotHook"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "update",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "isPositive",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "diffValue",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateIsLiability",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "isLiability_",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateValuation",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "valuation_",
            "type": "address",
            "internalType": "contract IValuation"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "valuation",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IValuation"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "value",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "value_",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Decrease",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "decreasedValue",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Increase",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "increasedValue",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Initialize",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "valuation",
            "type": "address",
            "indexed": false,
            "internalType": "contract IValuation"
          },
          {
            "name": "isLiability",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          },
          {
            "name": "accounts",
            "type": "tuple[]",
            "indexed": false,
            "internalType": "struct HoldingAccount[]",
            "components": [
              {
                "name": "accountId",
                "type": "uint256",
                "internalType": "AccountId"
              },
              {
                "name": "kind",
                "type": "uint8",
                "internalType": "uint8"
              }
            ]
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetAccountId",
        "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": "kind",
            "type": "uint8",
            "indexed": false,
            "internalType": "uint8"
          },
          {
            "name": "accountId",
            "type": "uint256",
            "indexed": false,
            "internalType": "AccountId"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetSnapshot",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "isSnapshot",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          },
          {
            "name": "nonce",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetSnapshotHook",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "hook",
            "type": "address",
            "indexed": false,
            "internalType": "contract ISnapshotHook"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Update",
        "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": "isPositive",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          },
          {
            "name": "diffValue",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateIsLiability",
        "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": "isLiability",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateValuation",
        "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": "valuation",
            "type": "address",
            "indexed": false,
            "internalType": "contract IValuation"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyInitialized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "HoldingNotFound",
        "inputs": []
      },
      {
        "type": "error",
        "name": "HoldingNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidNonce",
        "inputs": [
          {
            "name": "expected",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "actual",
            "type": "uint64",
            "internalType": "uint64"
          }
        ]
      },
      {
        "type": "error",
        "name": "MulDiv_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "WrongAssetId",
        "inputs": []
      },
      {
        "type": "error",
        "name": "WrongShareClassId",
        "inputs": []
      },
      {
        "type": "error",
        "name": "WrongValuation",
        "inputs": []
      }
    ],
    "ShareClassManager": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "hubRegistry_",
            "type": "address",
            "internalType": "contract IHubRegistry"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "addShareClass",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "name",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "salt",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "exists",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "hubRegistry",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubRegistry"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "issuance",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "issuancePerNetwork",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "issuances",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "revocations",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "metadata",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "name",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "salt",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "previewNextShareClassId",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "previewShareClassId",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "index",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "outputs": [
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "pricePoolPerShare",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "price",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "computedAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "salts",
        "inputs": [
          {
            "name": "salt",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "shareClassCount",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "shareClassIds",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "totalIssuance",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateMetadata",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "name",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "internalType": "string"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateSharePrice",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "pricePoolPerShare_",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "computedAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateShares",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "isIssuance",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "AddShareClass",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "index",
            "type": "uint32",
            "indexed": true,
            "internalType": "uint32"
          },
          {
            "name": "name",
            "type": "string",
            "indexed": false,
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "indexed": false,
            "internalType": "string"
          },
          {
            "name": "salt",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "RemoteIssueShares",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "RemoteRevokeShares",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateMetadata",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "name",
            "type": "string",
            "indexed": false,
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "indexed": false,
            "internalType": "string"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdatePricePoolPerShare",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "price",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "computedAt",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyUsedSalt",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CannotSetFuturePrice",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidMetadataName",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidMetadataSymbol",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidSalt",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NegativeIssuance",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareClassNotFound",
        "inputs": []
      }
    ],
    "Hub": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "gateway_",
            "type": "address",
            "internalType": "contract IGateway"
          },
          {
            "name": "holdings_",
            "type": "address",
            "internalType": "contract IHoldings"
          },
          {
            "name": "accounting_",
            "type": "address",
            "internalType": "contract IAccounting"
          },
          {
            "name": "hubRegistry_",
            "type": "address",
            "internalType": "contract IHubRegistry"
          },
          {
            "name": "multiAdapter_",
            "type": "address",
            "internalType": "contract IMultiAdapter"
          },
          {
            "name": "shareClassManager_",
            "type": "address",
            "internalType": "contract IShareClassManager"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "accounting",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAccounting"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "addShareClass",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "name",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "salt",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "createAccount",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "account",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "isDebitNormal",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "createPool",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "admin",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "currency",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "executeMulticall",
        "inputs": [
          {
            "name": "data",
            "type": "bytes[]",
            "internalType": "bytes[]"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "feeHook",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IFeeHook"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "gateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "holdingAccounts",
        "inputs": [
          {
            "name": "assetAccount",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "equityAccount",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "gainAccount",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "lossAccount",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "tuple[]",
            "internalType": "struct HoldingAccount[]",
            "components": [
              {
                "name": "accountId",
                "type": "uint256",
                "internalType": "AccountId"
              },
              {
                "name": "kind",
                "type": "uint8",
                "internalType": "uint8"
              }
            ]
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "holdings",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHoldings"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "hubRegistry",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubRegistry"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "initializeHolding",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "valuation",
            "type": "address",
            "internalType": "contract IValuation"
          },
          {
            "name": "assetAccount",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "equityAccount",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "gainAccount",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "lossAccount",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "initializeLiability",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "valuation",
            "type": "address",
            "internalType": "contract IValuation"
          },
          {
            "name": "expenseAccount",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "liabilityAccount",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "liabilityAccounts",
        "inputs": [
          {
            "name": "expenseAccount",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "liabilityAccount",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "tuple[]",
            "internalType": "struct HoldingAccount[]",
            "components": [
              {
                "name": "accountId",
                "type": "uint256",
                "internalType": "AccountId"
              },
              {
                "name": "kind",
                "type": "uint8",
                "internalType": "uint8"
              }
            ]
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "multiAdapter",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IMultiAdapter"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "multicall",
        "inputs": [
          {
            "name": "data",
            "type": "bytes[]",
            "internalType": "bytes[]"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "notifyAssetPrice",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "notifyPool",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "notifyShareClass",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "hook",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "notifyShareMetadata",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "notifySharePrice",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "pricePoolPerAsset",
        "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": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "requestCallback",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "unpaidMode",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sender",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubMessageSender"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "setAccountMetadata",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "account",
            "type": "uint256",
            "internalType": "AccountId"
          },
          {
            "name": "metadata",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "setAdapters",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "localAdapters",
            "type": "address[]",
            "internalType": "contract IAdapter[]"
          },
          {
            "name": "remoteAdapters",
            "type": "bytes32[]",
            "internalType": "bytes32[]"
          },
          {
            "name": "threshold",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "recoveryIndex",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "setHoldingAccountId",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "kind",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "accountId",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "setMaxAssetPriceAge",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "maxPriceAge",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "setMaxSharePriceAge",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "maxPriceAge",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "setPoolMetadata",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "metadata",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "setRequestManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "hubManager",
            "type": "address",
            "internalType": "contract IHubRequestManager"
          },
          {
            "name": "spokeManager",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "setSnapshotHook",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "hook",
            "type": "address",
            "internalType": "contract ISnapshotHook"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "shareClassManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IShareClassManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateAccountingAmount",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "isPositive",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "diff",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateAccountingValue",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "isPositive",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "diff",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateBalanceSheetManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "who",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "canManage",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateContract",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "target",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateGatewayManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "who",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "canManage",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateHoldingIsLiability",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "isLiability",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateHoldingValuation",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "valuation",
            "type": "address",
            "internalType": "contract IValuation"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateHoldingValue",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateHubManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "who",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateJournal",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "debits",
            "type": "tuple[]",
            "internalType": "struct JournalEntry[]",
            "components": [
              {
                "name": "value",
                "type": "uint128",
                "internalType": "uint128"
              },
              {
                "name": "accountId",
                "type": "uint256",
                "internalType": "AccountId"
              }
            ]
          },
          {
            "name": "credits",
            "type": "tuple[]",
            "internalType": "struct JournalEntry[]",
            "components": [
              {
                "name": "value",
                "type": "uint128",
                "internalType": "uint128"
              },
              {
                "name": "accountId",
                "type": "uint256",
                "internalType": "AccountId"
              }
            ]
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateRestriction",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateShareClassMetadata",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "name",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "internalType": "string"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateShareHook",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "hook",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateSharePrice",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "pricePoolPerShare",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "computedAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "updateVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "vaultOrFactory",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "kind",
            "type": "uint8",
            "internalType": "enum VaultUpdateKind"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "addr",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "ForwardTransferShares",
        "inputs": [
          {
            "name": "fromCentrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "toCentrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "receiver",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "NotifyAssetPrice",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": false,
            "internalType": "AssetId"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "NotifyPool",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "NotifyShareClass",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "NotifyShareMetadata",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "name",
            "type": "string",
            "indexed": false,
            "internalType": "string"
          },
          {
            "name": "symbol",
            "type": "string",
            "indexed": false,
            "internalType": "string"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "NotifySharePrice",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "poolPerShare",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "computedAt",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetMaxAssetPriceAge",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": false,
            "internalType": "AssetId"
          },
          {
            "name": "maxPriceAge",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetMaxSharePriceAge",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "maxPriceAge",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetSpokeRequestManager",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "manager",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateBalanceSheetManager",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "manager",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "canManage",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateContract",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "target",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "payload",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateRestriction",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateShareHook",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "hook",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": false,
            "internalType": "AssetId"
          },
          {
            "name": "vaultOrFactory",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "kind",
            "type": "uint8",
            "indexed": false,
            "internalType": "enum VaultUpdateKind"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AccountDoesNotExist",
        "inputs": []
      },
      {
        "type": "error",
        "name": "AlreadyBatching",
        "inputs": []
      },
      {
        "type": "error",
        "name": "AssetNotFound",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CallFailedWithEmptyRevert",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidAccountCombination",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidPoolId",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidRequestManager",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MulDiv_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotManager",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PoolAlreadyUnlocked",
        "inputs": []
      },
      {
        "type": "error",
        "name": "RequestManagerCallFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SafeTransferEthFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareClassNotFound",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnauthorizedSender",
        "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"
          }
        ]
      }
    ],
    "HubHandler": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "hub_",
            "type": "address",
            "internalType": "contract IHub"
          },
          {
            "name": "holdings_",
            "type": "address",
            "internalType": "contract IHoldings"
          },
          {
            "name": "hubRegistry_",
            "type": "address",
            "internalType": "contract IHubRegistry"
          },
          {
            "name": "shareClassManager_",
            "type": "address",
            "internalType": "contract IShareClassManager"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "holdings",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHoldings"
          }
        ],
        "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": "initiateTransferShares",
        "inputs": [
          {
            "name": "originCentrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "targetCentrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "receiver",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "registerAsset",
        "inputs": [
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "decimals",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "request",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "sender",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubMessageSender"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "shareClassManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IShareClassManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "updateHoldingAmount",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "isIncrease",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "isSnapshot",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "nonce",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateShares",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "isIssuance",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "isSnapshot",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "nonce",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "addr",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "ForwardTransferShares",
        "inputs": [
          {
            "name": "fromCentrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "toCentrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "receiver",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "amount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidRequestManager",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      }
    ],
    "TokenRecoverer": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "root_",
            "type": "address",
            "internalType": "contract IRoot"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "internalType": "contract IRecoverable"
          },
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRoot"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "RecoverTokens",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "indexed": true,
            "internalType": "contract IRecoverable"
          },
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "to",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      }
    ],
    "ProtocolGuardian": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "safe_",
            "type": "address",
            "internalType": "contract ISafe"
          },
          {
            "name": "root_",
            "type": "address",
            "internalType": "contract IRoot"
          },
          {
            "name": "gateway_",
            "type": "address",
            "internalType": "contract IGateway"
          },
          {
            "name": "sender_",
            "type": "address",
            "internalType": "contract IScheduleAuthMessageSender"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "GLOBAL_POOL",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "blockOutgoing",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "isBlocked",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "cancelRely",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "cancelUpgrade",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "gateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pause",
        "inputs": [],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRoot"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "safe",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISafe"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "scheduleRely",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "scheduleUpgrade",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "target",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sender",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IScheduleAuthMessageSender"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "unpause",
        "inputs": [],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotTheAuthorizedSafe",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotTheAuthorizedSafeOrItsOwner",
        "inputs": []
      }
    ],
    "OpsGuardian": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "opsSafe_",
            "type": "address",
            "internalType": "contract ISafe"
          },
          {
            "name": "hub_",
            "type": "address",
            "internalType": "contract ICreatePool"
          },
          {
            "name": "multiAdapter_",
            "type": "address",
            "internalType": "contract IMultiAdapter"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "GLOBAL_POOL",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "createPool",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "admin",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "currency",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "hub",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ICreatePool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "initAdapters",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "adapters",
            "type": "address[]",
            "internalType": "contract IAdapter[]"
          },
          {
            "name": "threshold",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "recoveryIndex",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "multiAdapter",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IMultiAdapter"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "opsSafe",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISafe"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wire",
        "inputs": [
          {
            "name": "adapter",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "data",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AdapterAlreadyWired",
        "inputs": []
      },
      {
        "type": "error",
        "name": "AdaptersAlreadyInitialized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotTheAuthorizedSafe",
        "inputs": []
      }
    ],
    "RefundEscrowFactory": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "controller",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "get",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRefundEscrow"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "newEscrow",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "escrow",
            "type": "address",
            "internalType": "contract IRefundEscrow"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "DeployRefundEscrow",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "escrow",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      }
    ],
    "RefundEscrow": [
      {
        "type": "constructor",
        "inputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "receive",
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "depositFunds",
        "inputs": [],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "withdrawFunds",
        "inputs": [
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "CannotWithdraw",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      }
    ],
    "SubsidyManager": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "refundEscrowFactory_",
            "type": "address",
            "internalType": "contract IRefundEscrowFactory"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deposit",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "refundEscrowFactory",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRefundEscrowFactory"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "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": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "withdraw",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "withdrawAll",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "DepositSubsidy",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "WithdrawSubsidy",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotEnoughToWithdraw",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "RefundEscrowNotDeployed",
        "inputs": []
      }
    ],
    "AsyncRequestManager": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "subsidyManager_",
            "type": "address",
            "internalType": "contract ISubsidyManager"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "receive",
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "callback",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "cancelDepositRequest",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "cancelRedeemRequest",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "claimCancelDepositRequest",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "claimCancelRedeemRequest",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "claimableCancelDepositRequest",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "claimableCancelRedeemRequest",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "convertToAssets",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "convertToShares",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deposit",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "globalEscrow",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IEscrow"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "investments",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "investor",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "maxMint",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "maxWithdraw",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "depositPrice",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "redeemPrice",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "pendingDepositRequest",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "pendingRedeemRequest",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "claimableCancelDepositRequest",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "claimableCancelRedeemRequest",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "pendingCancelDepositRequest",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "pendingCancelRedeemRequest",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxDeposit",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxMint",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxRedeem",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxWithdraw",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "mint",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "pendingCancelDepositRequest",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "isPending",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pendingCancelRedeemRequest",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "isPending",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pendingDepositRequest",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pendingRedeemRequest",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolEscrow",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IPoolEscrow"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "priceLastUpdated",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          }
        ],
        "outputs": [
          {
            "name": "lastUpdated",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "redeem",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "requestDeposit",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "requestRedeem",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "sender_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "transfer",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "spoke",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpoke"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "subsidyManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISubsidyManager"
          }
        ],
        "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": "function",
        "name": "vaultRegistry",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IVaultRegistry"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "withdraw",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "TriggerRedeemRequest",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "uint64"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "bytes16"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AssetMismatch",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CancellationIsPending",
        "inputs": []
      },
      {
        "type": "error",
        "name": "DivisionByZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ExceedsDepositLimits",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ExceedsMaxDeposit",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ExceedsMaxRedeem",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ExceedsRedeemLimits",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FailedRedeemRequest",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MulDiv_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoPendingRequest",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAVault",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareTokenAmountIsZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareTokenTransferFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOutOfBounds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TransferNotAllowed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint64_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownRequestCallbackType",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownRequestCallbackType",
        "inputs": []
      },
      {
        "type": "error",
        "name": "VaultNotLinked",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ZeroAmountNotAllowed",
        "inputs": []
      }
    ],
    "SyncManager": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "convertToAssets",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "convertToShares",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deposit",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "maxDeposit",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxMint",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxReserve",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "mint",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "previewDeposit",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "previewMint",
        "inputs": [
          {
            "name": "vault_",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pricePoolPerShare",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "price",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setMaxReserve",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxReserve_",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setValuation",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "valuation_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "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": "function",
        "name": "valuation",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISyncDepositValuation"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "vaultRegistry",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IVaultRegistry"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetMaxReserve",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "maxReserve",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetValuation",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "valuation",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "DivisionByZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ExceedsMaxDeposit",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ExceedsMaxMint",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MulDiv_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SafeTransferEthFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SecondaryManagerDoesNotExist",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareTokenDoesNotExist",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "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"
          }
        ]
      }
    ],
    "VaultRouter": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "gateway_",
            "type": "address",
            "internalType": "contract IGateway"
          },
          {
            "name": "spoke_",
            "type": "address",
            "internalType": "contract ISpoke"
          },
          {
            "name": "vaultRegistry_",
            "type": "address",
            "internalType": "contract IVaultRegistry"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "cancelDepositRequest",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IAsyncVault"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "cancelRedeemRequest",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IAsyncVault"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "claimCancelDepositRequest",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IAsyncVault"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "claimCancelRedeemRequest",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IAsyncVault"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "claimDeposit",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IAsyncVault"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "claimRedeem",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "crosschainTransferShares",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract BaseSyncDepositVault"
          },
          {
            "name": "shares",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "receiver",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "remoteExtraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deposit",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract BaseSyncDepositVault"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "disable",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IBaseVault"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "enable",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IBaseVault"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "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": "getVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "hasPermissions",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isEnabled",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IBaseVault"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "multicall",
        "inputs": [
          {
            "name": "data",
            "type": "bytes[]",
            "internalType": "bytes[]"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "permit",
        "inputs": [
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "spender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "deadline",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "requestDeposit",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IAsyncVault"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "requestRedeem",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "internalType": "contract IAsyncVault"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "spoke",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpoke"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "vaultRegistry",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IVaultRegistry"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "ExecuteLockedDepositRequest",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "indexed": true,
            "internalType": "contract IBaseVault"
          },
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "LockDepositRequest",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "indexed": true,
            "internalType": "contract IBaseVault"
          },
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UnlockDepositRequest",
        "inputs": [
          {
            "name": "vault",
            "type": "address",
            "indexed": true,
            "internalType": "contract IBaseVault"
          },
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyBatching",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CallFailedWithEmptyRevert",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidOwner",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidSender",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoLockedBalance",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoLockedRequest",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NonAsyncVault",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NonSyncDepositVault",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SafeTransferEthFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnauthorizedSender",
        "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"
          }
        ]
      },
      {
        "type": "error",
        "name": "ZeroBalance",
        "inputs": []
      }
    ],
    "AsyncVaultFactory": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "root_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "asyncRequestManager_",
            "type": "address",
            "internalType": "contract IAsyncRequestManager"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "asyncRequestManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAsyncRequestManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "newVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "token",
            "type": "address",
            "internalType": "contract IShareToken"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IVault"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnsupportedTokenId",
        "inputs": []
      }
    ],
    "AsyncVault": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "token_",
            "type": "address",
            "internalType": "contract IShareToken"
          },
          {
            "name": "root_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "manager_",
            "type": "address",
            "internalType": "contract IAsyncRequestManager"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "AUTHORIZE_OPERATOR_TYPEHASH",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "DOMAIN_SEPARATOR",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "asset",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "asyncManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAsyncRequestManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "asyncRedeemManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAsyncRedeemManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "authorizations",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "nonce",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "used",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "authorizeOperator",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "operator",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "approved",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "nonce",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "deadline",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "signature",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [
          {
            "name": "success",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "baseManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBaseRequestManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "cancelDepositRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "cancelRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "claimCancelDepositRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "claimCancelRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "claimableCancelDepositRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "claimableAssets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "claimableCancelRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "claimableShares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "claimableDepositRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "claimableAssets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "claimableRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "claimableShares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "convertToAssets",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "convertToShares",
        "inputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deploymentChainId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deposit",
        "inputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deposit",
        "inputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "invalidateNonce",
        "inputs": [
          {
            "name": "nonce",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "isOperator",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isPermissioned",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxDeposit",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "maxAssets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxMint",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "maxShares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxRedeem",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "maxShares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxWithdraw",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "maxAssets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "mint",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "mint",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "onCancelDepositClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "onCancelRedeemClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "onDepositClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "onRedeemClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "onRedeemRequest",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "pendingCancelDepositRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "isPending",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pendingCancelRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "isPending",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pendingDepositRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "pendingAssets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pendingRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "pendingShares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "previewDeposit",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "previewMint",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "previewRedeem",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "previewWithdraw",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "priceLastUpdated",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pricePerShare",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "redeem",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "requestDeposit",
        "inputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "requestRedeem",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRoot"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "scId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "setEndorsedOperator",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "approved",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setOperator",
        "inputs": [
          {
            "name": "operator",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "approved",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "success",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "share",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "supportsInterface",
        "inputs": [
          {
            "name": "interfaceId",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "totalAssets",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "vaultKind",
        "inputs": [],
        "outputs": [
          {
            "name": "vaultKind_",
            "type": "uint8",
            "internalType": "enum VaultKind"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "withdraw",
        "inputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "CancelDepositClaim",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "CancelDepositClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "assets",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "CancelDepositRequest",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "CancelRedeemClaim",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "CancelRedeemClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "CancelRedeemRequest",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deposit",
        "inputs": [
          {
            "name": "sender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "DepositClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "assets",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "DepositRequest",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "OperatorSet",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "operator",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "approved",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "RedeemClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "assets",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "RedeemRequest",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Withdraw",
        "inputs": [
          {
            "name": "sender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyUsedAuthorization",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CannotSetSelfAsOperator",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ExpiredAuthorization",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InsufficientBalance",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidAuthorization",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidController",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidOwner",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidSigner",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotEndorsed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "RequestDepositFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "RequestRedeemFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SafeTransferEthFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TransferFromFailed",
        "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"
          }
        ]
      }
    ],
    "SyncDepositVaultFactory": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "root_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "syncDepositManager_",
            "type": "address",
            "internalType": "contract ISyncDepositManager"
          },
          {
            "name": "asyncRedeemManager_",
            "type": "address",
            "internalType": "contract IAsyncRedeemManager"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "asyncRedeemManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAsyncRedeemManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "newVault",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "token",
            "type": "address",
            "internalType": "contract IShareToken"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IVault"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "syncDepositManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISyncDepositManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnsupportedTokenId",
        "inputs": []
      }
    ],
    "SyncDepositVault": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "asset_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "token_",
            "type": "address",
            "internalType": "contract IShareToken"
          },
          {
            "name": "root_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "syncDepositManager_",
            "type": "address",
            "internalType": "contract ISyncDepositManager"
          },
          {
            "name": "asyncRedeemManager_",
            "type": "address",
            "internalType": "contract IAsyncRedeemManager"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "AUTHORIZE_OPERATOR_TYPEHASH",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "DOMAIN_SEPARATOR",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "asset",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "asyncRedeemManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAsyncRedeemManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "authorizations",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "nonce",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "used",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "authorizeOperator",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "operator",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "approved",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "nonce",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "deadline",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "signature",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [
          {
            "name": "success",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "baseManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBaseRequestManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "cancelRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "claimCancelRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "claimableCancelRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "claimableShares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "claimableRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "claimableShares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "convertToAssets",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "convertToShares",
        "inputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deploymentChainId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deposit",
        "inputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "invalidateNonce",
        "inputs": [
          {
            "name": "nonce",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "isOperator",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isPermissioned",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxDeposit",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "maxAssets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxMint",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "maxShares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxRedeem",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "maxShares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxWithdraw",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "maxAssets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "mint",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "onCancelRedeemClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "onRedeemClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "onRedeemRequest",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "pendingCancelRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "isPending",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pendingRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "pendingShares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "previewDeposit",
        "inputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "previewMint",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "previewRedeem",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "previewWithdraw",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "priceLastUpdated",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pricePerShare",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "recoverTokens",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "redeem",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "requestRedeem",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRoot"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "scId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "setEndorsedOperator",
        "inputs": [
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "approved",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setOperator",
        "inputs": [
          {
            "name": "operator",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "approved",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [
          {
            "name": "success",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "share",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "supportsInterface",
        "inputs": [
          {
            "name": "interfaceId",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "syncDepositManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISyncDepositManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "totalAssets",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "vaultKind",
        "inputs": [],
        "outputs": [
          {
            "name": "vaultKind_",
            "type": "uint8",
            "internalType": "enum VaultKind"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "withdraw",
        "inputs": [
          {
            "name": "assets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "CancelRedeemClaim",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "CancelRedeemClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "CancelRedeemRequest",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deposit",
        "inputs": [
          {
            "name": "sender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": true,
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "OperatorSet",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "operator",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "approved",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "RedeemClaimable",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "assets",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "RedeemRequest",
        "inputs": [
          {
            "name": "controller",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "requestId",
            "type": "uint256",
            "indexed": true,
            "internalType": "uint256"
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Withdraw",
        "inputs": [
          {
            "name": "sender",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "assets",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          },
          {
            "name": "shares",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyUsedAuthorization",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CannotSetSelfAsOperator",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ExpiredAuthorization",
        "inputs": []
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InsufficientBalance",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidAuthorization",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidController",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidSigner",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoCode",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotEndorsed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "RequestRedeemFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SafeTransferEthFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TransferFromFailed",
        "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"
          }
        ]
      }
    ],
    "FreezeOnly": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "root_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "spoke_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "balanceSheet_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "crosschainSource_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "poolEscrowProvider_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "poolEscrow_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "FREEZE_BIT",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "checkERC20Transfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "crosschainSource",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "freeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "isCrosschainTransfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isCrosschainTransferExecution",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositClaim",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositFulfillment",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositRequestOrIssuance",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isFrozen",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "isValid",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isPoolEscrow",
        "inputs": [
          {
            "name": "addr",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemClaimOrRevocation",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemFulfillment",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "isSourceMember",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isSourceOrTargetFrozen",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isTargetMember",
        "inputs": [
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "manager",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "onERC20AuthTransfer",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "onERC20Transfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "poolEscrow",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolEscrowProvider",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IPoolEscrowProvider"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRoot"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "spoke",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpoke"
          }
        ],
        "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": "unfreeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateRestriction",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Freeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Unfreeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateHookManager",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "manager",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "CannotFreezeZeroAddress",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EndorsedUserCannotBeFrozen",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EndorsedUserCannotBeUpdated",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidInputs",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidUpdate",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidValidUntil",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareTokenDoesNotExist",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOutOfBounds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TransferBlocked",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownMessageType",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownTrustedCall",
        "inputs": []
      }
    ],
    "FullRestrictions": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "root_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "spoke_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "balanceSheet_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "crosschainSource_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "poolEscrowProvider_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "poolEscrow_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "FREEZE_BIT",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "checkERC20Transfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "crosschainSource",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "freeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "isCrosschainTransfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isCrosschainTransferExecution",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositClaim",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositFulfillment",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositRequestOrIssuance",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isFrozen",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "isValid",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isPoolEscrow",
        "inputs": [
          {
            "name": "addr",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemClaimOrRevocation",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemFulfillment",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "isSourceMember",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isSourceOrTargetFrozen",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isTargetMember",
        "inputs": [
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "manager",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "onERC20AuthTransfer",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "onERC20Transfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "poolEscrow",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolEscrowProvider",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IPoolEscrowProvider"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRoot"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "spoke",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpoke"
          }
        ],
        "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": "unfreeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateRestriction",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Freeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Unfreeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateHookManager",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "manager",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "CannotFreezeZeroAddress",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EndorsedUserCannotBeFrozen",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EndorsedUserCannotBeUpdated",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidInputs",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidUpdate",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidValidUntil",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareTokenDoesNotExist",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOutOfBounds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TransferBlocked",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownMessageType",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownTrustedCall",
        "inputs": []
      }
    ],
    "FreelyTransferable": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "root_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "spoke_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "balanceSheet_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "crosschainSource_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "poolEscrowProvider_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "poolEscrow_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "FREEZE_BIT",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "checkERC20Transfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "crosschainSource",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "freeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "isCrosschainTransfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isCrosschainTransferExecution",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositClaim",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositFulfillment",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositRequestOrIssuance",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isFrozen",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "isValid",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isPoolEscrow",
        "inputs": [
          {
            "name": "addr",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemClaimOrRevocation",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemFulfillment",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "isSourceMember",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isSourceOrTargetFrozen",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isTargetMember",
        "inputs": [
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "manager",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "onERC20AuthTransfer",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "onERC20Transfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "poolEscrow",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolEscrowProvider",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IPoolEscrowProvider"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRoot"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "spoke",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpoke"
          }
        ],
        "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": "unfreeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateRestriction",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Freeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Unfreeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateHookManager",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "manager",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "CannotFreezeZeroAddress",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EndorsedUserCannotBeFrozen",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EndorsedUserCannotBeUpdated",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidInputs",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidUpdate",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidValidUntil",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareTokenDoesNotExist",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOutOfBounds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TransferBlocked",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownMessageType",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownTrustedCall",
        "inputs": []
      }
    ],
    "RedemptionRestrictions": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "root_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "spoke_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "balanceSheet_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "crosschainSource_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "poolEscrowProvider_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "poolEscrow_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "FREEZE_BIT",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint8",
            "internalType": "uint8"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "balanceSheet",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "checkERC20Transfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "crosschainSource",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "freeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "isCrosschainTransfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isCrosschainTransferExecution",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositClaim",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositFulfillment",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isDepositRequestOrIssuance",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isFrozen",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "isValid",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isPoolEscrow",
        "inputs": [
          {
            "name": "addr",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemClaimOrRevocation",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemFulfillment",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "isSourceMember",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isSourceOrTargetFrozen",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isTargetMember",
        "inputs": [
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "manager",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "onERC20AuthTransfer",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "onERC20Transfer",
        "inputs": [
          {
            "name": "from",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "to",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "value",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "hookData",
            "type": "tuple",
            "internalType": "struct HookData",
            "components": [
              {
                "name": "from",
                "type": "bytes16",
                "internalType": "bytes16"
              },
              {
                "name": "to",
                "type": "bytes16",
                "internalType": "bytes16"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "poolEscrow",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "poolEscrowProvider",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IPoolEscrowProvider"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "root",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRoot"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "spoke",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ISpoke"
          }
        ],
        "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": "unfreeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateRestriction",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Freeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Unfreeze",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateHookManager",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "manager",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateMember",
        "inputs": [
          {
            "name": "token",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "validUntil",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "CannotFreezeZeroAddress",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EndorsedUserCannotBeFrozen",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EndorsedUserCannotBeUpdated",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidInputs",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidUpdate",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidValidUntil",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ShareTokenDoesNotExist",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOutOfBounds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "TransferBlocked",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownMessageType",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownTrustedCall",
        "inputs": []
      }
    ],
    "QueueManager": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "contractUpdater_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "balanceSheet_",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "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": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "gateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "scQueueState",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "minDelay",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "lastSync",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "sync",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetIds",
            "type": "uint128[]",
            "internalType": "AssetId[]"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "syncCallback",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetIds",
            "type": "uint128[]",
            "internalType": "AssetId[]"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "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": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateQueueConfig",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "newMinDelay",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          },
          {
            "name": "newExtraGasLimit",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "InsufficientFunds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MinDelayNotElapsed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoUpdateForAsset",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotContractUpdater",
        "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"
          }
        ]
      }
    ],
    "BatchRequestManager": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "hubRegistry_",
            "type": "address",
            "internalType": "contract IHubRegistry"
          },
          {
            "name": "gateway_",
            "type": "address",
            "internalType": "contract IGateway"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "allowForceDepositCancel",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "allowForceRedeemCancel",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "approveDeposits",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "depositAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "nowDepositEpochId",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "approvedAssetAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "approveRedeems",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "payoutAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "nowRedeemEpochId",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "approvedShareAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "cancelDepositRequest",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "depositAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "cancelledAssetAmount",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "cancelRedeemRequest",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "payoutAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "cancelledShareAmount",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "depositRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "pending",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "lastUpdate",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "epochId",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "deposit",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "issue",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "redeem",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "revoke",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "epochInvestAmounts",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "epochId_",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "outputs": [
          {
            "name": "approvedPoolAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "approvedAssetAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "pendingAssetAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "pricePoolPerShare",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "issuedAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "epochRedeemAmounts",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "epochId_",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "outputs": [
          {
            "name": "approvedShareAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "pendingShareAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "pricePoolPerAsset",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "pricePoolPerShare",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "payoutAssetAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "revokedAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "executeMulticall",
        "inputs": [
          {
            "name": "data",
            "type": "bytes[]",
            "internalType": "bytes[]"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "file",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "data",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "forceCancelDepositRequest",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "depositAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "forceCancelRedeemRequest",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "payoutAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "gateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IGateway"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "hub",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubRequestManagerCallback"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "hubRegistry",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubRegistry"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "issueShares",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "depositAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "nowIssueEpochId",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "pricePoolPerShare",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "maxDepositClaims",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "depositAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "maxRedeemClaims",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "payoutAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "multicall",
        "inputs": [
          {
            "name": "data",
            "type": "bytes[]",
            "internalType": "bytes[]"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "notifyDeposit",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "maxClaims",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "notifyRedeem",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "maxClaims",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "nowDepositEpoch",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "depositAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "nowIssueEpoch",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "depositAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "nowRedeemEpoch",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "depositAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "nowRevokeEpoch",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "depositAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pendingDeposit",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "pendingRedeem",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "queuedDepositRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "isCancelling",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "queuedRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "isCancelling",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "redeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "pending",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "lastUpdate",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "request",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "requestDeposit",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "depositAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "requestRedeem",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "amount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "payoutAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "revokeShares",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId_",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "payoutAssetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "nowRevokeEpochId",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "pricePoolPerShare",
            "type": "uint128",
            "internalType": "D18"
          },
          {
            "name": "extraGasLimit",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "setEpochIds",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "epochIdData",
            "type": "tuple",
            "internalType": "struct EpochId",
            "components": [
              {
                "name": "deposit",
                "type": "uint32",
                "internalType": "uint32"
              },
              {
                "name": "issue",
                "type": "uint32",
                "internalType": "uint32"
              },
              {
                "name": "redeem",
                "type": "uint32",
                "internalType": "uint32"
              },
              {
                "name": "revoke",
                "type": "uint32",
                "internalType": "uint32"
              }
            ]
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "supportsInterface",
        "inputs": [
          {
            "name": "interfaceId",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "ApproveDeposits",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "shareClassId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "epochId",
            "type": "uint32",
            "indexed": false,
            "internalType": "uint32"
          },
          {
            "name": "approvedPoolAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "approvedAssetAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "pendingAssetAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "ApproveRedeems",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "shareClassId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "epochId",
            "type": "uint32",
            "indexed": false,
            "internalType": "uint32"
          },
          {
            "name": "approvedShareAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "pendingShareAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "ClaimDeposit",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "shareClassId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "epochId",
            "type": "uint32",
            "indexed": true,
            "internalType": "uint32"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": false,
            "internalType": "AssetId"
          },
          {
            "name": "paymentAssetAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "pendingAssetAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "payoutShareAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "issuedAt",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "ClaimRedeem",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "shareClassId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "epochId",
            "type": "uint32",
            "indexed": true,
            "internalType": "uint32"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": false,
            "internalType": "AssetId"
          },
          {
            "name": "paymentShareAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "pendingShareAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "payoutAssetAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "revokedAt",
            "type": "uint64",
            "indexed": false,
            "internalType": "uint64"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "EpochIdModified",
        "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": "epochIdData",
            "type": "tuple",
            "indexed": false,
            "internalType": "struct EpochId",
            "components": [
              {
                "name": "deposit",
                "type": "uint32",
                "internalType": "uint32"
              },
              {
                "name": "issue",
                "type": "uint32",
                "internalType": "uint32"
              },
              {
                "name": "redeem",
                "type": "uint32",
                "internalType": "uint32"
              },
              {
                "name": "revoke",
                "type": "uint32",
                "internalType": "uint32"
              }
            ]
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "File",
        "inputs": [
          {
            "name": "what",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "addr",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "IssueShares",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "shareClassId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "epochId",
            "type": "uint32",
            "indexed": false,
            "internalType": "uint32"
          },
          {
            "name": "pricePoolPerShare",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "priceAssetPerShare",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "issuedShareAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "RevokeShares",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "shareClassId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "epochId",
            "type": "uint32",
            "indexed": false,
            "internalType": "uint32"
          },
          {
            "name": "pricePoolPerShare",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "priceAssetPerShare",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          },
          {
            "name": "approvedShareAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "payoutAssetAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "payoutPoolAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateDepositRequest",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "shareClassId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "epochId",
            "type": "uint32",
            "indexed": false,
            "internalType": "uint32"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "pendingAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "totalPendingAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "queuedAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "isQueuedCancellation",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateRedeemRequest",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "shareClassId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "indexed": true,
            "internalType": "AssetId"
          },
          {
            "name": "epochId",
            "type": "uint32",
            "indexed": false,
            "internalType": "uint32"
          },
          {
            "name": "investor",
            "type": "bytes32",
            "indexed": false,
            "internalType": "bytes32"
          },
          {
            "name": "pendingAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "totalPendingAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "queuedAmount",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "isQueuedCancellation",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyBatching",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CallFailedWithEmptyRevert",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CancellationInitializationRequired",
        "inputs": []
      },
      {
        "type": "error",
        "name": "CancellationQueued",
        "inputs": []
      },
      {
        "type": "error",
        "name": "DivisionByZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EpochNotFound",
        "inputs": []
      },
      {
        "type": "error",
        "name": "EpochNotInSequence",
        "inputs": [
          {
            "name": "epochId",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "actualEpochId",
            "type": "uint32",
            "internalType": "uint32"
          }
        ]
      },
      {
        "type": "error",
        "name": "FileUnrecognizedParam",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InsufficientPending",
        "inputs": []
      },
      {
        "type": "error",
        "name": "IssuanceRequired",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MulDiv_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NoOrderFound",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "RevocationRequired",
        "inputs": []
      },
      {
        "type": "error",
        "name": "SliceOutOfBounds",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint64_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnauthorizedSender",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownRequestType",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownRequestType",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ZeroApprovalAmount",
        "inputs": []
      }
    ],
    "IdentityValuation": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "hubRegistry_",
            "type": "address",
            "internalType": "contract IHubRegistry"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "getPrice",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "getQuote",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "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": "hubRegistry",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHubRegistry"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "error",
        "name": "MulDiv_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      }
    ],
    "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": []
      }
    ],
    "NAVManager": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "hub_",
            "type": "address",
            "internalType": "contract IHub"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "accounting",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAccounting"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "assetAccount",
        "inputs": [
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "closeGainLoss",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "equityAccount",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "expenseAccount",
        "inputs": [
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "gainAccount",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "holdings",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHoldings"
          }
        ],
        "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": "initializeHolding",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "valuation",
            "type": "address",
            "internalType": "contract IValuation"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "initializeLiability",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "valuation",
            "type": "address",
            "internalType": "contract IValuation"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "initializeNetwork",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "initialized",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "liabilityAccount",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "lossAccount",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "AccountId"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "manager",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "navHook",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract INAVHook"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "netAssetValue",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "onSync",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "onTransfer",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "fromCentrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "toCentrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "sharesTransferred",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "setNAVHook",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "navHook_",
            "type": "address",
            "internalType": "contract INAVHook"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateHoldingValuation",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          },
          {
            "name": "valuation",
            "type": "address",
            "internalType": "contract IValuation"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateHoldingValue",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "assetId",
            "type": "uint128",
            "internalType": "AssetId"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "updateManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "manager_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "InitializeHolding",
        "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"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "InitializeLiability",
        "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"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "InitializeNetwork",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetNavHook",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "navHook",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Sync",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": true,
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "netAssetValue",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Transfer",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "fromCentrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "toCentrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "sharesTransferred",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "UpdateManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "manager",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "canManage",
            "type": "bool",
            "indexed": false,
            "internalType": "bool"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "AlreadyInitialized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "ExceedsMaxAccounts",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidNAVHook",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidStateOfAccounts",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MismatchedEpochs",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotInitialized",
        "inputs": []
      }
    ],
    "SimplePriceManager": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "hub_",
            "type": "address",
            "internalType": "contract IHub"
          },
          {
            "name": "navUpdater_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "hub",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IHub"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "metrics",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "netAssetValue",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "issuance",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "navUpdater",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "networkMetrics",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "netAssetValue",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "issuance",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "transferredIn",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "transferredOut",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "issueEpochsBehind",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "revokeEpochsBehind",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "onTransfer",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "fromCentrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "toCentrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "sharesTransferred",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "onUpdate",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          },
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "netAssetValue",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "pricePoolPerShare",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint128",
            "internalType": "D18"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "shareClassManager",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IShareClassManager"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "event",
        "name": "Transfer",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "fromCentrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "toCentrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "sharesTransferred",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Update",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "indexed": false,
            "internalType": "ShareClassId"
          },
          {
            "name": "newNAV",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "newIssuance",
            "type": "uint128",
            "indexed": false,
            "internalType": "uint128"
          },
          {
            "name": "newPricePoolPerShare",
            "type": "uint128",
            "indexed": false,
            "internalType": "D18"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "InvalidShareClass",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MismatchedEpochs",
        "inputs": []
      },
      {
        "type": "error",
        "name": "MulDiv_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      }
    ],
    "LayerZeroAdapter": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "entrypoint_",
            "type": "address",
            "internalType": "contract IMessageHandler"
          },
          {
            "name": "endpoint_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "delegate",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "RECEIVE_COST",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "allowInitializePath",
        "inputs": [
          {
            "name": "origin",
            "type": "tuple",
            "internalType": "struct Origin",
            "components": [
              {
                "name": "srcEid",
                "type": "uint32",
                "internalType": "uint32"
              },
              {
                "name": "sender",
                "type": "bytes32",
                "internalType": "bytes32"
              },
              {
                "name": "nonce",
                "type": "uint64",
                "internalType": "uint64"
              }
            ]
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "destinations",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "layerZeroEid",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "addr",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "endpoint",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract ILayerZeroEndpointV2"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "entrypoint",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IMessageHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "estimate",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "gasLimit",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isWired",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "lzReceive",
        "inputs": [
          {
            "name": "origin",
            "type": "tuple",
            "internalType": "struct Origin",
            "components": [
              {
                "name": "srcEid",
                "type": "uint32",
                "internalType": "uint32"
              },
              {
                "name": "sender",
                "type": "bytes32",
                "internalType": "bytes32"
              },
              {
                "name": "nonce",
                "type": "uint64",
                "internalType": "uint64"
              }
            ]
          },
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "nextNonce",
        "inputs": [
          {
            "name": "",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [
          {
            "name": "nonce",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "send",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "gasLimit",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "adapterData",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "setDelegate",
        "inputs": [
          {
            "name": "newDelegate",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "sources",
        "inputs": [
          {
            "name": "layerZeroEid",
            "type": "uint32",
            "internalType": "uint32"
          }
        ],
        "outputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "addr",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wire",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "data",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "SetDelegate",
        "inputs": [
          {
            "name": "newDelegate",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Wire",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "layerZeroEid",
            "type": "uint32",
            "indexed": true,
            "internalType": "uint32"
          },
          {
            "name": "adapter",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "InvalidSource",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotEntrypoint",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotLayerZeroEndpoint",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint128_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "Uint16_Overflow",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownChainId",
        "inputs": []
      }
    ],
    "ChainlinkAdapter": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "entrypoint_",
            "type": "address",
            "internalType": "contract IMessageHandler"
          },
          {
            "name": "ccipRouter_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "deployer",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "RECEIVE_COST",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "ccipReceive",
        "inputs": [
          {
            "name": "message",
            "type": "tuple",
            "internalType": "struct IClient.Any2EVMMessage",
            "components": [
              {
                "name": "messageId",
                "type": "bytes32",
                "internalType": "bytes32"
              },
              {
                "name": "sourceChainSelector",
                "type": "uint64",
                "internalType": "uint64"
              },
              {
                "name": "sender",
                "type": "bytes",
                "internalType": "bytes"
              },
              {
                "name": "data",
                "type": "bytes",
                "internalType": "bytes"
              },
              {
                "name": "destTokenAmounts",
                "type": "tuple[]",
                "internalType": "struct IClient.EVMTokenAmount[]",
                "components": [
                  {
                    "name": "token",
                    "type": "address",
                    "internalType": "address"
                  },
                  {
                    "name": "amount",
                    "type": "uint256",
                    "internalType": "uint256"
                  }
                ]
              }
            ]
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "ccipRouter",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IRouterClient"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "destinations",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "chainSelector",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "addr",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "entrypoint",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IMessageHandler"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "estimate",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "gasLimit",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "isWired",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "send",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "gasLimit",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "adapterData",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sources",
        "inputs": [
          {
            "name": "chainSelector",
            "type": "uint64",
            "internalType": "uint64"
          }
        ],
        "outputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "addr",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "supportsInterface",
        "inputs": [
          {
            "name": "interfaceId",
            "type": "bytes4",
            "internalType": "bytes4"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "wards",
        "inputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "wire",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "data",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "Deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Rely",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "event",
        "name": "Wire",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "chainSelector",
            "type": "uint64",
            "indexed": true,
            "internalType": "uint64"
          },
          {
            "name": "adapter",
            "type": "address",
            "indexed": false,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "InvalidRouter",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidSourceAddress",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidSourceChain",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotEntrypoint",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownChainId",
        "inputs": []
      }
    ],
    "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": []
      }
    ]
  }
}