{"version":3,"sources":["../src/stacksUtils/xlinkContractHelpers.ts","../generated/smartContractHelpers/codegenImport.ts","../generated/smartContract/contract_xlink_btc-peg-in-endpoint-v2-05.ts","../generated/smartContract/contract_xlink_btc-peg-out-endpoint-v2-01.ts","../generated/smartContract/contract_xlink_cross-peg-in-endpoint-v2-04.ts","../generated/smartContract/contract_xlink_cross-peg-out-endpoint-v2-01.ts","../generated/smartContract/contract_xlink_meta-peg-in-endpoint-v2-04.ts","../generated/smartContract/contract_xlink_meta-peg-out-endpoint-v2-04.ts","../generated/smartContract/contracts_xlink.ts"],"sourcesContent":["import { NETWORK, TEST_NETWORK } from \"@scure/btc-signer\"\nimport { StacksNetwork } from \"@stacks/network\"\nimport {\n  c32address,\n  c32addressDecode,\n  versions as c32addressVersions,\n} from \"c32check\"\nimport {\n  composeTxOptionsFactory,\n  executeReadonlyCallFactory,\n} from \"clarity-codegen\"\nimport { xlinkContracts } from \"../../generated/smartContract/contracts_xlink\"\nimport {\n  addressToScriptPubKey,\n  scriptPubKeyToAddress,\n} from \"../bitcoinUtils/bitcoinHelpers\"\nimport { STACKS_MAINNET, STACKS_TESTNET } from \"../config\"\nimport { BigNumber, BigNumberSource } from \"../utils/BigNumber\"\nimport { StacksAddressVersionNotSupportedError } from \"../utils/errors\"\nimport {\n  decodeHex,\n  encodeHex,\n  encodeZeroPrefixedHex,\n} from \"../utils/hexHelpers\"\nimport { checkNever } from \"../utils/typeHelpers\"\nimport { KnownChainId, KnownTokenId } from \"../utils/types/knownIds\"\nimport { StacksContractAddress } from \"../xlinkSdkUtils/types\"\nimport {\n  stxContractDeployers,\n  stxTokenContractAddresses,\n} from \"./stxContractAddresses\"\n\nconst CONTRACT_COMMON_NUMBER_SCALE = 8\nexport const numberFromStacksContractNumber = (\n  num: bigint,\n  decimals?: number,\n): BigNumber => {\n  return BigNumber.leftMoveDecimals(\n    decimals ?? CONTRACT_COMMON_NUMBER_SCALE,\n    num,\n  )\n}\nexport const numberToStacksContractNumber = (\n  num: BigNumberSource,\n  decimals?: number,\n): bigint => {\n  return BigNumber.toBigInt(\n    {},\n    BigNumber.rightMoveDecimals(decimals ?? CONTRACT_COMMON_NUMBER_SCALE, num),\n  )\n}\n\nexport const composeTxXLINK = composeTxOptionsFactory(xlinkContracts, {})\n\nexport const executeReadonlyCallXLINK = executeReadonlyCallFactory(\n  xlinkContracts,\n  {},\n)\n\nexport const getStacksContractCallInfo = <\n  C extends keyof typeof stxContractDeployers,\n>(\n  chainId: KnownChainId.StacksChain,\n  contractName: C,\n):\n  | undefined\n  | (Omit<StacksContractAddress, \"contractName\"> & {\n      contractName: C\n      network: StacksNetwork\n    }) => {\n  const network =\n    chainId === KnownChainId.Stacks.Mainnet ? STACKS_MAINNET : STACKS_TESTNET\n\n  if (stxContractDeployers[contractName][chainId] == null) {\n    return undefined\n  }\n\n  return {\n    ...stxContractDeployers[contractName][chainId],\n    contractName,\n    network,\n  }\n}\n\nexport const getStacksTokenContractInfo = (\n  chainId: KnownChainId.StacksChain,\n  tokenId: KnownTokenId.StacksToken,\n): undefined | (StacksContractAddress & { network: StacksNetwork }) => {\n  if (stxTokenContractAddresses[tokenId]?.[chainId] == null) {\n    return undefined\n  }\n\n  const network =\n    chainId === KnownChainId.Stacks.Mainnet ? STACKS_MAINNET : STACKS_TESTNET\n\n  return {\n    ...stxTokenContractAddresses[tokenId]![chainId],\n    network,\n  }\n}\n\nexport async function getStacksToken(\n  chain: KnownChainId.StacksChain,\n  tokenAddress: StacksContractAddress,\n): Promise<undefined | KnownTokenId.StacksToken> {\n  for (const token of Object.keys(\n    stxTokenContractAddresses,\n  ) as (keyof typeof stxTokenContractAddresses)[]) {\n    const info = stxTokenContractAddresses[token]?.[chain]\n    if (info == null) continue\n\n    if (\n      info.deployerAddress === tokenAddress.deployerAddress &&\n      info.contractName === tokenAddress.contractName\n    ) {\n      return token\n    }\n  }\n\n  return\n}\n\nexport function addressFromBuffer(\n  chain: KnownChainId.KnownChain,\n  buffer: Uint8Array,\n): string {\n  if (KnownChainId.isStacksChain(chain)) {\n    return c32address(\n      c32addressVersions[\n        chain === KnownChainId.Stacks.Mainnet ? \"mainnet\" : \"testnet\"\n      ].p2pkh,\n      encodeHex(buffer),\n    )\n  }\n\n  if (\n    KnownChainId.isBitcoinChain(chain) ||\n    KnownChainId.isBRC20Chain(chain) ||\n    KnownChainId.isRunesChain(chain)\n  ) {\n    return scriptPubKeyToAddress(\n      chain === KnownChainId.Bitcoin.Mainnet ? NETWORK : TEST_NETWORK,\n      buffer,\n    )\n  }\n\n  if (KnownChainId.isEVMChain(chain)) {\n    return encodeZeroPrefixedHex(buffer)\n  }\n\n  checkNever(chain)\n  throw new TypeError(\"[addressFromBuffer] Unsupported chain: \" + chain)\n}\n\nexport function addressToBuffer(\n  chain: KnownChainId.KnownChain,\n  address: string,\n): Uint8Array {\n  if (KnownChainId.isStacksChain(chain)) {\n    const [version, hash160] = c32addressDecode(address)\n\n    if (\n      (chain === KnownChainId.Stacks.Mainnet &&\n        version == c32addressVersions.mainnet.p2sh) ||\n      (chain === KnownChainId.Stacks.Testnet &&\n        version == c32addressVersions.testnet.p2sh)\n    ) {\n      throw new StacksAddressVersionNotSupportedError(address, \"Multisig\")\n    } else if (\n      (chain === KnownChainId.Stacks.Mainnet &&\n        version !== c32addressVersions.mainnet.p2pkh) ||\n      (chain === KnownChainId.Stacks.Testnet &&\n        version !== c32addressVersions.testnet.p2pkh)\n    ) {\n      throw new StacksAddressVersionNotSupportedError(address, `${version}`)\n    }\n\n    return decodeHex(hash160)\n  }\n\n  if (\n    KnownChainId.isBitcoinChain(chain) ||\n    KnownChainId.isBRC20Chain(chain) ||\n    KnownChainId.isRunesChain(chain)\n  ) {\n    return addressToScriptPubKey(\n      chain === KnownChainId.Bitcoin.Mainnet ? NETWORK : TEST_NETWORK,\n      address,\n    )\n  }\n\n  if (KnownChainId.isEVMChain(chain)) {\n    return decodeHex(address)\n  }\n\n  checkNever(chain)\n  throw new TypeError(\"[addressToBuffer] Unsupported chain: \" + chain)\n}\n","export * from \"clarity-codegen\"\n","\nimport {\ndefineContract,\nprincipalT,\nbufferT,\nresponseSimpleT,\nbooleanT,\ntupleT,\nuintT,\nlistT,\ntraitT,\noptionalT,\nstringAsciiT,\nnoneT\n} from \"../smartContractHelpers/codegenImport\"\n\nexport const btcPegInEndpointV205 = defineContract({\n\"btc-peg-in-endpoint-v2-05\": {\n  callback: {\n    input: [\n      { name: 'sender', type: principalT },\n      { name: 'payload', type: bufferT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'finalize-peg-in-cross': {\n    input: [\n      { name: 'tx', type: bufferT },\n      {\n        name: 'block',\n        type: tupleT({ header: bufferT, height: uintT }, )\n      },\n      {\n        name: 'proof',\n        type: tupleT({ hashes: listT(bufferT, ), 'tree-depth': uintT, 'tx-index': uintT }, )\n      },\n      { name: 'output-idx', type: uintT },\n      {\n        name: 'reveal-tx',\n        type: tupleT({ 'order-idx': uintT, tx: bufferT }, )\n      },\n      {\n        name: 'reveal-block',\n        type: tupleT({ header: bufferT, height: uintT }, )\n      },\n      {\n        name: 'reveal-proof',\n        type: tupleT({ hashes: listT(bufferT, ), 'tree-depth': uintT, 'tx-index': uintT }, )\n      },\n      { name: 'token-out-trait', type: traitT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'pause-peg-in': {\n    input: [ { name: 'paused', type: booleanT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'set-fee-to-address': {\n    input: [ { name: 'new-fee-to-address', type: principalT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'set-peg-in-fee': {\n    input: [ { name: 'fee', type: uintT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'set-peg-in-min-fee': {\n    input: [ { name: 'fee', type: uintT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'construct-principal': {\n    input: [ { name: 'hash-bytes', type: bufferT } ],\n    output: responseSimpleT(principalT, ),\n    mode: 'readonly'\n  },\n  'create-order-cross-or-fail': {\n    input: [\n      {\n        name: 'order',\n        type: tupleT({\n          'chain-id': optionalT(uintT, ),\n          from: bufferT,\n          to: bufferT,\n          token: principalT,\n          'token-out': principalT\n        }, )\n      }\n    ],\n    output: responseSimpleT(bufferT, ),\n    mode: 'readonly'\n  },\n  'decode-from-reveal-tx-or-fail': {\n    input: [\n      { name: 'tx', type: bufferT },\n      { name: 'order-idx', type: uintT }\n    ],\n    output: responseSimpleT(tupleT({ 'commit-txid': bufferT, 'order-script': bufferT }, ), ),\n    mode: 'readonly'\n  },\n  'decode-order-cross-from-reveal-tx-or-fail': {\n    input: [\n      { name: 'tx', type: bufferT },\n      { name: 'order-idx', type: uintT }\n    ],\n    output: responseSimpleT(tupleT({\n      'commit-txid': bufferT,\n      'order-details': tupleT({\n        'chain-id': optionalT(uintT, ),\n        from: bufferT,\n        to: bufferT,\n        token: principalT,\n        'token-out': principalT\n      }, )\n    }, ), ),\n    mode: 'readonly'\n  },\n  'decode-order-cross-or-fail': {\n    input: [ { name: 'order-script', type: bufferT } ],\n    output: responseSimpleT(tupleT({\n      'chain-id': optionalT(uintT, ),\n      from: bufferT,\n      to: bufferT,\n      token: principalT,\n      'token-out': principalT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'destruct-principal': {\n    input: [ { name: 'address', type: principalT } ],\n    output: responseSimpleT(tupleT({\n      'hash-bytes': bufferT,\n      name: optionalT(stringAsciiT, ),\n      version: bufferT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'extract-tx-ins-outs': {\n    input: [ { name: 'tx', type: bufferT } ],\n    output: responseSimpleT(tupleT({\n      ins: listT(tupleT({\n        outpoint: tupleT({ hash: bufferT, index: uintT }, ),\n        scriptSig: bufferT,\n        sequence: uintT\n      }, ), ),\n      outs: listT(tupleT({ scriptPubKey: bufferT, value: uintT }, ), )\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-fee-to-address': { input: [], output: principalT, mode: 'readonly' },\n  'get-peg-in-fee': { input: [], output: uintT, mode: 'readonly' },\n  'get-peg-in-min-fee': { input: [], output: uintT, mode: 'readonly' },\n  'get-peg-in-sent-or-default': {\n    input: [ { name: 'tx', type: bufferT }, { name: 'output', type: uintT } ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'get-txid': {\n    input: [ { name: 'tx', type: bufferT } ],\n    output: responseSimpleT(bufferT, ),\n    mode: 'readonly'\n  },\n  'is-dao-or-extension': { input: [], output: responseSimpleT(booleanT, ), mode: 'readonly' },\n  'is-peg-in-address-approved': {\n    input: [ { name: 'address', type: bufferT } ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'is-peg-in-paused': { input: [], output: booleanT, mode: 'readonly' },\n  'validate-tx-cross': {\n    input: [\n      {\n        name: 'commit-tx',\n        type: tupleT({ 'output-idx': uintT, tx: bufferT }, )\n      },\n      {\n        name: 'reveal-tx',\n        type: tupleT({ 'order-idx': uintT, tx: bufferT }, )\n      },\n      { name: 'token-out-trait', type: traitT }\n    ],\n    output: responseSimpleT(tupleT({\n      'amount-net': uintT,\n      fee: uintT,\n      'order-details': tupleT({\n        'chain-id': optionalT(uintT, ),\n        from: bufferT,\n        to: bufferT,\n        token: principalT,\n        'token-out': principalT\n      }, )\n    }, ), ),\n    mode: 'readonly'\n  },\n  'verify-mined': {\n    input: [\n      { name: 'tx', type: bufferT },\n      {\n        name: 'block',\n        type: tupleT({ header: bufferT, height: uintT }, )\n      },\n      {\n        name: 'proof',\n        type: tupleT({ hashes: listT(bufferT, ), 'tree-depth': uintT, 'tx-index': uintT }, )\n      }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'readonly'\n  },\n  'fee-to-address': { input: noneT, output: principalT, mode: 'variable' },\n  'peg-in-fee': { input: noneT, output: uintT, mode: 'variable' },\n  'peg-in-min-fee': { input: noneT, output: uintT, mode: 'variable' },\n  'peg-in-paused': { input: noneT, output: booleanT, mode: 'variable' }\n}\n} as const)\n\n\n","\nimport {\ndefineContract,\nprincipalT,\nbufferT,\nresponseSimpleT,\nbooleanT,\nuintT,\ntupleT,\nlistT,\nnoneT\n} from \"../smartContractHelpers/codegenImport\"\n\nexport const btcPegOutEndpointV201 = defineContract({\n\"btc-peg-out-endpoint-v2-01\": {\n  callback: {\n    input: [\n      { name: 'sender', type: principalT },\n      { name: 'payload', type: bufferT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'claim-peg-out': {\n    input: [\n      { name: 'request-id', type: uintT },\n      { name: 'fulfilled-by', type: bufferT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'finalize-peg-out': {\n    input: [\n      { name: 'request-id', type: uintT },\n      { name: 'tx', type: bufferT },\n      {\n        name: 'block',\n        type: tupleT({ header: bufferT, height: uintT }, )\n      },\n      {\n        name: 'proof',\n        type: tupleT({ hashes: listT(bufferT, ), 'tree-depth': uintT, 'tx-index': uintT }, )\n      },\n      { name: 'output-idx', type: uintT },\n      { name: 'fulfilled-by-idx', type: uintT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'pause-peg-out': {\n    input: [ { name: 'paused', type: booleanT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'request-peg-out-0': {\n    input: [\n      { name: 'peg-out-address', type: bufferT },\n      { name: 'amount', type: uintT }\n    ],\n    output: responseSimpleT(uintT, ),\n    mode: 'public'\n  },\n  'revoke-peg-out': {\n    input: [ { name: 'request-id', type: uintT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'set-fee-to-address': {\n    input: [ { name: 'new-fee-to-address', type: principalT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'set-peg-out-fee': {\n    input: [ { name: 'fee', type: uintT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'set-peg-out-min-fee': {\n    input: [ { name: 'fee', type: uintT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'extract-tx-ins-outs': {\n    input: [ { name: 'tx', type: bufferT } ],\n    output: responseSimpleT(tupleT({\n      ins: listT(tupleT({\n        outpoint: tupleT({ hash: bufferT, index: uintT }, ),\n        scriptSig: bufferT,\n        sequence: uintT\n      }, ), ),\n      outs: listT(tupleT({ scriptPubKey: bufferT, value: uintT }, ), )\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-fee-to-address': { input: [], output: principalT, mode: 'readonly' },\n  'get-peg-in-sent-or-default': {\n    input: [ { name: 'tx', type: bufferT }, { name: 'output', type: uintT } ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'get-peg-out-fee': { input: [], output: uintT, mode: 'readonly' },\n  'get-peg-out-min-fee': { input: [], output: uintT, mode: 'readonly' },\n  'get-request-claim-grace-period': { input: [], output: uintT, mode: 'readonly' },\n  'get-request-or-fail': {\n    input: [ { name: 'request-id', type: uintT } ],\n    output: responseSimpleT(tupleT({\n      'amount-net': uintT,\n      claimed: uintT,\n      'claimed-by': principalT,\n      fee: uintT,\n      finalized: booleanT,\n      'fulfilled-by': bufferT,\n      'gas-fee': uintT,\n      'peg-out-address': bufferT,\n      'requested-at': uintT,\n      'requested-at-burn-height': uintT,\n      'requested-by': principalT,\n      revoked: booleanT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-request-revoke-grace-period': { input: [], output: uintT, mode: 'readonly' },\n  'get-txid': {\n    input: [ { name: 'tx', type: bufferT } ],\n    output: responseSimpleT(bufferT, ),\n    mode: 'readonly'\n  },\n  'is-dao-or-extension': { input: [], output: responseSimpleT(booleanT, ), mode: 'readonly' },\n  'is-peg-in-address-approved': {\n    input: [ { name: 'address', type: bufferT } ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'is-peg-out-paused': { input: [], output: booleanT, mode: 'readonly' },\n  'validate-peg-out-0': {\n    input: [ { name: 'amount', type: uintT } ],\n    output: responseSimpleT(tupleT({ amount: uintT, fee: uintT, 'gas-fee': uintT }, ), ),\n    mode: 'readonly'\n  },\n  'verify-mined': {\n    input: [\n      { name: 'tx', type: bufferT },\n      {\n        name: 'block',\n        type: tupleT({ header: bufferT, height: uintT }, )\n      },\n      {\n        name: 'proof',\n        type: tupleT({ hashes: listT(bufferT, ), 'tree-depth': uintT, 'tx-index': uintT }, )\n      }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'readonly'\n  },\n  'fee-to-address': { input: noneT, output: principalT, mode: 'variable' },\n  'peg-out-fee': { input: noneT, output: uintT, mode: 'variable' },\n  'peg-out-min-fee': { input: noneT, output: uintT, mode: 'variable' },\n  'peg-out-paused': { input: noneT, output: booleanT, mode: 'variable' }\n}\n} as const)\n\n\n","\nimport {\ndefineContract,\nbooleanT,\nresponseSimpleT,\nprincipalT,\nbufferT,\ntupleT,\nuintT,\noptionalT,\ntraitT,\nlistT,\nstringT,\nnoneT\n} from \"../smartContractHelpers/codegenImport\"\n\nexport const crossPegInEndpointV204 = defineContract({\n\"cross-peg-in-endpoint-v2-04\": {\n  'apply-whitelist': {\n    input: [ { name: 'new-use-whitelist', type: booleanT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  callback: {\n    input: [\n      { name: 'sender', type: principalT },\n      { name: 'payload', type: bufferT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  execute: {\n    input: [ { name: 'sender', type: principalT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'set-paused': {\n    input: [ { name: 'paused', type: booleanT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'transfer-to-cross': {\n    input: [\n      {\n        name: 'order',\n        type: tupleT({\n          'amount-in-fixed': uintT,\n          'dest-chain-id': optionalT(uintT, ),\n          from: bufferT,\n          salt: bufferT,\n          'src-chain-id': uintT,\n          to: bufferT,\n          'token-in': principalT,\n          'token-out': principalT\n        }, )\n      },\n      { name: 'token-in-trait', type: traitT },\n      { name: 'token-out-trait', type: traitT },\n      {\n        name: 'signature-packs',\n        type: listT(tupleT({ 'order-hash': bufferT, signature: bufferT, signer: principalT }, ), )\n      }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  whitelist: {\n    input: [\n      { name: 'user', type: principalT },\n      { name: 'whitelisted', type: booleanT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'whitelist-many': {\n    input: [\n      { name: 'users', type: listT(principalT, ) },\n      { name: 'whitelisted', type: listT(booleanT, ) }\n    ],\n    output: responseSimpleT(listT(responseSimpleT(booleanT, ), ), ),\n    mode: 'public'\n  },\n  'create-cross-order': {\n    input: [\n      {\n        name: 'order',\n        type: tupleT({\n          'amount-in-fixed': uintT,\n          'dest-chain-id': optionalT(uintT, ),\n          from: bufferT,\n          salt: bufferT,\n          'src-chain-id': uintT,\n          to: bufferT,\n          'token-in': principalT,\n          'token-out': principalT\n        }, )\n      }\n    ],\n    output: responseSimpleT(bufferT, ),\n    mode: 'readonly'\n  },\n  'decode-cross-order': {\n    input: [ { name: 'order-buff', type: bufferT } ],\n    output: responseSimpleT(tupleT({\n      'amount-in-fixed': uintT,\n      'dest-chain-id': optionalT(uintT, ),\n      from: bufferT,\n      salt: bufferT,\n      'src-chain-id': uintT,\n      to: bufferT,\n      'token-in': principalT,\n      'token-out': principalT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-approved-chain-or-fail': {\n    input: [ { name: 'src-chain-id', type: uintT } ],\n    output: responseSimpleT(tupleT({ 'buff-length': uintT, name: stringT }, ), ),\n    mode: 'readonly'\n  },\n  'get-approved-pair-or-fail': {\n    input: [\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: responseSimpleT(tupleT({\n      approved: booleanT,\n      burnable: booleanT,\n      fee: uintT,\n      'max-amount': uintT,\n      'min-amount': uintT,\n      'min-fee': uintT,\n      reserve: uintT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-min-fee-or-default': {\n    input: [\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: uintT,\n    mode: 'readonly'\n  },\n  'get-paused': { input: [], output: booleanT, mode: 'readonly' },\n  'get-required-validators': { input: [], output: uintT, mode: 'readonly' },\n  'get-token-reserve-or-default': {\n    input: [\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: uintT,\n    mode: 'readonly'\n  },\n  'get-use-whitelist': { input: [], output: booleanT, mode: 'readonly' },\n  'get-validator-or-fail': {\n    input: [ { name: 'validator', type: principalT } ],\n    output: responseSimpleT(tupleT({ 'chain-id': uintT, pubkey: bufferT }, ), ),\n    mode: 'readonly'\n  },\n  'hash-cross-order': {\n    input: [\n      {\n        name: 'order',\n        type: tupleT({\n          'amount-in-fixed': uintT,\n          'dest-chain-id': optionalT(uintT, ),\n          from: bufferT,\n          salt: bufferT,\n          'src-chain-id': uintT,\n          to: bufferT,\n          'token-in': principalT,\n          'token-out': principalT\n        }, )\n      }\n    ],\n    output: responseSimpleT(bufferT, ),\n    mode: 'readonly'\n  },\n  'is-approved-relayer-or-default': {\n    input: [ { name: 'relayer', type: principalT } ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'is-dao-or-extension': { input: [], output: responseSimpleT(booleanT, ), mode: 'readonly' },\n  'is-order-sent-or-default': {\n    input: [ { name: 'order-hash', type: bufferT } ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'is-order-validated-by-or-default': {\n    input: [\n      { name: 'order-hash', type: bufferT },\n      { name: 'validator', type: principalT }\n    ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'is-whitelisted': {\n    input: [ { name: 'user', type: principalT } ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'message-domain': { input: [], output: bufferT, mode: 'readonly' },\n  'validate-cross-order': {\n    input: [\n      {\n        name: 'order',\n        type: tupleT({\n          'amount-in-fixed': uintT,\n          'dest-chain-id': optionalT(uintT, ),\n          from: bufferT,\n          salt: bufferT,\n          'src-chain-id': uintT,\n          to: bufferT,\n          'token-in': principalT,\n          'token-out': principalT\n        }, )\n      },\n      { name: 'token-in-trait', type: traitT },\n      { name: 'token-out-trait', type: traitT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'readonly'\n  },\n  'whitelisted-users': {\n    input: principalT,\n    output: optionalT(booleanT, ),\n    mode: 'mapEntry'\n  },\n  'is-paused': { input: noneT, output: booleanT, mode: 'variable' },\n  'use-whitelist': { input: noneT, output: booleanT, mode: 'variable' }\n}\n} as const)\n\n\n","\nimport {\ndefineContract,\nbooleanT,\nresponseSimpleT,\nprincipalT,\nbufferT,\ntraitT,\nuintT,\nlistT,\ntupleT,\nstringT,\noptionalT,\nnoneT\n} from \"../smartContractHelpers/codegenImport\"\n\nexport const crossPegOutEndpointV201 = defineContract({\n\"cross-peg-out-endpoint-v2-01\": {\n  'apply-whitelist': {\n    input: [ { name: 'new-use-whitelist', type: booleanT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  callback: {\n    input: [\n      { name: 'sender', type: principalT },\n      { name: 'payload', type: bufferT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'set-paused': {\n    input: [ { name: 'paused', type: booleanT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'transfer-to-unwrap': {\n    input: [\n      { name: 'token-trait', type: traitT },\n      { name: 'amount-in-fixed', type: uintT },\n      { name: 'dest-chain-id', type: uintT },\n      { name: 'settle-address', type: bufferT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  whitelist: {\n    input: [\n      { name: 'user', type: principalT },\n      { name: 'whitelisted', type: booleanT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'whitelist-many': {\n    input: [\n      { name: 'users', type: listT(principalT, ) },\n      { name: 'whitelisted', type: listT(booleanT, ) }\n    ],\n    output: responseSimpleT(listT(responseSimpleT(booleanT, ), ), ),\n    mode: 'public'\n  },\n  'get-approved-chain-or-fail': {\n    input: [ { name: 'dest-chain-id', type: uintT } ],\n    output: responseSimpleT(tupleT({ 'buff-length': uintT, name: stringT }, ), ),\n    mode: 'readonly'\n  },\n  'get-approved-pair-or-fail': {\n    input: [\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: responseSimpleT(tupleT({\n      approved: booleanT,\n      burnable: booleanT,\n      fee: uintT,\n      'max-amount': uintT,\n      'min-amount': uintT,\n      'min-fee': uintT,\n      reserve: uintT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-min-fee-or-default': {\n    input: [\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: uintT,\n    mode: 'readonly'\n  },\n  'get-paused': { input: [], output: booleanT, mode: 'readonly' },\n  'get-token-reserve-or-default': {\n    input: [\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: uintT,\n    mode: 'readonly'\n  },\n  'get-use-whitelist': { input: [], output: booleanT, mode: 'readonly' },\n  'is-dao-or-extension': { input: [], output: responseSimpleT(booleanT, ), mode: 'readonly' },\n  'is-whitelisted': {\n    input: [ { name: 'user', type: principalT } ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'validate-transfer-to-unwrap': {\n    input: [\n      { name: 'sender', type: principalT },\n      { name: 'token', type: principalT },\n      { name: 'amount-in-fixed', type: uintT },\n      { name: 'dest-chain-id', type: uintT }\n    ],\n    output: responseSimpleT(tupleT({\n      amount: uintT,\n      'chain-details': tupleT({ 'buff-length': uintT, name: stringT }, ),\n      token: principalT,\n      'token-details': tupleT({\n        approved: booleanT,\n        burnable: booleanT,\n        fee: uintT,\n        'max-amount': uintT,\n        'min-amount': uintT,\n        'min-fee': uintT,\n        reserve: uintT\n      }, )\n    }, ), ),\n    mode: 'readonly'\n  },\n  'whitelisted-users': {\n    input: principalT,\n    output: optionalT(booleanT, ),\n    mode: 'mapEntry'\n  },\n  'is-paused': { input: noneT, output: booleanT, mode: 'variable' },\n  'use-whitelist': { input: noneT, output: booleanT, mode: 'variable' }\n}\n} as const)\n\n\n","\nimport {\ndefineContract,\ntupleT,\noptionalT,\nuintT,\nbufferT,\nlistT,\ntraitT,\nresponseSimpleT,\nbooleanT,\nstringT,\nprincipalT,\nnoneT\n} from \"../smartContractHelpers/codegenImport\"\n\nexport const metaPegInEndpointV204 = defineContract({\n\"meta-peg-in-endpoint-v2-04\": {\n  'finalize-peg-in-cross': {\n    input: [\n      {\n        name: 'commit-tx',\n        type: tupleT({ 'fee-idx': optionalT(uintT, ), 'output-idx': uintT, tx: bufferT }, )\n      },\n      {\n        name: 'reveal-tx',\n        type: tupleT({ 'order-idx': uintT, tx: bufferT }, )\n      },\n      {\n        name: 'reveal-block',\n        type: tupleT({ header: bufferT, height: uintT }, )\n      },\n      {\n        name: 'reveal-proof',\n        type: tupleT({ hashes: listT(bufferT, ), 'tree-depth': uintT, 'tx-index': uintT }, )\n      },\n      { name: 'token-trait', type: traitT },\n      { name: 'token-out-trait', type: traitT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'finalize-peg-in-cross-on-index': {\n    input: [\n      {\n        name: 'tx',\n        type: tupleT({\n          amt: uintT,\n          'bitcoin-tx': bufferT,\n          decimals: uintT,\n          from: bufferT,\n          'from-bal': uintT,\n          output: uintT,\n          tick: stringT,\n          to: bufferT,\n          'to-bal': uintT\n        }, )\n      },\n      {\n        name: 'block',\n        type: tupleT({ header: bufferT, height: uintT }, )\n      },\n      {\n        name: 'proof',\n        type: tupleT({ hashes: listT(bufferT, ), 'tree-depth': uintT, 'tx-index': uintT }, )\n      },\n      {\n        name: 'signature-packs',\n        type: listT(tupleT({ signature: bufferT, signer: principalT, 'tx-hash': bufferT }, ), )\n      },\n      {\n        name: 'reveal-tx',\n        type: tupleT({ 'order-idx': uintT, tx: bufferT }, )\n      },\n      {\n        name: 'reveal-block',\n        type: tupleT({ header: bufferT, height: uintT }, )\n      },\n      {\n        name: 'reveal-proof',\n        type: tupleT({ hashes: listT(bufferT, ), 'tree-depth': uintT, 'tx-index': uintT }, )\n      },\n      { name: 'fee-idx', type: optionalT(uintT, ) },\n      { name: 'token-trait', type: traitT },\n      { name: 'token-out-trait', type: traitT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  pause: {\n    input: [ { name: 'new-paused', type: booleanT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'set-fee-to-address': {\n    input: [ { name: 'new-fee-to-address', type: principalT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'set-peg-in-fee': {\n    input: [ { name: 'fee', type: uintT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'transfer-all-to': {\n    input: [\n      { name: 'new-owner', type: principalT },\n      { name: 'token-trait', type: traitT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'transfer-all-to-many': {\n    input: [\n      { name: 'new-owner', type: principalT },\n      { name: 'token-traits', type: listT(traitT, ) }\n    ],\n    output: responseSimpleT(listT(responseSimpleT(booleanT, ), ), ),\n    mode: 'public'\n  },\n  'create-order-cross-or-fail': {\n    input: [\n      {\n        name: 'order',\n        type: tupleT({\n          'chain-id': optionalT(uintT, ),\n          from: bufferT,\n          to: bufferT,\n          token: principalT,\n          'token-out': principalT\n        }, )\n      }\n    ],\n    output: responseSimpleT(bufferT, ),\n    mode: 'readonly'\n  },\n  'decode-order-cross-from-reveal-tx-or-fail': {\n    input: [\n      { name: 'tx', type: bufferT },\n      { name: 'order-idx', type: uintT }\n    ],\n    output: responseSimpleT(tupleT({\n      'commit-txid': bufferT,\n      'order-details': tupleT({\n        'chain-id': optionalT(uintT, ),\n        from: bufferT,\n        to: bufferT,\n        token: principalT,\n        'token-out': principalT\n      }, )\n    }, ), ),\n    mode: 'readonly'\n  },\n  'decode-order-cross-or-fail': {\n    input: [ { name: 'order-script', type: bufferT } ],\n    output: responseSimpleT(tupleT({\n      'chain-id': optionalT(uintT, ),\n      from: bufferT,\n      to: bufferT,\n      token: principalT,\n      'token-out': principalT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-fee-to-address': { input: [], output: principalT, mode: 'readonly' },\n  'get-pair-details': {\n    input: [\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: optionalT(tupleT({\n      approved: booleanT,\n      'no-burn': booleanT,\n      'peg-in-fee': uintT,\n      'peg-in-paused': booleanT,\n      'peg-out-fee': uintT,\n      'peg-out-gas-fee': uintT,\n      'peg-out-paused': booleanT,\n      tick: stringT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-pair-details-many': {\n    input: [\n      {\n        name: 'pairs',\n        type: listT(tupleT({ 'chain-id': uintT, token: principalT }, ), )\n      }\n    ],\n    output: listT(optionalT(tupleT({\n      approved: booleanT,\n      'no-burn': booleanT,\n      'peg-in-fee': uintT,\n      'peg-in-paused': booleanT,\n      'peg-out-fee': uintT,\n      'peg-out-gas-fee': uintT,\n      'peg-out-paused': booleanT,\n      tick: stringT\n    }, ), ), ),\n    mode: 'readonly'\n  },\n  'get-pair-details-or-fail': {\n    input: [\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: responseSimpleT(tupleT({\n      approved: booleanT,\n      'no-burn': booleanT,\n      'peg-in-fee': uintT,\n      'peg-in-paused': booleanT,\n      'peg-out-fee': uintT,\n      'peg-out-gas-fee': uintT,\n      'peg-out-paused': booleanT,\n      tick: stringT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-peg-in-fee': { input: [], output: uintT, mode: 'readonly' },\n  'get-peg-in-sent-or-default': {\n    input: [\n      { name: 'bitcoin-tx', type: bufferT },\n      { name: 'output', type: uintT },\n      { name: 'offset', type: uintT }\n    ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'get-tick-to-pair-or-fail': {\n    input: [ { name: 'tick', type: stringT } ],\n    output: responseSimpleT(tupleT({ 'chain-id': uintT, token: principalT }, ), ),\n    mode: 'readonly'\n  },\n  'is-approved-pair': {\n    input: [\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'is-dao-or-extension': { input: [], output: responseSimpleT(booleanT, ), mode: 'readonly' },\n  'is-paused': { input: [], output: booleanT, mode: 'readonly' },\n  'is-peg-in-address-approved': {\n    input: [ { name: 'address', type: bufferT } ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'validate-tx-cross': {\n    input: [\n      {\n        name: 'commit-tx',\n        type: tupleT({ 'fee-idx': optionalT(uintT, ), 'output-idx': uintT, tx: bufferT }, )\n      },\n      {\n        name: 'reveal-tx',\n        type: tupleT({ 'order-idx': uintT, tx: bufferT }, )\n      },\n      { name: 'token-out-trait', type: traitT }\n    ],\n    output: responseSimpleT(tupleT({\n      'amt-net': uintT,\n      fee: uintT,\n      'order-details': tupleT({\n        'chain-id': optionalT(uintT, ),\n        from: bufferT,\n        to: bufferT,\n        token: principalT,\n        'token-out': principalT\n      }, ),\n      'pair-details': tupleT({ 'chain-id': uintT, token: principalT }, ),\n      'token-details': tupleT({\n        approved: booleanT,\n        'no-burn': booleanT,\n        'peg-in-fee': uintT,\n        'peg-in-paused': booleanT,\n        'peg-out-fee': uintT,\n        'peg-out-gas-fee': uintT,\n        'peg-out-paused': booleanT,\n        tick: stringT\n      }, ),\n      'tx-idxed': tupleT({ amt: uintT, from: bufferT, tick: stringT, to: bufferT }, )\n    }, ), ),\n    mode: 'readonly'\n  },\n  'fee-to-address': { input: noneT, output: principalT, mode: 'variable' },\n  paused: { input: noneT, output: booleanT, mode: 'variable' },\n  'peg-in-fee': { input: noneT, output: uintT, mode: 'variable' }\n}\n} as const)\n\n\n","\nimport {\ndefineContract,\nuintT,\nbufferT,\nresponseSimpleT,\nbooleanT,\ntraitT,\ntupleT,\nstringT,\nlistT,\nprincipalT,\noptionalT,\nnoneT\n} from \"../smartContractHelpers/codegenImport\"\n\nexport const metaPegOutEndpointV204 = defineContract({\n\"meta-peg-out-endpoint-v2-04\": {\n  'claim-peg-out': {\n    input: [\n      { name: 'request-id', type: uintT },\n      { name: 'fulfilled-by', type: bufferT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'finalize-peg-out': {\n    input: [\n      { name: 'request-id', type: uintT },\n      { name: 'tx', type: bufferT },\n      { name: 'output-idx', type: uintT },\n      { name: 'offset-idx', type: uintT },\n      { name: 'token-trait', type: traitT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'finalize-peg-out-on-index': {\n    input: [\n      { name: 'request-id', type: uintT },\n      {\n        name: 'tx',\n        type: tupleT({\n          amt: uintT,\n          'bitcoin-tx': bufferT,\n          decimals: uintT,\n          from: bufferT,\n          'from-bal': uintT,\n          offset: uintT,\n          output: uintT,\n          tick: stringT,\n          to: bufferT,\n          'to-bal': uintT\n        }, )\n      },\n      {\n        name: 'block',\n        type: tupleT({ header: bufferT, height: uintT }, )\n      },\n      {\n        name: 'proof',\n        type: tupleT({ hashes: listT(bufferT, ), 'tree-depth': uintT, 'tx-index': uintT }, )\n      },\n      {\n        name: 'signature-packs',\n        type: listT(tupleT({ signature: bufferT, signer: principalT, 'tx-hash': bufferT }, ), )\n      },\n      { name: 'token-trait', type: traitT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  pause: {\n    input: [ { name: 'new-paused', type: booleanT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'request-peg-out': {\n    input: [\n      { name: 'amount', type: uintT },\n      { name: 'peg-out-address', type: bufferT },\n      { name: 'token-trait', type: traitT },\n      { name: 'the-chain-id', type: uintT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'revoke-peg-out': {\n    input: [\n      { name: 'request-id', type: uintT },\n      { name: 'token-trait', type: traitT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'set-fee-to-address': {\n    input: [ { name: 'new-fee-to-address', type: principalT } ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'transfer-all-to': {\n    input: [\n      { name: 'new-owner', type: principalT },\n      { name: 'token-trait', type: traitT }\n    ],\n    output: responseSimpleT(booleanT, ),\n    mode: 'public'\n  },\n  'transfer-all-to-many': {\n    input: [\n      { name: 'new-owner', type: principalT },\n      { name: 'token-traits', type: listT(traitT, ) }\n    ],\n    output: responseSimpleT(listT(responseSimpleT(booleanT, ), ), ),\n    mode: 'public'\n  },\n  'get-fee-to-address': { input: [], output: principalT, mode: 'readonly' },\n  'get-pair-details': {\n    input: [\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: optionalT(tupleT({\n      approved: booleanT,\n      'no-burn': booleanT,\n      'peg-in-fee': uintT,\n      'peg-in-paused': booleanT,\n      'peg-out-fee': uintT,\n      'peg-out-gas-fee': uintT,\n      'peg-out-paused': booleanT,\n      tick: stringT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-pair-details-many': {\n    input: [\n      {\n        name: 'pairs',\n        type: listT(tupleT({ 'chain-id': uintT, token: principalT }, ), )\n      }\n    ],\n    output: listT(optionalT(tupleT({\n      approved: booleanT,\n      'no-burn': booleanT,\n      'peg-in-fee': uintT,\n      'peg-in-paused': booleanT,\n      'peg-out-fee': uintT,\n      'peg-out-gas-fee': uintT,\n      'peg-out-paused': booleanT,\n      tick: stringT\n    }, ), ), ),\n    mode: 'readonly'\n  },\n  'get-pair-details-or-fail': {\n    input: [\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: responseSimpleT(tupleT({\n      approved: booleanT,\n      'no-burn': booleanT,\n      'peg-in-fee': uintT,\n      'peg-in-paused': booleanT,\n      'peg-out-fee': uintT,\n      'peg-out-gas-fee': uintT,\n      'peg-out-paused': booleanT,\n      tick: stringT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-peg-in-sent-or-default': {\n    input: [\n      { name: 'bitcoin-tx', type: bufferT },\n      { name: 'output', type: uintT },\n      { name: 'offset', type: uintT }\n    ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'get-request': {\n    input: [ { name: 'request-id', type: uintT } ],\n    output: optionalT(tupleT({\n      'amount-net': uintT,\n      claimed: uintT,\n      'claimed-by': principalT,\n      fee: uintT,\n      finalized: booleanT,\n      'fulfilled-by': bufferT,\n      'gas-fee': uintT,\n      'peg-out-address': bufferT,\n      'requested-at': uintT,\n      'requested-at-burn-height': uintT,\n      'requested-by': principalT,\n      revoked: booleanT,\n      tick: stringT,\n      token: principalT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-request-claim-grace-period': { input: [], output: uintT, mode: 'readonly' },\n  'get-request-many': {\n    input: [ { name: 'request-ids', type: listT(uintT, ) } ],\n    output: listT(optionalT(tupleT({\n      'amount-net': uintT,\n      claimed: uintT,\n      'claimed-by': principalT,\n      fee: uintT,\n      finalized: booleanT,\n      'fulfilled-by': bufferT,\n      'gas-fee': uintT,\n      'peg-out-address': bufferT,\n      'requested-at': uintT,\n      'requested-at-burn-height': uintT,\n      'requested-by': principalT,\n      revoked: booleanT,\n      tick: stringT,\n      token: principalT\n    }, ), ), ),\n    mode: 'readonly'\n  },\n  'get-request-or-fail': {\n    input: [ { name: 'request-id', type: uintT } ],\n    output: responseSimpleT(tupleT({\n      'amount-net': uintT,\n      claimed: uintT,\n      'claimed-by': principalT,\n      fee: uintT,\n      finalized: booleanT,\n      'fulfilled-by': bufferT,\n      'gas-fee': uintT,\n      'peg-out-address': bufferT,\n      'requested-at': uintT,\n      'requested-at-burn-height': uintT,\n      'requested-by': principalT,\n      revoked: booleanT,\n      tick: stringT,\n      token: principalT\n    }, ), ),\n    mode: 'readonly'\n  },\n  'get-request-revoke-grace-period': { input: [], output: uintT, mode: 'readonly' },\n  'get-tick-to-pair-or-fail': {\n    input: [ { name: 'tick', type: stringT } ],\n    output: responseSimpleT(tupleT({ 'chain-id': uintT, token: principalT }, ), ),\n    mode: 'readonly'\n  },\n  'is-dao-or-extension': { input: [], output: responseSimpleT(booleanT, ), mode: 'readonly' },\n  'is-fulfill-address-approved': {\n    input: [ { name: 'address', type: bufferT } ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'is-paused': { input: [], output: booleanT, mode: 'readonly' },\n  'is-peg-in-address-approved': {\n    input: [ { name: 'address', type: bufferT } ],\n    output: booleanT,\n    mode: 'readonly'\n  },\n  'validate-peg-out': {\n    input: [\n      { name: 'amount', type: uintT },\n      {\n        name: 'pair',\n        type: tupleT({ 'chain-id': uintT, token: principalT }, )\n      }\n    ],\n    output: responseSimpleT(tupleT({\n      fee: uintT,\n      'token-details': tupleT({\n        approved: booleanT,\n        'no-burn': booleanT,\n        'peg-in-fee': uintT,\n        'peg-in-paused': booleanT,\n        'peg-out-fee': uintT,\n        'peg-out-gas-fee': uintT,\n        'peg-out-paused': booleanT,\n        tick: stringT\n      }, )\n    }, ), ),\n    mode: 'readonly'\n  },\n  'fee-to-address': { input: noneT, output: principalT, mode: 'variable' },\n  paused: { input: noneT, output: booleanT, mode: 'variable' }\n}\n} as const)\n\n\n","import { defineContract } from \"../smartContractHelpers/codegenImport\";\nimport { btcPegInEndpointV205 } from \"./contract_xlink_btc-peg-in-endpoint-v2-05\"\nimport { btcPegOutEndpointV201 } from \"./contract_xlink_btc-peg-out-endpoint-v2-01\"\nimport { crossPegInEndpointV204 } from \"./contract_xlink_cross-peg-in-endpoint-v2-04\"\nimport { crossPegOutEndpointV201 } from \"./contract_xlink_cross-peg-out-endpoint-v2-01\"\nimport { metaPegInEndpointV204 } from \"./contract_xlink_meta-peg-in-endpoint-v2-04\"\nimport { metaPegOutEndpointV204 } from \"./contract_xlink_meta-peg-out-endpoint-v2-04\"\n\nexport const xlinkContracts = defineContract({\n...btcPegInEndpointV205,\n...btcPegOutEndpointV201,\n...crossPegInEndpointV204,\n...crossPegOutEndpointV201,\n...metaPegInEndpointV204,\n...metaPegOutEndpointV204\n});\n\n  "],"mappings":"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","names":[]}