UNPKG

@xlink-network/xlink-sdk

Version:
1 lines 75.6 kB
{"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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