{
  "network": "testnet",
  "version": null,
  "deploymentInfo": {
    "gitCommit": "24032569d97b9200005994f40dfdd75d7d1d5bab"
  },
  "previousRegistry": {
    "version": "v3.2.0",
    "ipfsHash": "bafkreicob5ajro5ydncwrwrxo5u7stz7o6qmfl6373p4xcpo2gjy2tfsoe"
  },
  "chains": {
    "998": {
      "network": {
        "chainId": 998,
        "centrifugeId": 9,
        "protocolAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "opsAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "baseRpcUrl": "https://hyperliquid-testnet.g.alchemy.com/v2/"
      },
      "adapters": {
        "layerZero": {
          "endpoint": "0xf9e1815F151024bDE4B7C10BAC10e8Ba9F6b53E1",
          "layerZeroEid": 40362,
          "blockConfirmations": 5,
          "requiredDVNs": [
            "0x91E698871030D0e1b6c9268C20bB57E2720618Dd"
          ],
          "optionalDVNs": [],
          "optionalDVNThreshold": 0
        }
      },
      "contracts": {
        "layerZeroAdapter": {
          "address": "0x24f3192d46869609F8F6605e662b8146CA4240d3",
          "blockNumber": 47348915,
          "txHash": "0xb7cf5653c3244134455117a3ef2b190102eeb32fd83e8196362f57d65f8be8f1"
        },
        "root": {
          "address": "0x1Fa8a2fe2eAE2373B03Fa313E016605EB86cBae8",
          "blockNumber": 43580306,
          "txHash": "0xa1fe213c5124a8f1e37f87c86cf5ca8e9e7f8661e8723ac309df926a20139f7c"
        },
        "gasService": {
          "address": "0xC486678A507f0c0e61bcdB158DC23CA03Dfb8CFf",
          "blockNumber": 43580306,
          "txHash": "0xd189a699a94089fb51579bb435580492aa41be274566e50c19b567c432e5f266"
        },
        "gateway": {
          "address": "0x1a04566561EF19116D91684c8512348940DDc3ec",
          "blockNumber": 43580306,
          "txHash": "0x8515cafafdfefcd3c2387179d86e62ac9ecec15cef37d92f6dcfab6a429d6473"
        },
        "multiAdapter": {
          "address": "0x59436331823AdEC8b4dDd00cE7F319b24664d79D",
          "blockNumber": 43580306,
          "txHash": "0xf82c6e8062659d79a73e43e6fdd03b684cd168029fef5a5405e79f3d7d07c330"
        },
        "contractUpdater": {
          "address": "0x69752e9dd9375Dab0563a56620547B61279678A4",
          "blockNumber": 43580306,
          "txHash": "0x5f197dd237efe4ef4168ecb6512c92bad37c48443da8d5412679e5b9c9a63e8b"
        },
        "messageProcessor": {
          "address": "0x5583D22Fa3c0e71DcBeabD0D67a978115370216b",
          "blockNumber": 43580306,
          "txHash": "0x707394870125b1b5039a600598d6a99a97be35dad7e25a67746429a099880931"
        },
        "messageDispatcher": {
          "address": "0xC38a4de11128927A1cc474e29d659c16A13C2F76",
          "blockNumber": 43580306,
          "txHash": "0x6f68ba08e4f5085f21e19055b6d54c0412e72ccbc248e32673f651c60c9540c0"
        },
        "tokenFactory": {
          "address": "0xeCf80edEA31Cf9F437E63832906d0d3AE1f2f9F9",
          "blockNumber": 43580367,
          "txHash": "0x0559a6cf0b9fa67ad15d7ab43aaef9f2d611370f8979f9cd31795af7a8ba020c"
        },
        "spoke": {
          "address": "0x634f692730978450A27F8FCA6F2dDe356a9B55A1",
          "blockNumber": 43580367,
          "txHash": "0x43c0f0c43bc2efcb0e15a5516f08d9e9cb189a48563db24049f749331d21b9ec"
        },
        "balanceSheet": {
          "address": "0xa1c9396B3Cd392A49727b27139A65210dc9E6212",
          "blockNumber": 43580367,
          "txHash": "0x8ba1bcb30757d231888b6ade6442a0f741082229d7a4aeff6738b8230ece61ac"
        },
        "vaultRegistry": {
          "address": "0x9E7d9003c07a896d5E7b075fA6F4D1d7a2fDf672",
          "blockNumber": 43580367,
          "txHash": "0x43c53194d0be77b9b4ef35773f2664fbe3fc34235cca3c82f9af97c1fa468907"
        },
        "poolEscrowFactory": {
          "address": "0x731Ae9BF353795fCAdB3a0bef43623216dBC0F49",
          "blockNumber": 43580367,
          "txHash": "0xff7852c2b176d4a9b891796f2ac8e5e18f43dc240e337a0d5304f093065ba87a"
        },
        "hubRegistry": {
          "address": "0x19258C46573Ba48aB9752A7479AaAb0C00d1674C",
          "blockNumber": 43580367,
          "txHash": "0x3becf13dfa5495950a56c87bddf13dda53794ff7ca09b65180967e23ec18645f"
        },
        "accounting": {
          "address": "0x086189cA75ec2cEFaE29F5926EDdf0A7516092B2",
          "blockNumber": 43580367,
          "txHash": "0xc6434d26c839770c08497aee665fb622adb5938f4f8e41e954b50a6e8e6e6ca0"
        },
        "holdings": {
          "address": "0x897DD631BA9d74c248B3fa4FDeDce227105c9bA0",
          "blockNumber": 43580367,
          "txHash": "0x20ec7713f5f4ab879ad6ed870f7e474ced4e9007a6c8db9babc74dacd404fbee"
        },
        "shareClassManager": {
          "address": "0xF1103570102008bc3dC83F3120605eaAb9f3EC4e",
          "blockNumber": 43580428,
          "txHash": "0xd46fbf06667e12167bceee521d08278668f239daea7f6715c125569fa810483c"
        },
        "hubHandler": {
          "address": "0x09ec05d9a96373766BDb18FD443B82A5cEf93626",
          "blockNumber": 43580428,
          "txHash": "0xc4ba80f22af24b4e089694ce886fac488efd3096d7db028f28455e7348dca36c"
        },
        "hub": {
          "address": "0xb2D1EBaEB0007578B09a555F8FB05DaD9150cFDD",
          "blockNumber": 43580428,
          "txHash": "0xff5d135745e790be6650d1f66ba504885f237e3a510352c9836ff957559627ac"
        },
        "tokenRecoverer": {
          "address": "0xf6E0a95A857EBE0633167416Ce1f96486932644a",
          "blockNumber": 43580428,
          "txHash": "0xe832359a88d3bc9c17294cf49bcb130ba790c2f49bac2ac2cdd93d1199c713bf"
        },
        "protocolGuardian": {
          "address": "0x78EB028bA9AFd690e134c753Bc77F2B9fC88e405",
          "blockNumber": 43580428,
          "txHash": "0x2fadbac8965f4d6c64da71f7be77e118fc874dab7fb5b20cc6a8594b6e75ebaa"
        },
        "opsGuardian": {
          "address": "0x606BdDf7E4BEf64cd0936fcf1C1e6f82232882b0",
          "blockNumber": 43580428,
          "txHash": "0x5390a84f099fa81c30487d964f65e51034208cca7e884932fb6b6a150b15d63d"
        },
        "refundEscrowFactory": {
          "address": "0x72Ff454A32cd730783487110520CD426Fe5CEea2",
          "blockNumber": 43580428,
          "txHash": "0xdbbd217eb4f1db5596d91d65616dbe90a58abddec565d20cb7d9da1d900fcf91"
        },
        "subsidyManager": {
          "address": "0xE5419F74f8875C401C3a2f4C68846d9d410e1677",
          "blockNumber": 43581038,
          "txHash": "0x5e5f775c3cfa7667cf830d135c9a968865c6c0d902fbff2f8a0b4d20d3476fac"
        },
        "asyncVaultFactory": {
          "address": "0x6eC5444E2a9aa53b63869d25c00a1966813C3bB9",
          "blockNumber": 43581038,
          "txHash": "0x02e43987dfec18133cc2e2008fe473c16cca5e9e2d0441ad22a7b70590e9f8da"
        },
        "asyncRequestManager": {
          "address": "0x10A17F06375621150E3B91486c2c4Ed408B77DF6",
          "blockNumber": 43581038,
          "txHash": "0xd2702101505d69f6d2ec8a170606c388c907bb370e4c1cf819575d5336216f0a"
        },
        "syncDepositVaultFactory": {
          "address": "0x3558dfb2820B1FF57F07A55FF5b486b64680Cd2e",
          "blockNumber": 43581038,
          "txHash": "0x309133338027f60a96ae1f61a3f8b35a254e374e8c839d084681884982569c4e"
        },
        "syncManager": {
          "address": "0xC864F6Bd38AbE2019c4A00526A560E33A560af73",
          "blockNumber": 43581038,
          "txHash": "0x52568bdabcc66ca62a3164b13fd2ca587f88db0b420daae1abe88722b0a387af"
        },
        "vaultRouter": {
          "address": "0x792676c9B261B80BC3D7dD0f2D3A83d91A819BCD",
          "blockNumber": 43581038,
          "txHash": "0x00f691d2f03f505151486f93bc02943313ec410a8530f9dc9dad2f683583eda8"
        },
        "freezeOnlyHook": {
          "address": "0xcA98c69ff705E295d8746E79ed5A3AA1e4b4c41d",
          "blockNumber": 43581038,
          "txHash": "0x9189ced8d3af229f9cf528776ac1ece11a990fe2bd3ad42653f05bbb48803767"
        },
        "fullRestrictionsHook": {
          "address": "0x19CB96ad58Bf35f4d772b9AE4D21952052355267",
          "blockNumber": 43581038,
          "txHash": "0x45698687dba27c069ca8920cf029c00918c4422f4a3455570716b5ab049cb6ec"
        },
        "freelyTransferableHook": {
          "address": "0x8ca95C3F27fDC5eC5f893607fa6fEa98362d759D",
          "blockNumber": 43581099,
          "txHash": "0xdcc25ad7e786ae50df07380deb555d301bcd38a2a24fcf1b11992e14ae658b90"
        },
        "redemptionRestrictionsHook": {
          "address": "0x35F3a094F280f01b8a9F2E64DCD0f111bD3f110A",
          "blockNumber": 43581099,
          "txHash": "0xcb0a4b1b6981ae35151531fa0a0dd9bb97df8cabcf6d401e48306b7772b5cef3"
        },
        "queueManager": {
          "address": "0x0B3F886F2bcA7Fc6da807B113D55FB2FaC0aF661",
          "blockNumber": 43581099,
          "txHash": "0xa399425ba09fed6f4471fc2f1f1e6d0d8ad31b9897509c67fb2cc66c11af9b47"
        },
        "onOfframpManagerFactory": {
          "address": "0xAa696bCD0FCeBC186BcCD6de548EB385d57e132B",
          "blockNumber": 43581099,
          "txHash": "0x771ab2570aea23485d2659e773905974ada598db466443c57beef5d69e0a2ce8"
        },
        "merkleProofManagerFactory": {
          "address": "0x81c38f8a9ef2953dA2DAF7b6bddFF3baB5095216",
          "blockNumber": 43581099,
          "txHash": "0x1e74d43aa67cefd7a177f108f5b2e46cf4271d1bdfe8da32920c5f1f9c5c07d5"
        },
        "vaultDecoder": {
          "address": "0x53c314e4CAF0A70A934c2570b0b264359005F838",
          "blockNumber": 43581099,
          "txHash": "0x6ec712f4cf422304c6387a2b3aa4faf29e7d816d80822ea172d52cc1aee0774c"
        },
        "circleDecoder": {
          "address": "0x76a2718A3064f8981788D5fb0Fb22caFe5B39465",
          "blockNumber": 43581099,
          "txHash": "0xb92cfc8842a7e0b4d6eddce6046a370853e880f162edb9bf2999291791940937"
        },
        "batchRequestManager": {
          "address": "0x15c878Fd558d15C325E7ac50f92e111d09924312",
          "blockNumber": 43581099,
          "txHash": "0x1181c8946aa7c8c46a33b474acdb183048cb8615708ec3e09a9f6720b25267c9"
        },
        "identityValuation": {
          "address": "0xAba76FaFC26f1b6B9fd88864FA86026e44F76B2c",
          "blockNumber": 43581160,
          "txHash": "0x8ffa08a97e59ff66dabe31cdede49a12623beec9d77e11db62c13756ce9f5ec5"
        },
        "oracleValuation": {
          "address": "0xf3869e1Da04886D00D7A15b48C01e71b8c7F3427",
          "blockNumber": 43581160,
          "txHash": "0x05c3b7fe5e22a5e701768edacd26b462baec88785ec89f3721983e171832fe9e"
        },
        "navManager": {
          "address": "0x91a867d2aaC0e6f95d8dC2b77d83037A74FDa67C",
          "blockNumber": 43581160,
          "txHash": "0x218c3fefddce3730a3ab2291b195a57a58205cdb290f3285a05cb614fc300b62"
        },
        "simplePriceManager": {
          "address": "0x53343b8D2763cF65f5174Bfb3Dcb16400a0d0022",
          "blockNumber": 43581160,
          "txHash": "0x7fa3bc5d5886af874c7d399314558cf066ab47ca3420f1f7d8d408edede29a5a"
        }
      },
      "deployment": {
        "deployedAt": 1768981500,
        "startBlock": 43580227
      }
    },
    "84532": {
      "network": {
        "chainId": 84532,
        "centrifugeId": 2,
        "catapultaNetwork": "baseSepolia",
        "etherscanUrl": "https://api-sepolia.basescan.org/api",
        "protocolAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "opsAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "baseRpcUrl": "https://base-sepolia.g.alchemy.com/v2/"
      },
      "adapters": {
        "wormhole": {
          "wormholeId": 10004,
          "relayer": "0x93BAD53DDfB6132b0aC8E37f6029163E63372cEE"
        },
        "axelar": {
          "axelarId": "base-sepolia",
          "gateway": "0xe432150cce91c13a887f7D836923d5597adD8E31",
          "gasService": "0xbE406F0189A0B4cf3A05C286473D23791Dd44Cc6"
        },
        "layerZero": {
          "endpoint": "0x6EDCE65403992e310A62460808c4b910D972f10f",
          "layerZeroEid": 40245,
          "blockConfirmations": 5,
          "requiredDVNs": [
            "0xe1a12515F9AB2764b887bF60B923Ca494EBbB2d6"
          ],
          "optionalDVNs": [],
          "optionalDVNThreshold": 0
        },
        "chainlink": {
          "chainSelector": 10344971235874465080,
          "ccipRouter": "0xD3b06cEbF099CE7DA4AcCf578aaebFDBd6e88a93"
        }
      },
      "contracts": {
        "root": {
          "address": "0x1Fa8a2fe2eAE2373B03Fa313E016605EB86cBae8",
          "blockNumber": 36922347,
          "txHash": "0x704ebbb68e7ff13a7e4e30bddf0654ee74d47ea02ca64b454dab2faf7ce201f5"
        },
        "gasService": {
          "address": "0xC486678A507f0c0e61bcdB158DC23CA03Dfb8CFf",
          "blockNumber": 36922351,
          "txHash": "0x3fd1a5ac0fce94203f9a2ee4312359bdf2f2461073ef8de32df352239f7e5258"
        },
        "gateway": {
          "address": "0x1a04566561EF19116D91684c8512348940DDc3ec",
          "blockNumber": 36922348,
          "txHash": "0xfaf6b280c2b3c847c39e78a912b6379b4291b694967ae75b36b3a91bc86107cd"
        },
        "multiAdapter": {
          "address": "0x59436331823AdEC8b4dDd00cE7F319b24664d79D",
          "blockNumber": 36922349,
          "txHash": "0x07c5bd3a5b1c169b8ebdf72374f78f2923b5fedddfadcdb3bd000463d93205bf"
        },
        "messageProcessor": {
          "address": "0x5583D22Fa3c0e71DcBeabD0D67a978115370216b",
          "blockNumber": 36922352,
          "txHash": "0xd95826dd9eb44e2f1abb6f430e39aef2443eea7aff89579cfb3f3780b2e41944"
        },
        "messageDispatcher": {
          "address": "0xC38a4de11128927A1cc474e29d659c16A13C2F76",
          "blockNumber": 36922353,
          "txHash": "0x83f5c981da4c56debc2e6be388a0e42861fd4855a9a4406c6cf4a50aa04c2866"
        },
        "hubRegistry": {
          "address": "0x19258C46573Ba48aB9752A7479AaAb0C00d1674C",
          "blockNumber": 36922359,
          "txHash": "0xc7c516e597e31f21f52cde66dc0037ac485970613e97245dff4ec9cbf22a49fa"
        },
        "accounting": {
          "address": "0x086189cA75ec2cEFaE29F5926EDdf0A7516092B2",
          "blockNumber": 36922360,
          "txHash": "0x8b8d910dc311cd8b58e1e799aeae3afbe96b9357d601f906242b038e3ff4f243"
        },
        "holdings": {
          "address": "0x897DD631BA9d74c248B3fa4FDeDce227105c9bA0",
          "blockNumber": 36922361,
          "txHash": "0x8a6eb42903f9a35949de181588bec4321caf9eedc7db86f9fb32eec01525ab72"
        },
        "shareClassManager": {
          "address": "0xF1103570102008bc3dC83F3120605eaAb9f3EC4e",
          "blockNumber": 36922362,
          "txHash": "0xb750da74bacd9a545939a48526151cf5c50d28d34258ac8e80e8259cd9bb05b7"
        },
        "hub": {
          "address": "0xb2D1EBaEB0007578B09a555F8FB05DaD9150cFDD",
          "blockNumber": 36922363,
          "txHash": "0xb6cd472015fe222fdbd3f0892157203a52bc2a80eae150d9ac210b519966023a"
        },
        "identityValuation": {
          "address": "0xAba76FaFC26f1b6B9fd88864FA86026e44F76B2c",
          "blockNumber": 36922386,
          "txHash": "0xf422f6b6d72db2f9e5c8c0a90cf052ff46943799abf3f302332b7d8a22c5250a"
        },
        "poolEscrowFactory": {
          "address": "0x731Ae9BF353795fCAdB3a0bef43623216dBC0F49",
          "blockNumber": 36922358,
          "txHash": "0x2beda8ec91628e1f52b28250d3d6b9b17b68223419cbc721ddff6697eccaeb58"
        },
        "tokenRecoverer": {
          "address": "0xf6E0a95A857EBE0633167416Ce1f96486932644a",
          "blockNumber": 36922366,
          "txHash": "0x555137722280befe8723ee71f92705889b434961494029bde0902851d5336892"
        },
        "freezeOnlyHook": {
          "address": "0xcA98c69ff705E295d8746E79ed5A3AA1e4b4c41d",
          "blockNumber": 36922376,
          "txHash": "0x7742670b19d57dfe5ec212a97367b800cbb651b3336e95c05d94ded3f806880c"
        },
        "redemptionRestrictionsHook": {
          "address": "0x35F3a094F280f01b8a9F2E64DCD0f111bD3f110A",
          "blockNumber": 36922379,
          "txHash": "0x04a86f3f939eb9d203ec139c4057dbc696777f9b49a73ca913ea4af2399ea5b7"
        },
        "fullRestrictionsHook": {
          "address": "0x19CB96ad58Bf35f4d772b9AE4D21952052355267",
          "blockNumber": 36922377,
          "txHash": "0xe38a70c24c6c6e30b2e81a6d77a7e6d7b554146d194666b0ed24fac0a90a6aa9"
        },
        "tokenFactory": {
          "address": "0xeCf80edEA31Cf9F437E63832906d0d3AE1f2f9F9",
          "blockNumber": 36922354,
          "txHash": "0x3a8678f6f7b84d069c719ec8f1fbfbdfdc0cfa852f2fb182713d8c7666976a30"
        },
        "asyncRequestManager": {
          "address": "0x10A17F06375621150E3B91486c2c4Ed408B77DF6",
          "blockNumber": 36922371,
          "txHash": "0x61daf7af40c80705a3030d65aab5facde5b0c5ac50565d3faab1e4ecba3cf061"
        },
        "syncManager": {
          "address": "0xC864F6Bd38AbE2019c4A00526A560E33A560af73",
          "blockNumber": 36922372,
          "txHash": "0x7fb7ec52239098b7fad2d4906a4347fa1a0cfe84c00985eec997d1ea7d093d9b"
        },
        "asyncVaultFactory": {
          "address": "0x6eC5444E2a9aa53b63869d25c00a1966813C3bB9",
          "blockNumber": 36922374,
          "txHash": "0xac92c2f06ef98111891233ae039fbe22edb952787da61395fc1fe4398da91bf2"
        },
        "syncDepositVaultFactory": {
          "address": "0x3558dfb2820B1FF57F07A55FF5b486b64680Cd2e",
          "blockNumber": 36922375,
          "txHash": "0xdf0fd85bc8cf13da59ba3e800d39603541e6e44bddb54a5d17ffa6edf40ec958"
        },
        "spoke": {
          "address": "0x634f692730978450A27F8FCA6F2dDe356a9B55A1",
          "blockNumber": 36922355,
          "txHash": "0x9739ef9dad71755ca78908e88a218f20ab27011d4766c356734007f53f2d3235"
        },
        "vaultRouter": {
          "address": "0x792676c9B261B80BC3D7dD0f2D3A83d91A819BCD",
          "blockNumber": 36922373,
          "txHash": "0x3ba5d9ab5a9a223a09d30b541299fe9978223c10f4b3d254f01616525f747254"
        },
        "balanceSheet": {
          "address": "0xa1c9396B3Cd392A49727b27139A65210dc9E6212",
          "blockNumber": 36922356,
          "txHash": "0xd5d0b3151df3bbf2a9ab668f6dd0e470434105c4b476ad8238aaade404e2de32"
        },
        "wormholeAdapter": {
          "address": "0xfb5e002643da6743D211b1fd66Fe4f86FcC4E4bE",
          "blockNumber": 36922391,
          "txHash": "0x8c749bdd82358e20cb2713564f267478a8648d6d8e6a8232c7bed8795ab2e2e1"
        },
        "onOfframpManagerFactory": {
          "address": "0xAa696bCD0FCeBC186BcCD6de548EB385d57e132B",
          "blockNumber": 36922381,
          "txHash": "0xe094a21f144a64bfa3732ff8d3ba12a66cc32433bcab36da2c2e9a5c4150c4c5"
        },
        "merkleProofManagerFactory": {
          "address": "0x81c38f8a9ef2953dA2DAF7b6bddFF3baB5095216",
          "blockNumber": 36922382,
          "txHash": "0x71848a0edc6fa1952ce3f4beff330f4a0edf0acee0241f60dbb3279f15e1ebd6"
        },
        "vaultDecoder": {
          "address": "0x53c314e4CAF0A70A934c2570b0b264359005F838",
          "blockNumber": 36922383,
          "txHash": "0xcc2561f29bf97f0c313073f2f39b11745b13c2e822e80aa981b7a77e7b0ad533"
        },
        "circleDecoder": {
          "address": "0x76a2718A3064f8981788D5fb0Fb22caFe5B39465",
          "blockNumber": 36922384,
          "txHash": "0x5f29f0baf3684af6df84edb6f220faa8d79088d58768184d9b2214424a6ff4e2"
        },
        "contractUpdater": {
          "address": "0x69752e9dd9375Dab0563a56620547B61279678A4",
          "blockNumber": 36922350,
          "txHash": "0x6e0600d778ff52d23ce9ace0efec097c2cfe091db24b79de70fd93379ca8eed8"
        },
        "vaultRegistry": {
          "address": "0x9E7d9003c07a896d5E7b075fA6F4D1d7a2fDf672",
          "blockNumber": 36922357,
          "txHash": "0xe86604963c9b792fcf8c08d90757f3efd6b46662ef9b0fcc8d9130ed84ce8a12"
        },
        "hubHandler": {
          "address": "0x09ec05d9a96373766BDb18FD443B82A5cEf93626",
          "blockNumber": 36922364,
          "txHash": "0x71bc28dd596ee3e0777f3bbb2b536eea52dde4a2e5261e0af8b0a4d9c119b3a0"
        },
        "protocolGuardian": {
          "address": "0x78EB028bA9AFd690e134c753Bc77F2B9fC88e405",
          "blockNumber": 36922367,
          "txHash": "0xc1121cf8fcb462f1dd8e5d6e05c5c6da2b8e8f2d97653706c0bb20cdce912d55"
        },
        "opsGuardian": {
          "address": "0x606BdDf7E4BEf64cd0936fcf1C1e6f82232882b0",
          "blockNumber": 36922368,
          "txHash": "0x33da0c3bc080e55175953da09f23934591eaa20791032ef19f8581a601d6637d"
        },
        "refundEscrowFactory": {
          "address": "0x72Ff454A32cd730783487110520CD426Fe5CEea2",
          "blockNumber": 36922369,
          "txHash": "0xa12f4281ea9873d435d4be9ad762150ea2de465f8f996cc828ce7979774ed5f5"
        },
        "freelyTransferableHook": {
          "address": "0x8ca95C3F27fDC5eC5f893607fa6fEa98362d759D",
          "blockNumber": 36922378,
          "txHash": "0xcae7d686bda48230d3c4955a3b1734fcfb308297772383a99b478b6d23a85265"
        },
        "queueManager": {
          "address": "0x0B3F886F2bcA7Fc6da807B113D55FB2FaC0aF661",
          "blockNumber": 36922380,
          "txHash": "0x3db5194ad9f59df8cc057a113e3ec7ff56839a3f2c9a87446bf0c93ee3276938"
        },
        "batchRequestManager": {
          "address": "0x15c878Fd558d15C325E7ac50f92e111d09924312",
          "blockNumber": 36922385,
          "txHash": "0x77c4316120da01b878e6dc20153b6963656623de4c308622c0ee6bb71108ff73"
        },
        "oracleValuation": {
          "address": "0xf3869e1Da04886D00D7A15b48C01e71b8c7F3427",
          "blockNumber": 36922387,
          "txHash": "0x9cb5021509a3ef9f1e3a43be387a5d2cb80719cbf0570b41f2ca690cffa42706"
        },
        "navManager": {
          "address": "0x91a867d2aaC0e6f95d8dC2b77d83037A74FDa67C",
          "blockNumber": 36922388,
          "txHash": "0x0270c24df6d87296051fb92b0980335b14b254b48e2d7ac20631e74690fea8de"
        },
        "simplePriceManager": {
          "address": "0x53343b8D2763cF65f5174Bfb3Dcb16400a0d0022",
          "blockNumber": 36922389,
          "txHash": "0x4b89be7f80cbdfe08226a8c1a1d52576cb54d5efcdb45dd66d1761ba91ff02b9"
        },
        "layerZeroAdapter": {
          "address": "0x953716F877ee85522b34B8A85Fd9560AAEBBee39",
          "blockNumber": 36922390,
          "txHash": "0xf58beba2311a9a27c159d1d86f4a4fde2cc39f841043c3d56f0e660b4997673f"
        },
        "subsidyManager": {
          "address": "0xE5419F74f8875C401C3a2f4C68846d9d410e1677",
          "blockNumber": 36922370,
          "txHash": "0x5f99d2c6ca079c85cd4541a0e018368b60c8d157432bfd8369136b058fbe2bda"
        },
        "axelarAdapter": {
          "address": "0xeAE0D8272f05A8496564d0f33cA8f74dA950142C",
          "blockNumber": 36922392,
          "txHash": "0x0f788000088c93a2a7c330e33626bef20b4bc1748423d3445279730e276b3792"
        },
        "chainlinkAdapter": {
          "address": "0xd18C58838327CB923551d89BF1277977edc6d8D3",
          "blockNumber": 36922393,
          "txHash": "0x8053a7c8b919c26dc3c07c69fe28fdd49104180b5ff084e33bab25f04d026590"
        }
      },
      "deployment": {
        "deployedAt": 1769612967,
        "startBlock": 36922335
      }
    },
    "421614": {
      "network": {
        "chainId": 421614,
        "centrifugeId": 3,
        "network": "arbitrum",
        "catapultaNetwork": "arbitrumSepolia",
        "protocolAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "opsAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "baseRpcUrl": "https://arb-sepolia.g.alchemy.com/v2/"
      },
      "adapters": {
        "wormhole": {
          "wormholeId": 10003,
          "relayer": "0x7B1bD7a6b4E61c2a123AC6BC2cbfC614437D0470"
        },
        "axelar": {
          "axelarId": "arbitrum-sepolia",
          "gateway": "0xe1cE95479C84e9809269227C7F8524aE051Ae77a",
          "gasService": "0xbE406F0189A0B4cf3A05C286473D23791Dd44Cc6"
        },
        "layerZero": {
          "endpoint": "0x6EDCE65403992e310A62460808c4b910D972f10f",
          "layerZeroEid": 40231,
          "blockConfirmations": 5,
          "requiredDVNs": [
            "0x53f488E93b4f1b60E8E83aa374dBe1780A1EE8a8"
          ],
          "optionalDVNs": [],
          "optionalDVNThreshold": 0
        },
        "chainlink": {
          "chainSelector": 3478487238524512106,
          "ccipRouter": "0x2a9C5afB0d0e4BAb2BCdaE109EC4b0c4Be15a165"
        }
      },
      "contracts": {
        "root": {
          "address": "0x1Fa8a2fe2eAE2373B03Fa313E016605EB86cBae8",
          "blockNumber": 237622348,
          "txHash": "0x5a294e5baa1bac12a73a88ae6986842c107b22108da4fb7453174743cbd91734"
        },
        "gasService": {
          "address": "0xC486678A507f0c0e61bcdB158DC23CA03Dfb8CFf",
          "blockNumber": 237622359,
          "txHash": "0x45b097d49db3818e0d023da057fd4077a8a59180ec2397ed37cde92805bb98aa"
        },
        "gateway": {
          "address": "0x1a04566561EF19116D91684c8512348940DDc3ec",
          "blockNumber": 237622351,
          "txHash": "0x05ef5404dc5020dc472bfb071c8fe4147ac127eac76ad592fbc39da214850578"
        },
        "multiAdapter": {
          "address": "0x59436331823AdEC8b4dDd00cE7F319b24664d79D",
          "blockNumber": 237622354,
          "txHash": "0x883949464436584030c715ca8a22b7ea7f77227d5c6363f87a7bc4ff79e948ed"
        },
        "messageProcessor": {
          "address": "0x5583D22Fa3c0e71DcBeabD0D67a978115370216b",
          "blockNumber": 237622362,
          "txHash": "0xd31c1ae280c746226b81176ea2b0a1a9abc4d385788e8b9ba1cb62cb7579daeb"
        },
        "messageDispatcher": {
          "address": "0xC38a4de11128927A1cc474e29d659c16A13C2F76",
          "blockNumber": 237622364,
          "txHash": "0x9f56ea37e2ff947c9ef8a9381abbe98b20be92d83c6fbc1854eb2158823f2074"
        },
        "hubRegistry": {
          "address": "0x19258C46573Ba48aB9752A7479AaAb0C00d1674C",
          "blockNumber": 237622387,
          "txHash": "0xef7dde17ba505a6b5c1251321cfa9ae8ee30509987ccc3dfa27d218e5ede8920"
        },
        "accounting": {
          "address": "0x086189cA75ec2cEFaE29F5926EDdf0A7516092B2",
          "blockNumber": 237622390,
          "txHash": "0x56e6dc3bc9829bd4489ba53f7aca2ab859985ac13420de2e78bb094ce6affab4"
        },
        "holdings": {
          "address": "0x897DD631BA9d74c248B3fa4FDeDce227105c9bA0",
          "blockNumber": 237622393,
          "txHash": "0x3fcfae01fb72db52411d5b9f6d592a72a6f3e782c0dce8f9b94a89982f97098b"
        },
        "shareClassManager": {
          "address": "0xF1103570102008bc3dC83F3120605eaAb9f3EC4e",
          "blockNumber": 237622396,
          "txHash": "0x48c5a2c791d486ab53b57daf7222b16aac9d4a90a704474c659eaa816078fad0"
        },
        "hub": {
          "address": "0xb2D1EBaEB0007578B09a555F8FB05DaD9150cFDD",
          "blockNumber": 237622399,
          "txHash": "0x6616f2a7336d0473e904241f56bf64815a4c7f2bbda51a82dbc5e36766c00cf6"
        },
        "identityValuation": {
          "address": "0xAba76FaFC26f1b6B9fd88864FA86026e44F76B2c",
          "blockNumber": 237622463,
          "txHash": "0x905a9917ead975a0886b7b7b906bbc6bed8843eb6ab495241b689c95ca6cd514"
        },
        "poolEscrowFactory": {
          "address": "0x731Ae9BF353795fCAdB3a0bef43623216dBC0F49",
          "blockNumber": 237622380,
          "txHash": "0xaf60bda3277e8f6ecdca99eac9a840a73185b32e32649dd61ca2a2d97b3eb96d"
        },
        "tokenRecoverer": {
          "address": "0xf6E0a95A857EBE0633167416Ce1f96486932644a",
          "blockNumber": 237622405,
          "txHash": "0x686175d0e53af56350ec9018363e517aa75bc2c4ad5c70b3456584ec311ee75e"
        },
        "freezeOnlyHook": {
          "address": "0xcA98c69ff705E295d8746E79ed5A3AA1e4b4c41d",
          "blockNumber": 237622437,
          "txHash": "0x92168e82079f4898b62a032361e364d336cdb4f18be96b4bcc771222efa105eb"
        },
        "redemptionRestrictionsHook": {
          "address": "0x35F3a094F280f01b8a9F2E64DCD0f111bD3f110A",
          "blockNumber": 237622445,
          "txHash": "0xf65ab7d198a9513f820e8ba18bc7239f0cd4d364ad3e46acd525511a9bdce757"
        },
        "fullRestrictionsHook": {
          "address": "0x19CB96ad58Bf35f4d772b9AE4D21952052355267",
          "blockNumber": 237622440,
          "txHash": "0x00062ff013cf42b03aa363674b86e3dc244298a77ddc005fc550dcf099b7e87e"
        },
        "tokenFactory": {
          "address": "0xeCf80edEA31Cf9F437E63832906d0d3AE1f2f9F9",
          "blockNumber": 237622368,
          "txHash": "0x3c7f27c467769ed2a5074ae9790a8838070336d2d96dd9ba60f7cf1623468637"
        },
        "asyncRequestManager": {
          "address": "0x10A17F06375621150E3B91486c2c4Ed408B77DF6",
          "blockNumber": 237622414,
          "txHash": "0xf759851399d63810e00c6092c0ce2b9ab1aabb4890ba48d78f363735669023ee"
        },
        "syncManager": {
          "address": "0xC864F6Bd38AbE2019c4A00526A560E33A560af73",
          "blockNumber": 237622418,
          "txHash": "0xbb55a43d0b4583b34fa11dc9aa135aac5b1c0f3af0caa4464e3f59b2de9b6215"
        },
        "asyncVaultFactory": {
          "address": "0x6eC5444E2a9aa53b63869d25c00a1966813C3bB9",
          "blockNumber": 237622430,
          "txHash": "0x7613e3e4da8dfc5795c90c0453e6fae65ab4e54404dd6968d12470559a1741fb"
        },
        "syncDepositVaultFactory": {
          "address": "0x3558dfb2820B1FF57F07A55FF5b486b64680Cd2e",
          "blockNumber": 237622434,
          "txHash": "0x258e08fd7c73648d1ad027a1c7b20a68e46607b67a4ffca139a56e649a80e364"
        },
        "spoke": {
          "address": "0x634f692730978450A27F8FCA6F2dDe356a9B55A1",
          "blockNumber": 237622371,
          "txHash": "0xda06c537289c07f5784d563885c9fdd6f3bb2560ab742e46e5e82b58924e4e78"
        },
        "vaultRouter": {
          "address": "0x792676c9B261B80BC3D7dD0f2D3A83d91A819BCD",
          "blockNumber": 237622427,
          "txHash": "0xf02b053d11281b95dc894a300267bf7458aab5f9cf8ccf92645f8b29f135bf41"
        },
        "balanceSheet": {
          "address": "0xa1c9396B3Cd392A49727b27139A65210dc9E6212",
          "blockNumber": 237622375,
          "txHash": "0xee07b4a57eab1db5e5892fdffeebed7ac6c42b879fc5375a4b54eeb2f48b2381"
        },
        "contractUpdater": {
          "address": "0x69752e9dd9375Dab0563a56620547B61279678A4",
          "blockNumber": 237622356,
          "txHash": "0x91e59cc0224f571fc28f4e968304966219fc9d800199ad72feb742f311c5bb27"
        },
        "onOfframpManagerFactory": {
          "address": "0xAa696bCD0FCeBC186BcCD6de548EB385d57e132B",
          "blockNumber": 237622449,
          "txHash": "0x7144a202196b37a9869d63d3bf841ed51ffda28b8ef02909d9cbb762f4c1a9af"
        },
        "merkleProofManagerFactory": {
          "address": "0x81c38f8a9ef2953dA2DAF7b6bddFF3baB5095216",
          "blockNumber": 237622451,
          "txHash": "0x20b099237164b8c2bdc82c90d3e0be7f5afc8996e14d935e7cf73e3443f99a97"
        },
        "vaultDecoder": {
          "address": "0x53c314e4CAF0A70A934c2570b0b264359005F838",
          "blockNumber": 237622454,
          "txHash": "0x31c6a433ea78d2175fc03a07026cb13e0a8ff7345b173e6435a757bdae2cef60"
        },
        "circleDecoder": {
          "address": "0x76a2718A3064f8981788D5fb0Fb22caFe5B39465",
          "blockNumber": 237622457,
          "txHash": "0xdda3979281ecf2bae61746b17a4b7dea56fd332b884335a62369b9732f2d163c"
        },
        "vaultRegistry": {
          "address": "0x9E7d9003c07a896d5E7b075fA6F4D1d7a2fDf672",
          "blockNumber": 237622378,
          "txHash": "0xf1c8b0934731644826d196bc5723f34f065e6c62b4e99b81e20bcbeec82b76db"
        },
        "hubHandler": {
          "address": "0x09ec05d9a96373766BDb18FD443B82A5cEf93626",
          "blockNumber": 237622401,
          "txHash": "0x6080904914f3730cea43b779a22f8a7d3701801cecf7a0d331409f23ed5a6a32"
        },
        "protocolGuardian": {
          "address": "0x78EB028bA9AFd690e134c753Bc77F2B9fC88e405",
          "blockNumber": 237622407,
          "txHash": "0x007116ae9fe371521a313dd0de349b8876792346f2e114be9293626cf5218870"
        },
        "opsGuardian": {
          "address": "0x606BdDf7E4BEf64cd0936fcf1C1e6f82232882b0",
          "blockNumber": 237622409,
          "txHash": "0x129200e796e7893684c2bdbde594531d942e40f86c440498f99a33e7ca87d3d5"
        },
        "refundEscrowFactory": {
          "address": "0x72Ff454A32cd730783487110520CD426Fe5CEea2",
          "blockNumber": 237622411,
          "txHash": "0x46cf0d24ed4044f43e254629182080634b733e702e7fafdb3f602d31d2a7c744"
        },
        "freelyTransferableHook": {
          "address": "0x8ca95C3F27fDC5eC5f893607fa6fEa98362d759D",
          "blockNumber": 237622442,
          "txHash": "0x1461fccd2a4af145715b166ffdd40e57d49b5863d7b6753a17edc9edcf7d918b"
        },
        "queueManager": {
          "address": "0x0B3F886F2bcA7Fc6da807B113D55FB2FaC0aF661",
          "blockNumber": 237622447,
          "txHash": "0x146cfe3f5d071a4393db4f91dc9ecc31b329fb77c507a0229780dd8bff960c18"
        },
        "batchRequestManager": {
          "address": "0x15c878Fd558d15C325E7ac50f92e111d09924312",
          "blockNumber": 237622461,
          "txHash": "0x84ad84b942080736564b31363bc810305c63851cf6919bd96110a30aa2c87870"
        },
        "oracleValuation": {
          "address": "0xf3869e1Da04886D00D7A15b48C01e71b8c7F3427",
          "blockNumber": 237622465,
          "txHash": "0x8e9c4ab9968977b1f5b73632b5db9bb8d96f3a1546559c20a9ff4e341f364a88"
        },
        "navManager": {
          "address": "0x91a867d2aaC0e6f95d8dC2b77d83037A74FDa67C",
          "blockNumber": 237622468,
          "txHash": "0x528e40fcb854fe6a0d01ff4e998e62fa73312765bb699bede5a0244d6e74e43e"
        },
        "simplePriceManager": {
          "address": "0x53343b8D2763cF65f5174Bfb3Dcb16400a0d0022",
          "blockNumber": 237622471,
          "txHash": "0x1e83eeca94abd4fd1defe4049ce02a64302d7e1890a29709797dd02cec346c97"
        },
        "layerZeroAdapter": {
          "address": "0x953716F877ee85522b34B8A85Fd9560AAEBBee39",
          "blockNumber": 237622474,
          "txHash": "0xf20c4d02691de1b65be590e5da390a473adc18ac106a2879340bb6b369ee5050"
        },
        "axelarAdapter": {
          "address": "0xeAE0D8272f05A8496564d0f33cA8f74dA950142C",
          "blockNumber": 237622478,
          "txHash": "0x8ddf1a35eb4387760b1fc90bf766a2d658fc35877506dae649cb80190bd16efe"
        },
        "subsidyManager": {
          "address": "0xE5419F74f8875C401C3a2f4C68846d9d410e1677",
          "blockNumber": 237622413,
          "txHash": "0xe6bef4916f5087e4f1dd6d37f699d745f62e619b3d2b5f0d56bc278ef38135be"
        },
        "wormholeAdapter": {
          "address": "0xfb5e002643da6743D211b1fd66Fe4f86FcC4E4bE",
          "blockNumber": 237622476,
          "txHash": "0x89ed083a4ee45031252237168718e40caba31b795595479cabfeb219e7c64659"
        },
        "chainlinkAdapter": {
          "address": "0xd18C58838327CB923551d89BF1277977edc6d8D3",
          "blockNumber": 237622480,
          "txHash": "0x6036cd88c72ff5e9660cd243a86720ab9b1c6aa75625e42b41212f5c3645ee68"
        }
      },
      "deployment": {
        "deployedAt": 1769614959,
        "startBlock": 237622348
      }
    },
    "11155111": {
      "network": {
        "chainId": 11155111,
        "centrifugeId": 1,
        "protocolAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "opsAdmin": "0xc1A929CBc122Ddb8794287D05Bf890E41f23c8cb",
        "baseRpcUrl": "https://eth-sepolia.g.alchemy.com/v2/"
      },
      "adapters": {
        "wormhole": {
          "wormholeId": 10002,
          "relayer": "0x7B1bD7a6b4E61c2a123AC6BC2cbfC614437D0470"
        },
        "axelar": {
          "axelarId": "ethereum-sepolia",
          "gateway": "0xe432150cce91c13a887f7D836923d5597adD8E31",
          "gasService": "0xbE406F0189A0B4cf3A05C286473D23791Dd44Cc6"
        },
        "layerZero": {
          "endpoint": "0x6edce65403992e310a62460808c4b910d972f10f",
          "layerZeroEid": 40161,
          "blockConfirmations": 5,
          "requiredDVNs": [
            "0x8eebf8b423B73bFCa51a1Db4B7354AA0bFCA9193"
          ],
          "optionalDVNs": [],
          "optionalDVNThreshold": 0
        },
        "chainlink": {
          "chainSelector": 16015286601757825753,
          "ccipRouter": "0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59"
        }
      },
      "contracts": {
        "root": {
          "address": "0x1Fa8a2fe2eAE2373B03Fa313E016605EB86cBae8",
          "blockNumber": 10142074,
          "txHash": "0x9265e14d0e23e6c8c79d7eadb6f01f46d3039a4608988049dd2fdf3b4d3ed43e"
        },
        "gasService": {
          "address": "0xC486678A507f0c0e61bcdB158DC23CA03Dfb8CFf",
          "blockNumber": 10142074,
          "txHash": "0x7320af8cb1497afa58eba2b83210db3c4e178dd41bd04c47139c9661422b884b"
        },
        "gateway": {
          "address": "0x1a04566561EF19116D91684c8512348940DDc3ec",
          "blockNumber": 10142074,
          "txHash": "0x1469cb4fe7f1b9c0675422b569b0e5e510a06b90335f9c89dfdc7f348c017506"
        },
        "multiAdapter": {
          "address": "0x59436331823AdEC8b4dDd00cE7F319b24664d79D",
          "blockNumber": 10142074,
          "txHash": "0x8d69009f18b26e28721e82c7092eceaf1eb55b93cb5f0d0006820a5f0fe7f9cd"
        },
        "messageProcessor": {
          "address": "0x5583D22Fa3c0e71DcBeabD0D67a978115370216b",
          "blockNumber": 10142074,
          "txHash": "0x1615812f23645c1ded84c394b16c78681a723521448bca1301cbc68c393c7940"
        },
        "messageDispatcher": {
          "address": "0xC38a4de11128927A1cc474e29d659c16A13C2F76",
          "blockNumber": 10142074,
          "txHash": "0x0fbbdd7829b9210f25155cc1f822e620cec5df249c1573455ab07c6ec3f84db8"
        },
        "hubRegistry": {
          "address": "0x19258C46573Ba48aB9752A7479AaAb0C00d1674C",
          "blockNumber": 10142074,
          "txHash": "0x1a70cf9683497d7baa71fe8889957f060662e713ac812a74bf0c20f303f1a402"
        },
        "accounting": {
          "address": "0x086189cA75ec2cEFaE29F5926EDdf0A7516092B2",
          "blockNumber": 10142074,
          "txHash": "0xcbc5a785974b17049ecc5a33689290fb4be7c52e06758829bd6dbae35498ba66"
        },
        "holdings": {
          "address": "0x897DD631BA9d74c248B3fa4FDeDce227105c9bA0",
          "blockNumber": 10142074,
          "txHash": "0x9b4e3aab63b26b12f3154ad56d13a18e7da88bb5549f6a0963a9423c91abfc3f"
        },
        "shareClassManager": {
          "address": "0xF1103570102008bc3dC83F3120605eaAb9f3EC4e",
          "blockNumber": 10142075,
          "txHash": "0x553c3bd5b1456f01500d9594a200b5ef7fc24dfc61097a23875d0644ea008779"
        },
        "hub": {
          "address": "0xb2D1EBaEB0007578B09a555F8FB05DaD9150cFDD",
          "blockNumber": 10142075,
          "txHash": "0x2b5ee4ae7197227bb2ae6b118d37a015ecfa2b6e163b54f2cc44951fb0f635b9"
        },
        "identityValuation": {
          "address": "0xAba76FaFC26f1b6B9fd88864FA86026e44F76B2c",
          "blockNumber": 10142076,
          "txHash": "0x050bf279bae27d51fda94767aba6d0f7c278dd9214d6128655c7df3599e5bbd6"
        },
        "poolEscrowFactory": {
          "address": "0x731Ae9BF353795fCAdB3a0bef43623216dBC0F49",
          "blockNumber": 10142074,
          "txHash": "0xce90a5f6ac92118dd50fe377588c3db0537b0787b888ea981f0398b53da66e9b"
        },
        "tokenRecoverer": {
          "address": "0xf6E0a95A857EBE0633167416Ce1f96486932644a",
          "blockNumber": 10142075,
          "txHash": "0x8cd0e52f9ebb917a8826e0199ba7b4664b52150f953c21a78523a1d272da3bf7"
        },
        "freezeOnlyHook": {
          "address": "0xcA98c69ff705E295d8746E79ed5A3AA1e4b4c41d",
          "blockNumber": 10142075,
          "txHash": "0x3cbe694c3e5d0b8a13ca25e508b7d32d51f76f88721f617d48703ff1989aaf85"
        },
        "redemptionRestrictionsHook": {
          "address": "0x35F3a094F280f01b8a9F2E64DCD0f111bD3f110A",
          "blockNumber": 10142075,
          "txHash": "0x75064de9d5566f696a0eea52beee332d6ce1323ad1411ce9568e645f6f3bdfca"
        },
        "fullRestrictionsHook": {
          "address": "0x19CB96ad58Bf35f4d772b9AE4D21952052355267",
          "blockNumber": 10142075,
          "txHash": "0x150fbfdd8b44dbc2e9166d60420ac23fbf7a0934524ca3c3b0704b60e37fa227"
        },
        "tokenFactory": {
          "address": "0xeCf80edEA31Cf9F437E63832906d0d3AE1f2f9F9",
          "blockNumber": 10142074,
          "txHash": "0xcbc5397d583dc94e65de2709b3a5771d552121ebcdba5d71d0de3db2c5b9e4c2"
        },
        "asyncRequestManager": {
          "address": "0x10A17F06375621150E3B91486c2c4Ed408B77DF6",
          "blockNumber": 10142075,
          "txHash": "0x1b6a37cda6d1e94f518b78cb9ffd4b56c1e1c83ba9169bebfa09ad821c9018a3"
        },
        "syncManager": {
          "address": "0xC864F6Bd38AbE2019c4A00526A560E33A560af73",
          "blockNumber": 10142075,
          "txHash": "0xfe9c7eaa544a81d0a7054a625a58c64075b0706765a9069e94ef5977f0186548"
        },
        "asyncVaultFactory": {
          "address": "0x6eC5444E2a9aa53b63869d25c00a1966813C3bB9",
          "blockNumber": 10142075,
          "txHash": "0x3674c63261213c5871dc96af350882a2231f7d50a30e6c9b3805037c8383e6b9"
        },
        "syncDepositVaultFactory": {
          "address": "0x3558dfb2820B1FF57F07A55FF5b486b64680Cd2e",
          "blockNumber": 10142075,
          "txHash": "0xf3534424e400fa47aa7503a3872c7d7ddcd4dc219ec1abcc2f89d769ad3555b8"
        },
        "spoke": {
          "address": "0x634f692730978450A27F8FCA6F2dDe356a9B55A1",
          "blockNumber": 10142074,
          "txHash": "0x48cb0b514683de52dbba5f64cfb9449de6db5ee8ebeea040644880e4bad3fa03"
        },
        "vaultRouter": {
          "address": "0x792676c9B261B80BC3D7dD0f2D3A83d91A819BCD",
          "blockNumber": 10142075,
          "txHash": "0x56e0cb810a365c46ac1c315e69bf05b9733b709f67ce670d28ac61d543e6ddb6"
        },
        "balanceSheet": {
          "address": "0xa1c9396B3Cd392A49727b27139A65210dc9E6212",
          "blockNumber": 10142074,
          "txHash": "0xf966ed00b744c03a65ee2eb467090ae9db33a536904d0df712ca53b403dde4d4"
        },
        "wormholeAdapter": {
          "address": "0xfb5e002643da6743D211b1fd66Fe4f86FcC4E4bE",
          "blockNumber": 10142076,
          "txHash": "0x272bdaf0b4e358e654c8bb05d5c32b8382e6a8617b11e018172c8675f6a83ba5"
        },
        "axelarAdapter": {
          "address": "0xeAE0D8272f05A8496564d0f33cA8f74dA950142C",
          "blockNumber": 10142076,
          "txHash": "0x1d0be44ca15e3b98618887d5f13e56d641970a0785398471b0d6f83376024dde"
        },
        "contractUpdater": {
          "address": "0x69752e9dd9375Dab0563a56620547B61279678A4",
          "blockNumber": 10142074,
          "txHash": "0xb6ac3a67133513725057fdad960c0f8b3da12d7ce0d9f4d61fee2f4a89954def"
        },
        "onOfframpManagerFactory": {
          "address": "0xAa696bCD0FCeBC186BcCD6de548EB385d57e132B",
          "blockNumber": 10142075,
          "txHash": "0x51d72949b0fc485bbfe150cafc3e0f3c2b544e5778dbe8ae9a75df05247894cf"
        },
        "merkleProofManagerFactory": {
          "address": "0x81c38f8a9ef2953dA2DAF7b6bddFF3baB5095216",
          "blockNumber": 10142075,
          "txHash": "0x8875d9775832132679423da0190177567cac813d71bbd0becd0ef16c4b9dfc69"
        },
        "vaultDecoder": {
          "address": "0x53c314e4CAF0A70A934c2570b0b264359005F838",
          "blockNumber": 10142075,
          "txHash": "0x98ea4308f62b689fd0ee2ae3c5ddbe494d4a29bb7fa54fed934d0c01ce56f9e9"
        },
        "circleDecoder": {
          "address": "0x76a2718A3064f8981788D5fb0Fb22caFe5B39465",
          "blockNumber": 10142075,
          "txHash": "0xc5ceb88c39e6ddf7518fce67dd5f0e90bf957bf07cf3bf8ed8e09eb2b33cbf9d"
        },
        "vaultRegistry": {
          "address": "0x9E7d9003c07a896d5E7b075fA6F4D1d7a2fDf672",
          "blockNumber": 10142074,
          "txHash": "0x5c8fabe8a467d57043c832b6ed61462d3207c8320c917c36cce733c440273591"
        },
        "hubHandler": {
          "address": "0x09ec05d9a96373766BDb18FD443B82A5cEf93626",
          "blockNumber": 10142075,
          "txHash": "0x1f4d85b586e9c020c2b3b694697fd0b2fca6c4ca98a6057e48bcc2a4d68e2c36"
        },
        "protocolGuardian": {
          "address": "0x78EB028bA9AFd690e134c753Bc77F2B9fC88e405",
          "blockNumber": 10142075,
          "txHash": "0x4092062f1b90ef78867b001e02ef6e5deccb07dc726d97e1a19c0869565d0910"
        },
        "opsGuardian": {
          "address": "0x606BdDf7E4BEf64cd0936fcf1C1e6f82232882b0",
          "blockNumber": 10142075,
          "txHash": "0x2496103dd7a1d1f60434e3f264f775abbdf3ff26bf2a249e756251027f9ff4ce"
        },
        "refundEscrowFactory": {
          "address": "0x72Ff454A32cd730783487110520CD426Fe5CEea2",
          "blockNumber": 10142075,
          "txHash": "0xda4acb2e31d410c69304bb526ca8b33c4b3235a4a9c1dfb206089484e482abe9"
        },
        "freelyTransferableHook": {
          "address": "0x8ca95C3F27fDC5eC5f893607fa6fEa98362d759D",
          "blockNumber": 10142075,
          "txHash": "0xec7b53e360dfbc4238b7a4f99188c18c9cfb9cd7ecf65aeece75913ff359d311"
        },
        "queueManager": {
          "address": "0x0B3F886F2bcA7Fc6da807B113D55FB2FaC0aF661",
          "blockNumber": 10142075,
          "txHash": "0x0a1f2c56f93218f084101935df6af451ec02e3fa59175ba68e5665a279192177"
        },
        "batchRequestManager": {
          "address": "0x15c878Fd558d15C325E7ac50f92e111d09924312",
          "blockNumber": 10142076,
          "txHash": "0x427ce07d5f98be709df291147ad28a2dab3ebd1a2974ef37fb3413ec889adfa9"
        },
        "oracleValuation": {
          "address": "0xf3869e1Da04886D00D7A15b48C01e71b8c7F3427",
          "blockNumber": 10142076,
          "txHash": "0xe8dff1561cf99d93a63fa9dc8ecfb85149cfc16ecfcb01a6da257ab933136b05"
        },
        "navManager": {
          "address": "0x91a867d2aaC0e6f95d8dC2b77d83037A74FDa67C",
          "blockNumber": 10142076,
          "txHash": "0x0be0cfb1f10fa235e779dd6e7a0b2e8abb023bee95980132601202381bba8336"
        },
        "simplePriceManager": {
          "address": "0x53343b8D2763cF65f5174Bfb3Dcb16400a0d0022",
          "blockNumber": 10142076,
          "txHash": "0xb03bf1e54a9acc19451603482ea1e4588fb9d75ad6d96dd7e045ed6ceca32aa3"
        },
        "layerZeroAdapter": {
          "address": "0x953716F877ee85522b34B8A85Fd9560AAEBBee39",
          "blockNumber": 10142076,
          "txHash": "0x414efa3c46ff68ab5d580a636f02f5e07a3810e9db5a5c98e323f9e6391e679e"
        },
        "subsidyManager": {
          "address": "0xE5419F74f8875C401C3a2f4C68846d9d410e1677",
          "blockNumber": 10142075,
          "txHash": "0x410a01d7cff3886cdd30f63bf7c2daf8f9aefd30c8514528c1c074cb0c732d8a"
        },
        "chainlinkAdapter": {
          "address": "0xd18C58838327CB923551d89BF1277977edc6d8D3",
          "blockNumber": 10142076,
          "txHash": "0x75e63ed0a0504573c58677e9bc79d8df0adc39edd92001233eea1c18dd8f6d5a"
        }
      },
      "deployment": {
        "deployedAt": 1769611653,
        "startBlock": 10142072
      }
    }
  },
  "abis": {
    "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": []
      }
    ],
    "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": []
      }
    ],
    "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": []
      }
    ],
    "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": []
      }
    ],
    "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": []
      }
    ],
    "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": []
      }
    ],
    "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"
          }
        ]
      }
    ],
    "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": []
      }
    ],
    "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"
          }
        ]
      }
    ],
    "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": []
      }
    ],
    "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"
          }
        ]
      }
    ],
    "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": []
      }
    ],
    "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": []
      }
    ],
    "OnOfframpManagerFactory": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "contractUpdater_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "balanceSheet_",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "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": "newManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "scId",
            "type": "bytes16",
            "internalType": "ShareClassId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IOnOfframpManager"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "DeployOnOfframpManager",
        "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
      }
    ],
    "OnOfframpManager": [
      {
        "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"
          }
        ],
        "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": "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": "InvalidAmount",
        "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"
          }
        ]
      }
    ],
    "MerkleProofManagerFactory": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "contractUpdater_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "balanceSheet_",
            "type": "address",
            "internalType": "contract IBalanceSheet"
          }
        ],
        "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": "newManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IMerkleProofManager"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "DeployMerkleProofManager",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "manager",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "InvalidPoolId",
        "inputs": []
      }
    ],
    "MerkleProofManager": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "poolId_",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "contractUpdater_",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "receive",
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "contractUpdater",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "execute",
        "inputs": [
          {
            "name": "calls",
            "type": "tuple[]",
            "internalType": "struct Call[]",
            "components": [
              {
                "name": "decoder",
                "type": "address",
                "internalType": "address"
              },
              {
                "name": "target",
                "type": "address",
                "internalType": "address"
              },
              {
                "name": "targetData",
                "type": "bytes",
                "internalType": "bytes"
              },
              {
                "name": "value",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "proof",
                "type": "bytes32[]",
                "internalType": "bytes32[]"
              }
            ]
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "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": "ExecuteCall",
        "inputs": [
          {
            "name": "target",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "name": "selector",
            "type": "bytes4",
            "indexed": true,
            "internalType": "bytes4"
          },
          {
            "name": "targetData",
            "type": "bytes",
            "indexed": false,
            "internalType": "bytes"
          },
          {
            "name": "value",
            "type": "uint256",
            "indexed": false,
            "internalType": "uint256"
          }
        ],
        "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": "CallFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "DecodingFailed",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InsufficientBalance",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidDecodersLength",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidPoolId",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidProof",
        "inputs": [
          {
            "name": "leaf",
            "type": "tuple",
            "internalType": "struct PolicyLeaf",
            "components": [
              {
                "name": "decoder",
                "type": "address",
                "internalType": "address"
              },
              {
                "name": "target",
                "type": "address",
                "internalType": "address"
              },
              {
                "name": "valueNonZero",
                "type": "bool",
                "internalType": "bool"
              },
              {
                "name": "selector",
                "type": "bytes4",
                "internalType": "bytes4"
              },
              {
                "name": "addresses",
                "type": "bytes",
                "internalType": "bytes"
              }
            ]
          },
          {
            "name": "proof",
            "type": "bytes32[]",
            "internalType": "bytes32[]"
          }
        ]
      },
      {
        "type": "error",
        "name": "InvalidProofLength",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidTargetDataLength",
        "inputs": []
      },
      {
        "type": "error",
        "name": "InvalidValuesLength",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAStrategist",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "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"
          }
        ]
      }
    ],
    "VaultDecoder": [
      {
        "type": "fallback",
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "approve",
        "inputs": [
          {
            "name": "spender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "approve",
        "inputs": [
          {
            "name": "spender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "cancelDepositRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "cancelRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "claimCancelDepositRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "claimCancelRedeemRequest",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "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": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "deposit",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "mint",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "redeem",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "requestDeposit",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "requestRedeem",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "controller",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "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": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "withdraw",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "error",
        "name": "FunctionNotImplemented",
        "inputs": [
          {
            "name": "_calldata",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      }
    ],
    "CircleDecoder": [
      {
        "type": "fallback",
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "approve",
        "inputs": [
          {
            "name": "spender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "approve",
        "inputs": [
          {
            "name": "spender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tokenId",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "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": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "depositForBurn",
        "inputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "destinationDomain",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "mintRecipient",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "burnToken",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "type": "function",
        "name": "receiveMessage",
        "inputs": [
          {
            "name": "",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "pure"
      },
      {
        "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": "",
            "type": "uint128",
            "internalType": "uint128"
          }
        ],
        "outputs": [
          {
            "name": "addressesFound",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "error",
        "name": "FunctionNotImplemented",
        "inputs": [
          {
            "name": "_calldata",
            "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"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "feeder",
        "inputs": [
          {
            "name": "",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "",
            "type": "address",
            "internalType": "address"
          }
        ],
        "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": "updateFeeder",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "internalType": "PoolId"
          },
          {
            "name": "feeder_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "canFeed",
            "type": "bool",
            "internalType": "bool"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "event",
        "name": "UpdateFeeder",
        "inputs": [
          {
            "name": "poolId",
            "type": "uint64",
            "indexed": true,
            "internalType": "PoolId"
          },
          {
            "name": "feeder",
            "type": "address",
            "indexed": true,
            "internalType": "address"
          },
          {
            "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": "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": []
      }
    ],
    "WormholeAdapter": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "entrypoint_",
            "type": "address",
            "internalType": "contract IMessageHandler"
          },
          {
            "name": "relayer_",
            "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": "deny",
        "inputs": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "type": "function",
        "name": "destinations",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "outputs": [
          {
            "name": "wormholeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "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": "",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "gasLimit",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "nativePriceQuote",
            "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": "localWormholeId",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "receiveWormholeMessages",
        "inputs": [
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "",
            "type": "bytes[]",
            "internalType": "bytes[]"
          },
          {
            "name": "sourceAddress",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "sourceWormholeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "outputs": [],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "relayer",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IWormholeRelayer"
          }
        ],
        "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": "adapterData",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sources",
        "inputs": [
          {
            "name": "wormholeId",
            "type": "uint16",
            "internalType": "uint16"
          }
        ],
        "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": "Wire",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "wormholeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "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": "NotWormholeRelayer",
        "inputs": []
      },
      {
        "type": "error",
        "name": "PrefixNotZero",
        "inputs": []
      },
      {
        "type": "error",
        "name": "UnknownChainId",
        "inputs": []
      }
    ],
    "AxelarAdapter": [
      {
        "type": "constructor",
        "inputs": [
          {
            "name": "entrypoint_",
            "type": "address",
            "internalType": "contract IMessageHandler"
          },
          {
            "name": "axelarGateway_",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "axelarGasService_",
            "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": "axelarGasService",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAxelarGasService"
          }
        ],
        "stateMutability": "view"
      },
      {
        "type": "function",
        "name": "axelarGateway",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address",
            "internalType": "contract IAxelarGateway"
          }
        ],
        "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": "axelarId",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "addr",
            "type": "string",
            "internalType": "string"
          }
        ],
        "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": "execute",
        "inputs": [
          {
            "name": "commandId",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "sourceAxelarId",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "sourceAddress",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ],
        "outputs": [],
        "stateMutability": "nonpayable"
      },
      {
        "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": "",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "refund",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "adapterData",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "stateMutability": "payable"
      },
      {
        "type": "function",
        "name": "sources",
        "inputs": [
          {
            "name": "axelarId",
            "type": "string",
            "internalType": "string"
          }
        ],
        "outputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "addressHash",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ],
        "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": "Wire",
        "inputs": [
          {
            "name": "centrifugeId",
            "type": "uint16",
            "indexed": true,
            "internalType": "uint16"
          },
          {
            "name": "axelarId",
            "type": "string",
            "indexed": true,
            "internalType": "string"
          },
          {
            "name": "adapter",
            "type": "string",
            "indexed": false,
            "internalType": "string"
          }
        ],
        "anonymous": false
      },
      {
        "type": "error",
        "name": "InvalidAddress",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotApprovedByGateway",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotAuthorized",
        "inputs": []
      },
      {
        "type": "error",
        "name": "NotEntrypoint",
        "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": []
      }
    ]
  }
}